]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/safe/include/annots_stage1.h
change FAT annotations to BND
[tinyos-2.x.git] / tos / lib / safe / include / annots_stage1.h
index 84ba4586ce653f54674a01098e64b00515d185ce..c1278895c4f1777ba026b60f00d5c602351e6dd1 100644 (file)
@@ -1,14 +1,35 @@
+#ifndef ANNOTS_STAGE1_INCLUDED
+#define ANNOTS_STAGE1_INCLUDED
+#include <stddef.h>
+
+#define __DEPUTY_UNUSED__                      __attribute__((unused))
+
+// define away two obsolete annotations
+#define BOUND(x,y)
+#define SINGLE
+
 #if NESC >= 130
 
-struct @bound @deputy_scope() @macro("__DEPUTY_BOUND") { void *lo, *hi; }; 
-struct @count @deputy_scope() @macro("__DEPUTY_COUNT") { int n; }; 
-struct @single @deputy_scope() @macro("__DEPUTY_SINGLE") { }; 
 struct @nonnull @deputy_scope() @macro("__DEPUTY_NONNULL") { }; 
+struct @bnd @deputy_scope() @macro("__DEPUTY_BND") { void *lo, *hi; }; 
+struct @bnd_nok @deputy_scope() @macro("__DEPUTY_BND_NOK") { void *lo, *hi; }; 
+struct @count @deputy_scope() @macro("__DEPUTY_COUNT") { int n; }; 
+struct @count_nok @deputy_scope() @macro("__DEPUTY_COUNT_NOK") { int n; }; 
+struct @one @deputy_scope() @macro("__DEPUTY_ONE") { }; 
+struct @one_nok @deputy_scope() @macro("__DEPUTY_ONE_NOK") { };
+struct @dmemset @deputy_scope() @macro("__DEPUTY_DMEMSET") {void *p; int what; size_t sz; };
+struct @dmemcpy @deputy_scope() @macro("__DEPUTY_DMEMCPY") {void *dst; void *src; size_t sz; };
 
-#define COUNT(x)                               @count(x)
-#define BOUND(x,y)                             @bound(x,y)
-#define SINGLE                                 @single()
 #define NONNULL                                @nonnull()
+#define BND(x,y)                               @bnd(x,y)
+#define BND_NOK(x,y)                           @bnd_nok(x,y)
+#define COUNT(x)                               @count(x)
+#define COUNT_NOK(x)                           @count_nok(x)
+#define ONE                                    @one()
+#define ONE_NOK                                @one_nok()
+#define DMEMSET(x,y,z)                         @dmemset(x,y,z)
+#define DMEMCPY(x,y,z)                         @dmemcpy(x,y,z)
+#define TRUSTEDBLOCK                           @unsafe()
 
 #else // NESC < 130
 
@@ -16,6 +37,17 @@ struct @nonnull @deputy_scope() @macro("__DEPUTY_NONNULL") { };
 #error Safe TinyOS requires nesC >= 1.3.0
 #endif
 
+#define NONNULL                                
+#define BND(x,y)                             
+#define BND_NOK(x,y)                             
+#define COUNT(x)                               
+#define COUNT_NOK(x)                               
+#define ONE 
+#define ONE_NOK
+#define DMEMSET(x,y,z)
+#define DMEMCPY(x,y,z)
+#define TRUSTEDBLOCK
+
 #endif // NESC version check
 
 #ifdef SAFE_TINYOS
@@ -24,5 +56,11 @@ struct @nonnull @deputy_scope() @macro("__DEPUTY_NONNULL") { };
 #define __DEPUTY_COPYTYPE                      __attribute__((copytype))
 #else
 #define TCAST(__type,__expr)                   ((__type)(__expr))                
+#endif 
+
+#ifdef SAFE_TINYOS
+void * (DMEMSET(1, 2, 3) memset)(void*, int, size_t);
+void * (DMEMCPY(1, 2, 3) memcpy)(void*, const void*, size_t);
 #endif
 
+#endif