return call Packet.maxPayloadLength();
}
- command void* AMSend.getPayload[am_id_t id](message_t* m) {
- return call Packet.getPayload(m, NULL);
+ command void* AMSend.getPayload[am_id_t id](message_t* m, uint8_t len) {
+ return call Packet.getPayload(m, len);
}
event void SubSend.sendDone(message_t* msg, error_t result) {
return msg;
}
-
- command void* Receive.getPayload[am_id_t id](message_t* m, uint8_t* len) {
- return call Packet.getPayload(m, len);
- }
-
- command uint8_t Receive.payloadLength[am_id_t id](message_t* m) {
- return call Packet.payloadLength(m);
- }
-
- event message_t* SubReceive.receive(message_t* msg, void* payload, uint8_t len) {
+ event message_t* SubReceive.receive(message_t* msg, void* payload, uint8_t len) {
return signal Receive.receive[call AMPacket.type(msg)](msg, msg->data, len);
}
return TOSH_DATA_LENGTH;
}
- command void* Packet.getPayload(message_t* msg, uint8_t* len) {
- if (len != NULL) {
- *len = call Packet.payloadLength(msg);
+ command void* Packet.getPayload(message_t* msg, uint8_t len) {
+ if (len > call Packet.maxPayloadLength()) {
+ return NULL;
+ }
+ else {
+ return msg->data;
}
- return msg->data;
}
command am_addr_t AMPacket.address() {