From 75892a80cb0ddbde13e0c7341b426118855548f6 Mon Sep 17 00:00:00 2001 From: regehr Date: Wed, 4 Jun 2008 03:43:50 +0000 Subject: [PATCH] safe tinyos annotations --- tos/lib/serial/SerialActiveMessageP.nc | 6 +++--- tos/lib/serial/SerialDispatcherP.nc | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tos/lib/serial/SerialActiveMessageP.nc b/tos/lib/serial/SerialActiveMessageP.nc index 17ceb6b3..0432ad2e 100644 --- a/tos/lib/serial/SerialActiveMessageP.nc +++ b/tos/lib/serial/SerialActiveMessageP.nc @@ -46,8 +46,8 @@ generic module SerialActiveMessageP () { } 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) { @@ -121,7 +121,7 @@ implementation { return NULL; } else { - return msg->data; + return (void * COUNT_NOK(len))msg->data; } } diff --git a/tos/lib/serial/SerialDispatcherP.nc b/tos/lib/serial/SerialDispatcherP.nc index 5f1a9b6b..85f13e07 100644 --- a/tos/lib/serial/SerialDispatcherP.nc +++ b/tos/lib/serial/SerialDispatcherP.nc @@ -75,14 +75,14 @@ implementation { /* 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; @@ -94,7 +94,7 @@ implementation { 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) { -- 2.39.2