68 #define TrackerTypeDef(num_user_vars) \
74 uint32_t user[num_user_vars]; \
78 #define num_of_usercnts(_user_) (sizeof(_user_) / sizeof(uint32_t))
80 #define assert_usertracker(_cntstruct_, _uservarnumb_) ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
82 #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(assert_usertracker(_cntstruct_, _uservarnumb_))
84 #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
88 #define TrackerGet_Ok(_cntstruct_) (_cntstruct_).cnt_ok
90 #define TrackerGet_Err(_cntstruct_) (_cntstruct_).cnt_err
92 #define TrackerGet_Warn(_cntstruct_) (_cntstruct_).cnt_warn
104 #define TrackerGet_User(_cntstruct_, _uservarnumb_) (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
109 #define TrackerCnt_Ok(_cntstruct_) (_cntstruct_).cnt_ok++
111 #define TrackerCnt_Err(_cntstruct_) (_cntstruct_).cnt_err++
113 #define TrackerCnt_Warn(_cntstruct_) (_cntstruct_).cnt_warn++
115 #define TrackerCnt_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
117 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
120 #define TrackerClear_All(_cntstruct_) memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
122 #define TrackerClear_Ok(_cntstruct_) (_cntstruct_).cnt_ok = 0
124 #define TrackerClear_Err(_cntstruct_) (_cntstruct_).cnt_err = 0
126 #define TrackerClear_Warn(_cntstruct_) (_cntstruct_).cnt_warn = 0
128 #define TrackerClear_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
130 #define TrackerClear_UserAll(_cntstruct_) memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
134 #define TrackerTypeDef(num_user_vars) void *
136 #define num_of_usercnts(_user_)
137 #define assert_tracecnt(_cntstruct_, _uservarnumb_)
139 #define TrackerCnt_Ok(_cntstruct_)
140 #define TrackerCnt_Err(_cntstruct_)
141 #define TrackerCnt_Warn(_cntstruct_)
142 #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
143 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
146 #define TrackerClear_All(_cntstruct_)
147 #define TrackerClear_Ok(_cntstruct_)
148 #define TrackerClear_Err(_cntstruct_)
149 #define TrackerClear_Warn(_cntstruct_)
150 #define TrackerClear_User(_cntstruct_)
151 #define TrackerClear_UserAll(_cntstruct_)
Заголочный файл для дефайнов библиотеки MyLibsGeneral.