}
implementation {
- serial_header_t* getHeader(message_t* msg) {
- return (serial_header_t*)(msg->data - sizeof(serial_header_t));
+ serial_header_t* ONE getHeader(message_t* ONE msg) {
+ return TCAST(serial_header_t* ONE, (uint8_t*)msg + offsetof(message_t, data) - sizeof(serial_header_t));
}
serial_metadata_t* getMetadata(message_t* msg) {
return NULL;
}
else {
- return msg->data;
+ return (void * COUNT_NOK(len))msg->data;
}
}
/* This component provides double buffering. */
message_t messages[2]; // buffer allocation
- message_t* messagePtrs[2] = { &messages[0], &messages[1]};
+ message_t* ONE messagePtrs[2] = { &messages[0], &messages[1]};
// We store a separate receiveBuffer variable because indexing
// into a pointer array can be costly, and handling interrupts
// is time critical.
- uint8_t* receiveBuffer = (uint8_t*)(&messages[0]);
+ uint8_t* COUNT_NOK(sizeof(message_t)) receiveBuffer = (uint8_t* COUNT_NOK(sizeof(message_t)))(&messages[0]);
- uint8_t *sendBuffer = NULL;
+ uint8_t *COUNT_NOK(sizeof(message_t)) sendBuffer = NULL;
send_state_t sendState = SEND_STATE_IDLE;
uint8_t sendLen = 0;
uint8_t sendIndex = 0;
uint8_t receiveTaskPending = FALSE;
uart_id_t receiveTaskType = 0;
uint8_t receiveTaskWhich;
- message_t *receiveTaskBuf = NULL;
+ message_t * ONE_NOK receiveTaskBuf = NULL;
uint8_t receiveTaskSize = 0;
command error_t Send.send[uint8_t id](message_t* msg, uint8_t len) {