From: regehr Date: Tue, 3 Jun 2008 04:08:34 +0000 (+0000) Subject: safe tinyos annotations X-Git-Tag: release_tinyos_2_1_0_0~346 X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=commitdiff_plain;h=5bdc289843880181940381ae0878ab51fc7c8d65;p=tinyos-2.x.git safe tinyos annotations --- diff --git a/tos/chips/cc1000/ByteRadio.nc b/tos/chips/cc1000/ByteRadio.nc index 713716cc..6e610e0f 100644 --- a/tos/chips/cc1000/ByteRadio.nc +++ b/tos/chips/cc1000/ByteRadio.nc @@ -22,7 +22,7 @@ interface ByteRadio * SendReceive wants to send a packet. * @param msg Message to be sent. */ - event void rts(message_t *msg); + event void rts(message_t * ONE msg); /** * Access to the media granted. Start sending. SendReceive must signal diff --git a/tos/chips/cc1000/CC1000ActiveMessageP.nc b/tos/chips/cc1000/CC1000ActiveMessageP.nc index 60a56d7a..bb3be23d 100644 --- a/tos/chips/cc1000/CC1000ActiveMessageP.nc +++ b/tos/chips/cc1000/CC1000ActiveMessageP.nc @@ -51,8 +51,8 @@ module CC1000ActiveMessageP { } implementation { - cc1000_header_t* getHeader(message_t* amsg) { - return (cc1000_header_t*)(amsg->data - sizeof(cc1000_header_t)); + cc1000_header_t* ONE getHeader(message_t* ONE amsg) { + return TCAST(cc1000_header_t* ONE, (uint8_t*)amsg + offsetof(message_t, data) - sizeof(cc1000_header_t)); } cc1000_footer_t *getFooter(message_t *amsg) { diff --git a/tos/chips/cc1000/CC1000CsmaP.nc b/tos/chips/cc1000/CC1000CsmaP.nc index bf9af8fb..b232d483 100644 --- a/tos/chips/cc1000/CC1000CsmaP.nc +++ b/tos/chips/cc1000/CC1000CsmaP.nc @@ -107,8 +107,8 @@ implementation task void setWakeupTask(); - cc1000_metadata_t *getMetadata(message_t *amsg) { - return (cc1000_metadata_t *)((uint8_t *)amsg->footer + sizeof(cc1000_footer_t)); + cc1000_metadata_t * ONE getMetadata(message_t * ONE amsg) { + return TCAST(cc1000_metadata_t * ONE, (uint8_t*)amsg + offsetof(message_t, footer) + sizeof(cc1000_footer_t)); } void enterIdleState() { @@ -160,7 +160,7 @@ implementation call ByteRadio.off(); } - void setPreambleLength(message_t *msg); + void setPreambleLength(message_t * ONE msg); /* Initialisation, startup and stopping */ /*--------------------------------------*/ @@ -355,7 +355,7 @@ implementation /* CSMA */ /*------*/ - event void ByteRadio.rts(message_t *msg) { + event void ByteRadio.rts(message_t * ONE msg) { atomic { f.txPending = TRUE; @@ -554,7 +554,7 @@ implementation return sleepToDuty(s); } - void setPreambleLength(message_t *msg) { + void setPreambleLength(message_t * ONE msg) { cc1000_metadata_t *meta = getMetadata(msg); uint16_t s; uint32_t plen; diff --git a/tos/chips/cc1000/CC1000SendReceiveP.nc b/tos/chips/cc1000/CC1000SendReceiveP.nc index a4aec398..62ca40b0 100644 --- a/tos/chips/cc1000/CC1000SendReceiveP.nc +++ b/tos/chips/cc1000/CC1000SendReceiveP.nc @@ -122,26 +122,26 @@ implementation uint16_t rxShiftBuf; message_t rxBuf; - message_t *rxBufPtr = &rxBuf; + message_t * ONE rxBufPtr = &rxBuf; uint16_t preambleLength; - message_t *txBufPtr; + message_t * ONE_NOK txBufPtr; uint8_t nextTxByte; const_uint8_t ackCode[5] = { 0xab, ACK_BYTE1, ACK_BYTE2, 0xaa, 0xaa }; /* Packet structure accessor functions. Note that everything is * relative to the data field. */ - cc1000_header_t *getHeader(message_t *amsg) { - return (cc1000_header_t *)(amsg->data - sizeof(cc1000_header_t)); + cc1000_header_t * ONE getHeader(message_t * ONE amsg) { + return TCAST(cc1000_header_t * ONE, (uint8_t *)amsg + offsetof(message_t, data) - sizeof(cc1000_header_t)); } - cc1000_footer_t *getFooter(message_t *amsg) { + cc1000_footer_t *getFooter(message_t * ONE amsg) { return (cc1000_footer_t *)(amsg->footer); } - cc1000_metadata_t *getMetadata(message_t *amsg) { - return (cc1000_metadata_t *)((uint8_t *)amsg->footer + sizeof(cc1000_footer_t)); + cc1000_metadata_t * ONE getMetadata(message_t * ONE amsg) { + return TCAST(cc1000_metadata_t * ONE, (uint8_t *)amsg + offsetof(message_t, footer) + sizeof(cc1000_footer_t)); } /* State transition functions */ @@ -498,7 +498,7 @@ implementation rxShiftBuf = rxShiftBuf << 8 | in; nextByte = rxShiftBuf >> f.rxBitOffset; - ((uint8_t *)rxBufPtr)[count++] = nextByte; + ((uint8_t *COUNT(sizeof(message_t)))rxBufPtr)[count++] = nextByte; // Adjust rxLength to correspond to the corresponding offset in message_t rxLength += offsetof(message_t, data); @@ -653,7 +653,7 @@ implementation command void* Packet.getPayload(message_t *msg, uint8_t len) { if (len <= TOSH_DATA_LENGTH) { - return (void*)msg->data; + return (void* COUNT_NOK(len))msg->data; } else { return NULL;