69 #define TrackerTypeDef(num_user_vars) \
75 uint32_t user[num_user_vars]; \
79 #define num_of_usercnts(_user_) (sizeof(_user_) / sizeof(uint32_t))
81 #define assert_usertracker(_cntstruct_, _uservarnumb_) ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
83 #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(assert_usertracker(_cntstruct_, _uservarnumb_))
85 #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
89 #define TrackerGet_Ok(_cntstruct_) (_cntstruct_).cnt_ok
91 #define TrackerGet_Err(_cntstruct_) (_cntstruct_).cnt_err
93 #define TrackerGet_Warn(_cntstruct_) (_cntstruct_).cnt_warn
105 #define TrackerGet_User(_cntstruct_, _uservarnumb_) (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
110 #define TrackerCnt_Ok(_cntstruct_) (_cntstruct_).cnt_ok++
112 #define TrackerCnt_Err(_cntstruct_) (_cntstruct_).cnt_err++
114 #define TrackerCnt_Warn(_cntstruct_) (_cntstruct_).cnt_warn++
116 #define TrackerCnt_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
118 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
121 #define TrackerClear_All(_cntstruct_) memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
123 #define TrackerClear_Ok(_cntstruct_) (_cntstruct_).cnt_ok = 0
125 #define TrackerClear_Err(_cntstruct_) (_cntstruct_).cnt_err = 0
127 #define TrackerClear_Warn(_cntstruct_) (_cntstruct_).cnt_warn = 0
129 #define TrackerClear_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
131 #define TrackerClear_UserAll(_cntstruct_) memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
135 #define TrackerTypeDef(num_user_vars) void *
137 #define num_of_usercnts(_user_)
138 #define assert_tracecnt(_cntstruct_, _uservarnumb_)
140 #define TrackerCnt_Ok(_cntstruct_)
141 #define TrackerCnt_Err(_cntstruct_)
142 #define TrackerCnt_Warn(_cntstruct_)
143 #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
144 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
147 #define TrackerClear_All(_cntstruct_)
148 #define TrackerClear_Ok(_cntstruct_)
149 #define TrackerClear_Err(_cntstruct_)
150 #define TrackerClear_Warn(_cntstruct_)
151 #define TrackerClear_User(_cntstruct_)
152 #define TrackerClear_UserAll(_cntstruct_)
Заголочный файл для дефайнов библиотеки MyLibsGeneral.