SFBAssert.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00027 #ifndef SFBASSERT_H_
00028 #define SFBASSERT_H_
00029
00030 #include "SFBErrors.h"
00031
00032 #ifndef API_UNPROTECTED
00033
00047 #define API_BUG(code) do { _apiError_(code,__FILE__,__LINE__); } while (0)
00048
00049
00064 #define API_ASSERT(condition,code) do { if (!(condition)) API_BUG(code); } while (0)
00065
00066 #else
00067
00068 #define API_BUG(code) 0
00069 #define API_ASSERT(condition,code)
00070
00071 #endif
00072
00093 #define POISON(code0_6) API_BUG(BLINK_MAP(1,0,code0_6))
00094
00097 #define API_ASSERT_MAX_CODE(value,maxval,code) API_ASSERT(((u32)(value))<(maxval),code)
00098
00100 #define API_ASSERT_MAX(value,maxval) API_ASSERT_MAX_CODE(value,maxval,E_API_MAX_RANGE)
00101
00103 #define API_ASSERT_TRUE(value) API_ASSERT((value)!=0,E_API_TRUE)
00104
00106 #define API_ASSERT_FALSE(value) API_ASSERT((value)==0,E_API_FALSE)
00107
00109 #define API_ASSERT_NONZERO(value) API_ASSERT((value)!=0,E_API_NONZERO)
00110
00112 #define API_ASSERT_NONNULL(value) API_ASSERT((value)!=0,E_API_NULL_POINTER)
00113
00115 #define API_ASSERT_NULL(value) API_ASSERT((value)==0,E_API_NONNULL_POINTER)
00116
00118 #define API_ASSERT_ZERO(value) API_ASSERT((value)==0,E_API_ZERO)
00119
00121 #define API_ASSERT_EQUAL(target,value) API_ASSERT((value)==(target),E_API_EQUAL)
00122
00124 #define API_ASSERT_NOT_EQUAL(target,value) API_ASSERT((value)!=(target),E_API_NOT_EQUAL)
00125
00127 #define API_ASSERT_LESS(target,value) API_ASSERT((target)<(value),E_API_LESS)
00128
00130 #define API_ASSERT_LESS_EQUAL(target,value) API_ASSERT((target)<=(value),E_API_LESS_EQUAL)
00131
00133 #define API_ASSERT_GREATER(target,value) API_ASSERT((target)>(value),E_API_GREATER)
00134
00136 #define API_ASSERT_GREATER_EQUAL(target,value) API_ASSERT((target)>=(value),E_API_GREATER_EQUAL)
00137
00139 #define API_ASSERT_VALID_PIN(u32Pin) API_ASSERT_MAX_CODE(u32Pin,VIRTUAL_PIN_COUNT,E_API_BAD_PIN)
00140
00145 #define API_ASSERT_VALID_FACE(u32Face) API_ASSERT_MAX_CODE(u32Face,FACE_COUNT,E_API_BAD_FACE)
00146
00152 #define API_ASSERT_VALID_EXTENDED_FACE(u32Face) API_ASSERT_MAX_CODE(u32Face,MAX_FACE_INDEX,E_API_BAD_FACE)
00153
00155 #define API_ASSERT_HALFWORD_ALIGNED(uptraddress) API_ASSERT((((uptr)(uptraddress))&1)==0,E_API_HALFWORD_ALIGNED)
00156
00158 #define API_ASSERT_WORD_ALIGNED(uptraddress) API_ASSERT((((uptr)(uptraddress))&3)==0,E_API_WORD_ALIGNED)
00159
00161 #define API_ASSERT_DOUBLEWORD_ALIGNED(uptraddress) API_ASSERT((((uptr)(uptraddress))&7)==0,E_API_DOUBLEWORD_ALIGNED)
00162
00163 #endif