rtx_evr.h 74 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974
  1. /*
  2. * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the License); you may
  7. * not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  14. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. *
  18. * -----------------------------------------------------------------------------
  19. *
  20. * Project: CMSIS-RTOS RTX
  21. * Title: RTX Event Recorder definitions
  22. *
  23. * -----------------------------------------------------------------------------
  24. */
  25. #ifndef RTX_EVR_H_
  26. #define RTX_EVR_H_
  27. #include "cmsis_os2.h" // CMSIS RTOS API
  28. #include "RTX_Config.h" // RTX Configuration
  29. #include "rtx_os.h" // RTX OS definitions
  30. // Initial Thread configuration covered also Thread Flags and Generic Wait
  31. #ifndef OS_EVR_THFLAGS
  32. #define OS_EVR_THFLAGS OS_EVR_THREAD
  33. #endif
  34. #ifndef OS_EVR_WAIT
  35. #define OS_EVR_WAIT OS_EVR_THREAD
  36. #endif
  37. #ifdef _RTE_
  38. #include "RTE_Components.h"
  39. #endif
  40. #ifdef RTE_Compiler_EventRecorder
  41. //lint -emacro((835,845),EventID) [MISRA Note 13]
  42. #include "EventRecorder.h"
  43. #include "EventRecorderConf.h"
  44. #if ((defined(OS_EVR_INIT) && (OS_EVR_INIT != 0)) || (EVENT_TIMESTAMP_SOURCE == 2))
  45. #ifndef EVR_RTX_KERNEL_GET_STATE_DISABLE
  46. #define EVR_RTX_KERNEL_GET_STATE_DISABLE
  47. #endif
  48. #endif
  49. #if (EVENT_TIMESTAMP_SOURCE == 2)
  50. #ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
  51. #define EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
  52. #endif
  53. #ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
  54. #define EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
  55. #endif
  56. #endif
  57. /// RTOS component number
  58. #define EvtRtxMemoryNo (0xF0U)
  59. #define EvtRtxKernelNo (0xF1U)
  60. #define EvtRtxThreadNo (0xF2U)
  61. #define EvtRtxThreadFlagsNo (0xF4U)
  62. #define EvtRtxWaitNo (0xF3U)
  63. #define EvtRtxTimerNo (0xF6U)
  64. #define EvtRtxEventFlagsNo (0xF5U)
  65. #define EvtRtxMutexNo (0xF7U)
  66. #define EvtRtxSemaphoreNo (0xF8U)
  67. #define EvtRtxMemoryPoolNo (0xF9U)
  68. #define EvtRtxMessageQueueNo (0xFAU)
  69. #endif // RTE_Compiler_EventRecorder
  70. /// Extended Status codes
  71. #define osRtxErrorKernelNotReady (-7)
  72. #define osRtxErrorKernelNotRunning (-8)
  73. #define osRtxErrorInvalidControlBlock (-9)
  74. #define osRtxErrorInvalidDataMemory (-10)
  75. #define osRtxErrorInvalidThreadStack (-11)
  76. #define osRtxErrorInvalidPriority (-12)
  77. #define osRtxErrorThreadNotJoinable (-13)
  78. #define osRtxErrorMutexNotOwned (-14)
  79. #define osRtxErrorMutexNotLocked (-15)
  80. #define osRtxErrorMutexLockLimit (-16)
  81. #define osRtxErrorSemaphoreCountLimit (-17)
  82. #define osRtxErrorTZ_InitContext_S (-18)
  83. #define osRtxErrorTZ_AllocContext_S (-19)
  84. #define osRtxErrorTZ_FreeContext_S (-20)
  85. #define osRtxErrorTZ_LoadContext_S (-21)
  86. #define osRtxErrorTZ_SaveContext_S (-22)
  87. // ==== Memory Events ====
  88. /**
  89. \brief Event on memory initialization (Op)
  90. \param[in] mem pointer to memory pool.
  91. \param[in] size size of a memory pool in bytes.
  92. \param[in] result execution status: 1 - success, 0 - failure.
  93. */
  94. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_INIT_DISABLE))
  95. extern void EvrRtxMemoryInit (void *mem, uint32_t size, uint32_t result);
  96. #else
  97. #define EvrRtxMemoryInit(mem, size, result)
  98. #endif
  99. /**
  100. \brief Event on memory allocate (Op)
  101. \param[in] mem pointer to memory pool.
  102. \param[in] size size of a memory block in bytes.
  103. \param[in] type memory block type: 0 - generic, 1 - control block.
  104. \param[in] block pointer to allocated memory block or NULL in case of no memory is available.
  105. */
  106. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_ALLOC_DISABLE))
  107. extern void EvrRtxMemoryAlloc (void *mem, uint32_t size, uint32_t type, void *block);
  108. #else
  109. #define EvrRtxMemoryAlloc(mem, size, type, block)
  110. #endif
  111. /**
  112. \brief Event on memory free (Op)
  113. \param[in] mem pointer to memory pool.
  114. \param[in] block memory block to be returned to the memory pool.
  115. \param[in] result execution status: 1 - success, 0 - failure.
  116. */
  117. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_FREE_DISABLE))
  118. extern void EvrRtxMemoryFree (void *mem, void *block, uint32_t result);
  119. #else
  120. #define EvrRtxMemoryFree(mem, block, result)
  121. #endif
  122. /**
  123. \brief Event on memory block initialization (Op)
  124. \param[in] mp_info memory pool info.
  125. \param[in] block_count maximum number of memory blocks in memory pool.
  126. \param[in] block_size size of a memory block in bytes.
  127. \param[in] block_mem pointer to memory for block storage.
  128. */
  129. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_INIT_DISABLE))
  130. extern void EvrRtxMemoryBlockInit (osRtxMpInfo_t *mp_info, uint32_t block_count, uint32_t block_size, void *block_mem);
  131. #else
  132. #define EvrRtxMemoryBlockInit(mp_info, block_count, block_size, block_mem)
  133. #endif
  134. /**
  135. \brief Event on memory block alloc (Op)
  136. \param[in] mp_info memory pool info.
  137. \param[in] block address of the allocated memory block or NULL in case of no memory is available.
  138. */
  139. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_ALLOC_DISABLE))
  140. extern void EvrRtxMemoryBlockAlloc (osRtxMpInfo_t *mp_info, void *block);
  141. #else
  142. #define EvrRtxMemoryBlockAlloc(mp_info, block)
  143. #endif
  144. /**
  145. \brief Event on memory block free (Op)
  146. \param[in] mp_info memory pool info.
  147. \param[in] block address of the allocated memory block to be returned to the memory pool.
  148. \param[in] status extended execution status.
  149. */
  150. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_FREE_DISABLE))
  151. extern void EvrRtxMemoryBlockFree (osRtxMpInfo_t *mp_info, void *block, int32_t status);
  152. #else
  153. #define EvrRtxMemoryBlockFree(mp_info, block, status)
  154. #endif
  155. // ==== Kernel Events ====
  156. /**
  157. \brief Event on RTOS kernel error (Error)
  158. \param[in] status extended execution status.
  159. */
  160. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_ERROR_DISABLE))
  161. extern void EvrRtxKernelError (int32_t status);
  162. #else
  163. #define EvrRtxKernelError(status)
  164. #endif
  165. /**
  166. \brief Event on RTOS kernel initialize (API)
  167. */
  168. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZE_DISABLE))
  169. extern void EvrRtxKernelInitialize (void);
  170. #else
  171. #define EvrRtxKernelInitialize()
  172. #endif
  173. /**
  174. \brief Event on successful RTOS kernel initialize (Op)
  175. */
  176. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZED_DISABLE))
  177. extern void EvrRtxKernelInitialized (void);
  178. #else
  179. #define EvrRtxKernelInitialized()
  180. #endif
  181. /**
  182. \brief Event on RTOS kernel information retrieve (API)
  183. \param[in] version pointer to buffer for retrieving version information.
  184. \param[in] id_buf pointer to buffer for retrieving kernel identification string.
  185. \param[in] id_size size of buffer for kernel identification string.
  186. */
  187. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_INFO_DISABLE))
  188. extern void EvrRtxKernelGetInfo (osVersion_t *version, char *id_buf, uint32_t id_size);
  189. #else
  190. #define EvrRtxKernelGetInfo(version, id_buf, id_size)
  191. #endif
  192. /**
  193. \brief Event on successful RTOS kernel information retrieve (Op)
  194. \param[in] version pointer to buffer for retrieving version information.
  195. \param[in] id_buf pointer to buffer for retrieving kernel identification string.
  196. \param[in] id_size size of buffer for kernel identification string.
  197. */
  198. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INFO_RETRIEVED_DISABLE))
  199. extern void EvrRtxKernelInfoRetrieved (const osVersion_t *version, const char *id_buf, uint32_t id_size);
  200. #else
  201. #define EvrRtxKernelInfoRetrieved(version, id_buf, id_size)
  202. #endif
  203. /**
  204. \brief Event on current RTOS Kernel state retrieve (API)
  205. \param[in] state current RTOS Kernel state.
  206. */
  207. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_STATE_DISABLE))
  208. extern void EvrRtxKernelGetState (osKernelState_t state);
  209. #else
  210. #define EvrRtxKernelGetState(state)
  211. #endif
  212. /**
  213. \brief Event on RTOS Kernel scheduler start (API)
  214. */
  215. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_START_DISABLE))
  216. extern void EvrRtxKernelStart (void);
  217. #else
  218. #define EvrRtxKernelStart()
  219. #endif
  220. /**
  221. \brief Event on successful RTOS Kernel scheduler start (Op)
  222. */
  223. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_STARTED_DISABLE))
  224. extern void EvrRtxKernelStarted (void);
  225. #else
  226. #define EvrRtxKernelStarted()
  227. #endif
  228. /**
  229. \brief Event on RTOS Kernel scheduler lock (API)
  230. */
  231. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_DISABLE))
  232. extern void EvrRtxKernelLock (void);
  233. #else
  234. #define EvrRtxKernelLock()
  235. #endif
  236. /**
  237. \brief Event on successful RTOS Kernel scheduler lock (Op)
  238. \param[in] lock previous lock state (1 - locked, 0 - not locked).
  239. */
  240. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCKED_DISABLE))
  241. extern void EvrRtxKernelLocked (int32_t lock);
  242. #else
  243. #define EvrRtxKernelLocked(lock)
  244. #endif
  245. /**
  246. \brief Event on RTOS Kernel scheduler unlock (API)
  247. */
  248. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCK_DISABLE))
  249. extern void EvrRtxKernelUnlock (void);
  250. #else
  251. #define EvrRtxKernelUnlock()
  252. #endif
  253. /**
  254. \brief Event on successful RTOS Kernel scheduler unlock (Op)
  255. \param[in] lock previous lock state (1 - locked, 0 - not locked).
  256. */
  257. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCKED_DISABLE))
  258. extern void EvrRtxKernelUnlocked (int32_t lock);
  259. #else
  260. #define EvrRtxKernelUnlocked(lock)
  261. #endif
  262. /**
  263. \brief Event on RTOS Kernel scheduler lock state restore (API)
  264. \param[in] lock lock state obtained by \ref osKernelLock or \ref osKernelUnlock.
  265. */
  266. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESTORE_LOCK_DISABLE))
  267. extern void EvrRtxKernelRestoreLock (int32_t lock);
  268. #else
  269. #define EvrRtxKernelRestoreLock(lock)
  270. #endif
  271. /**
  272. \brief Event on successful RTOS Kernel scheduler lock state restore (Op)
  273. \param[in] lock new lock state (1 - locked, 0 - not locked).
  274. */
  275. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_RESTORED_DISABLE))
  276. extern void EvrRtxKernelLockRestored (int32_t lock);
  277. #else
  278. #define EvrRtxKernelLockRestored(lock)
  279. #endif
  280. /**
  281. \brief Event on RTOS Kernel scheduler suspend (API)
  282. */
  283. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPEND_DISABLE))
  284. extern void EvrRtxKernelSuspend (void);
  285. #else
  286. #define EvrRtxKernelSuspend()
  287. #endif
  288. /**
  289. \brief Event on successful RTOS Kernel scheduler suspend (Op)
  290. \param[in] sleep_ticks time in ticks, for how long the system can sleep or power-down.
  291. */
  292. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPENDED_DISABLE))
  293. extern void EvrRtxKernelSuspended (uint32_t sleep_ticks);
  294. #else
  295. #define EvrRtxKernelSuspended(sleep_ticks)
  296. #endif
  297. /**
  298. \brief Event on RTOS Kernel scheduler resume (API)
  299. \param[in] sleep_ticks time in ticks, for how long the system was in sleep or power-down mode.
  300. */
  301. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUME_DISABLE))
  302. extern void EvrRtxKernelResume (uint32_t sleep_ticks);
  303. #else
  304. #define EvrRtxKernelResume(sleep_ticks)
  305. #endif
  306. /**
  307. \brief Event on successful RTOS Kernel scheduler resume (Op)
  308. */
  309. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUMED_DISABLE))
  310. extern void EvrRtxKernelResumed (void);
  311. #else
  312. #define EvrRtxKernelResumed()
  313. #endif
  314. /**
  315. \brief Event on RTOS kernel tick count retrieve (API)
  316. \param[in] count RTOS kernel current tick count.
  317. */
  318. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_COUNT_DISABLE))
  319. extern void EvrRtxKernelGetTickCount (uint32_t count);
  320. #else
  321. #define EvrRtxKernelGetTickCount(count)
  322. #endif
  323. /**
  324. \brief Event on RTOS kernel tick frequency retrieve (API)
  325. \param[in] freq frequency of the kernel tick.
  326. */
  327. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_FREQ_DISABLE))
  328. extern void EvrRtxKernelGetTickFreq (uint32_t freq);
  329. #else
  330. #define EvrRtxKernelGetTickFreq(freq)
  331. #endif
  332. /**
  333. \brief Event on RTOS kernel system timer count retrieve (API)
  334. \param[in] count RTOS kernel current system timer count as 32-bit value.
  335. */
  336. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE))
  337. extern void EvrRtxKernelGetSysTimerCount (uint32_t count);
  338. #else
  339. #define EvrRtxKernelGetSysTimerCount(count)
  340. #endif
  341. /**
  342. \brief Event on RTOS kernel system timer frequency retrieve (API)
  343. \param[in] freq frequency of the system timer.
  344. */
  345. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE))
  346. extern void EvrRtxKernelGetSysTimerFreq (uint32_t freq);
  347. #else
  348. #define EvrRtxKernelGetSysTimerFreq(freq)
  349. #endif
  350. // ==== Thread Events ====
  351. /**
  352. \brief Event on thread error (Error)
  353. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
  354. \param[in] status extended execution status.
  355. */
  356. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ERROR_DISABLE))
  357. extern void EvrRtxThreadError (osThreadId_t thread_id, int32_t status);
  358. #else
  359. #define EvrRtxThreadError(thread_id, status)
  360. #endif
  361. /**
  362. \brief Event on thread create and intialize (API)
  363. \param[in] func thread function.
  364. \param[in] argument pointer that is passed to the thread function as start argument.
  365. \param[in] attr thread attributes.
  366. */
  367. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_NEW_DISABLE))
  368. extern void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);
  369. #else
  370. #define EvrRtxThreadNew(func, argument, attr)
  371. #endif
  372. /**
  373. \brief Event on successful thread create (Op)
  374. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  375. \param[in] thread_addr thread entry address.
  376. \param[in] name pointer to thread object name.
  377. */
  378. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_CREATED_DISABLE))
  379. extern void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name);
  380. #else
  381. #define EvrRtxThreadCreated(thread_id, thread_addr, name)
  382. #endif
  383. /**
  384. \brief Event on thread name retrieve (API)
  385. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  386. \param[in] name pointer to thread object name.
  387. */
  388. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_NAME_DISABLE))
  389. extern void EvrRtxThreadGetName (osThreadId_t thread_id, const char *name);
  390. #else
  391. #define EvrRtxThreadGetName(thread_id, name)
  392. #endif
  393. /**
  394. \brief Event on current running thread ID retrieve (API)
  395. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  396. */
  397. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_ID_DISABLE))
  398. extern void EvrRtxThreadGetId (osThreadId_t thread_id);
  399. #else
  400. #define EvrRtxThreadGetId(thread_id)
  401. #endif
  402. /**
  403. \brief Event on thread state retrieve (API)
  404. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  405. \param[in] state current thread state of the specified thread.
  406. */
  407. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STATE_DISABLE))
  408. extern void EvrRtxThreadGetState (osThreadId_t thread_id, osThreadState_t state);
  409. #else
  410. #define EvrRtxThreadGetState(thread_id, state)
  411. #endif
  412. /**
  413. \brief Event on thread stack size retrieve (API)
  414. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  415. \param[in] stack_size stack size in bytes.
  416. */
  417. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SIZE_DISABLE))
  418. extern void EvrRtxThreadGetStackSize (osThreadId_t thread_id, uint32_t stack_size);
  419. #else
  420. #define EvrRtxThreadGetStackSize(thread_id, stack_size)
  421. #endif
  422. /**
  423. \brief Event on available stack space retrieve (API)
  424. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  425. \param[in] stack_space remaining stack space in bytes.
  426. */
  427. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SPACE_DISABLE))
  428. extern void EvrRtxThreadGetStackSpace (osThreadId_t thread_id, uint32_t stack_space);
  429. #else
  430. #define EvrRtxThreadGetStackSpace(thread_id, stack_space)
  431. #endif
  432. /**
  433. \brief Event on thread priority set (API)
  434. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  435. \param[in] priority new priority value for the thread function.
  436. */
  437. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SET_PRIORITY_DISABLE))
  438. extern void EvrRtxThreadSetPriority (osThreadId_t thread_id, osPriority_t priority);
  439. #else
  440. #define EvrRtxThreadSetPriority(thread_id, priority)
  441. #endif
  442. /**
  443. \brief Event on thread priority updated (Op)
  444. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  445. \param[in] priority new priority value for the thread function.
  446. */
  447. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PRIORITY_UPDATED_DISABLE))
  448. extern void EvrRtxThreadPriorityUpdated (osThreadId_t thread_id, osPriority_t priority);
  449. #else
  450. #define EvrRtxThreadPriorityUpdated(thread_id, priority)
  451. #endif
  452. /**
  453. \brief Event on thread priority retrieve (API)
  454. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  455. \param[in] priority current priority value of the specified thread.
  456. */
  457. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_PRIORITY_DISABLE))
  458. extern void EvrRtxThreadGetPriority (osThreadId_t thread_id, osPriority_t priority);
  459. #else
  460. #define EvrRtxThreadGetPriority(thread_id, priority)
  461. #endif
  462. /**
  463. \brief Event on thread yield (API)
  464. */
  465. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_YIELD_DISABLE))
  466. extern void EvrRtxThreadYield (void);
  467. #else
  468. #define EvrRtxThreadYield()
  469. #endif
  470. /**
  471. \brief Event on thread suspend (API)
  472. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  473. */
  474. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPEND_DISABLE))
  475. extern void EvrRtxThreadSuspend (osThreadId_t thread_id);
  476. #else
  477. #define EvrRtxThreadSuspend(thread_id)
  478. #endif
  479. /**
  480. \brief Event on successful thread suspend (Op)
  481. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  482. */
  483. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPENDED_DISABLE))
  484. extern void EvrRtxThreadSuspended (osThreadId_t thread_id);
  485. #else
  486. #define EvrRtxThreadSuspended(thread_id)
  487. #endif
  488. /**
  489. \brief Event on thread resume (API)
  490. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  491. */
  492. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUME_DISABLE))
  493. extern void EvrRtxThreadResume (osThreadId_t thread_id);
  494. #else
  495. #define EvrRtxThreadResume(thread_id)
  496. #endif
  497. /**
  498. \brief Event on successful thread resume (Op)
  499. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  500. */
  501. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUMED_DISABLE))
  502. extern void EvrRtxThreadResumed (osThreadId_t thread_id);
  503. #else
  504. #define EvrRtxThreadResumed(thread_id)
  505. #endif
  506. /**
  507. \brief Event on thread detach (API)
  508. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  509. */
  510. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACH_DISABLE))
  511. extern void EvrRtxThreadDetach (osThreadId_t thread_id);
  512. #else
  513. #define EvrRtxThreadDetach(thread_id)
  514. #endif
  515. /**
  516. \brief Event on successful thread detach (Op)
  517. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  518. */
  519. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACHED_DISABLE))
  520. extern void EvrRtxThreadDetached (osThreadId_t thread_id);
  521. #else
  522. #define EvrRtxThreadDetached(thread_id)
  523. #endif
  524. /**
  525. \brief Event on thread join (API)
  526. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  527. */
  528. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_DISABLE))
  529. extern void EvrRtxThreadJoin (osThreadId_t thread_id);
  530. #else
  531. #define EvrRtxThreadJoin(thread_id)
  532. #endif
  533. /**
  534. \brief Event on pending thread join (Op)
  535. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  536. */
  537. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_PENDING_DISABLE))
  538. extern void EvrRtxThreadJoinPending (osThreadId_t thread_id);
  539. #else
  540. #define EvrRtxThreadJoinPending(thread_id)
  541. #endif
  542. /**
  543. \brief Event on successful thread join (Op)
  544. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  545. */
  546. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOINED_DISABLE))
  547. extern void EvrRtxThreadJoined (osThreadId_t thread_id);
  548. #else
  549. #define EvrRtxThreadJoined(thread_id)
  550. #endif
  551. /**
  552. \brief Event on thread execution block (Detail)
  553. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  554. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  555. */
  556. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_BLOCKED_DISABLE))
  557. extern void EvrRtxThreadBlocked (osThreadId_t thread_id, uint32_t timeout);
  558. #else
  559. #define EvrRtxThreadBlocked(thread_id, timeout)
  560. #endif
  561. /**
  562. \brief Event on thread execution unblock (Detail)
  563. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  564. \param[in] ret_val extended execution status of the thread.
  565. */
  566. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_UNBLOCKED_DISABLE))
  567. extern void EvrRtxThreadUnblocked (osThreadId_t thread_id, uint32_t ret_val);
  568. #else
  569. #define EvrRtxThreadUnblocked(thread_id, ret_val)
  570. #endif
  571. /**
  572. \brief Event on running thread pre-emption (Detail)
  573. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  574. */
  575. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PREEMPTED_DISABLE))
  576. extern void EvrRtxThreadPreempted (osThreadId_t thread_id);
  577. #else
  578. #define EvrRtxThreadPreempted(thread_id)
  579. #endif
  580. /**
  581. \brief Event on running thread switch (Op)
  582. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  583. */
  584. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SWITCHED_DISABLE))
  585. extern void EvrRtxThreadSwitched (osThreadId_t thread_id);
  586. #else
  587. #define EvrRtxThreadSwitched(thread_id)
  588. #endif
  589. /**
  590. \brief Event on thread exit (API)
  591. */
  592. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_EXIT_DISABLE))
  593. extern void EvrRtxThreadExit (void);
  594. #else
  595. #define EvrRtxThreadExit()
  596. #endif
  597. /**
  598. \brief Event on thread terminate (API)
  599. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  600. */
  601. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_TERMINATE_DISABLE))
  602. extern void EvrRtxThreadTerminate (osThreadId_t thread_id);
  603. #else
  604. #define EvrRtxThreadTerminate(thread_id)
  605. #endif
  606. /**
  607. \brief Event on successful thread terminate (Op)
  608. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  609. */
  610. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DESTROYED_DISABLE))
  611. extern void EvrRtxThreadDestroyed (osThreadId_t thread_id);
  612. #else
  613. #define EvrRtxThreadDestroyed(thread_id)
  614. #endif
  615. /**
  616. \brief Event on active thread count retrieve (API)
  617. \param[in] count number of active threads.
  618. */
  619. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_COUNT_DISABLE))
  620. extern void EvrRtxThreadGetCount (uint32_t count);
  621. #else
  622. #define EvrRtxThreadGetCount(count)
  623. #endif
  624. /**
  625. \brief Event on active threads enumerate (API)
  626. \param[in] thread_array pointer to array for retrieving thread IDs.
  627. \param[in] array_items maximum number of items in array for retrieving thread IDs.
  628. \param[in] count number of enumerated threads.
  629. */
  630. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ENUMERATE_DISABLE))
  631. extern void EvrRtxThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items, uint32_t count);
  632. #else
  633. #define EvrRtxThreadEnumerate(thread_array, array_items, count)
  634. #endif
  635. // ==== Thread Flags Events ====
  636. /**
  637. \brief Event on thread flags error (Error)
  638. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
  639. \param[in] status extended execution status.
  640. */
  641. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_ERROR_DISABLE))
  642. extern void EvrRtxThreadFlagsError (osThreadId_t thread_id, int32_t status);
  643. #else
  644. #define EvrRtxThreadFlagsError(thread_id, status)
  645. #endif
  646. /**
  647. \brief Event on thread flags set (API)
  648. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  649. \param[in] flags flags of the thread that shall be set.
  650. */
  651. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DISABLE))
  652. extern void EvrRtxThreadFlagsSet (osThreadId_t thread_id, uint32_t flags);
  653. #else
  654. #define EvrRtxThreadFlagsSet(thread_id, flags)
  655. #endif
  656. /**
  657. \brief Event on successful thread flags set (Op)
  658. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  659. \param[in] thread_flags thread flags after setting.
  660. */
  661. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DONE_DISABLE))
  662. extern void EvrRtxThreadFlagsSetDone (osThreadId_t thread_id, uint32_t thread_flags);
  663. #else
  664. #define EvrRtxThreadFlagsSetDone(thread_id, thread_flags)
  665. #endif
  666. /**
  667. \brief Event on thread flags clear (API)
  668. \param[in] flags flags of the thread that shall be cleared.
  669. */
  670. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DISABLE))
  671. extern void EvrRtxThreadFlagsClear (uint32_t flags);
  672. #else
  673. #define EvrRtxThreadFlagsClear(flags)
  674. #endif
  675. /**
  676. \brief Event on successful thread flags clear (Op)
  677. \param[in] thread_flags thread flags before clearing.
  678. */
  679. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DONE_DISABLE))
  680. extern void EvrRtxThreadFlagsClearDone (uint32_t thread_flags);
  681. #else
  682. #define EvrRtxThreadFlagsClearDone(thread_flags)
  683. #endif
  684. /**
  685. \brief Event on thread flags retrieve (API)
  686. \param[in] thread_flags current thread flags.
  687. */
  688. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_GET_DISABLE))
  689. extern void EvrRtxThreadFlagsGet (uint32_t thread_flags);
  690. #else
  691. #define EvrRtxThreadFlagsGet(thread_flags)
  692. #endif
  693. /**
  694. \brief Event on wait for thread flags (API)
  695. \param[in] flags flags to wait for.
  696. \param[in] options flags options (osFlagsXxxx).
  697. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  698. */
  699. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_DISABLE))
  700. extern void EvrRtxThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout);
  701. #else
  702. #define EvrRtxThreadFlagsWait(flags, options, timeout)
  703. #endif
  704. /**
  705. \brief Event on pending wait for thread flags (Op)
  706. \param[in] flags flags to wait for.
  707. \param[in] options flags options (osFlagsXxxx).
  708. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  709. */
  710. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_PENDING_DISABLE))
  711. extern void EvrRtxThreadFlagsWaitPending (uint32_t flags, uint32_t options, uint32_t timeout);
  712. #else
  713. #define EvrRtxThreadFlagsWaitPending(flags, options, timeout)
  714. #endif
  715. /**
  716. \brief Event on wait timeout for thread flags (Op)
  717. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  718. */
  719. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_TIMEOUT_DISABLE))
  720. extern void EvrRtxThreadFlagsWaitTimeout (osThreadId_t thread_id);
  721. #else
  722. #define EvrRtxThreadFlagsWaitTimeout(thread_id)
  723. #endif
  724. /**
  725. \brief Event on successful wait for thread flags (Op)
  726. \param[in] flags flags to wait for.
  727. \param[in] options flags options (osFlagsXxxx).
  728. \param[in] thread_flags thread flags before clearing.
  729. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  730. */
  731. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_COMPLETED_DISABLE))
  732. extern void EvrRtxThreadFlagsWaitCompleted (uint32_t flags, uint32_t options, uint32_t thread_flags, osThreadId_t thread_id);
  733. #else
  734. #define EvrRtxThreadFlagsWaitCompleted(flags, options, thread_flags, thread_id)
  735. #endif
  736. /**
  737. \brief Event on unsuccessful wait for thread flags (Op)
  738. \param[in] flags flags to wait for.
  739. \param[in] options flags options (osFlagsXxxx).
  740. */
  741. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
  742. extern void EvrRtxThreadFlagsWaitNotCompleted (uint32_t flags, uint32_t options);
  743. #else
  744. #define EvrRtxThreadFlagsWaitNotCompleted(flags, options)
  745. #endif
  746. // ==== Generic Wait Events ====
  747. /**
  748. \brief Event on delay error (Error)
  749. \param[in] status extended execution status.
  750. */
  751. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_ERROR_DISABLE))
  752. extern void EvrRtxDelayError (int32_t status);
  753. #else
  754. #define EvrRtxDelayError(status)
  755. #endif
  756. /**
  757. \brief Event on delay for specified time (API)
  758. \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
  759. */
  760. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_DISABLE))
  761. extern void EvrRtxDelay (uint32_t ticks);
  762. #else
  763. #define EvrRtxDelay(ticks)
  764. #endif
  765. /**
  766. \brief Event on delay until specified time (API)
  767. \param[in] ticks absolute time in ticks.
  768. */
  769. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_DISABLE))
  770. extern void EvrRtxDelayUntil (uint32_t ticks);
  771. #else
  772. #define EvrRtxDelayUntil(ticks)
  773. #endif
  774. /**
  775. \brief Event on delay started (Op)
  776. \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
  777. */
  778. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_STARTED_DISABLE))
  779. extern void EvrRtxDelayStarted (uint32_t ticks);
  780. #else
  781. #define EvrRtxDelayStarted(ticks)
  782. #endif
  783. /**
  784. \brief Event on delay until specified time started (Op)
  785. \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
  786. */
  787. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_STARTED_DISABLE))
  788. extern void EvrRtxDelayUntilStarted (uint32_t ticks);
  789. #else
  790. #define EvrRtxDelayUntilStarted(ticks)
  791. #endif
  792. /**
  793. \brief Event on delay completed (Op)
  794. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  795. */
  796. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_COMPLETED_DISABLE))
  797. extern void EvrRtxDelayCompleted (osThreadId_t thread_id);
  798. #else
  799. #define EvrRtxDelayCompleted(thread_id)
  800. #endif
  801. // ==== Timer Events ====
  802. /**
  803. \brief Event on timer error (Error)
  804. \param[in] timer_id timer ID obtained by \ref osTimerNew or NULL when ID is unknown.
  805. \param[in] status extended execution status.
  806. */
  807. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_ERROR_DISABLE))
  808. extern void EvrRtxTimerError (osTimerId_t timer_id, int32_t status);
  809. #else
  810. #define EvrRtxTimerError(timer_id, status)
  811. #endif
  812. /**
  813. \brief Event on timer callback call (Op)
  814. \param[in] func start address of a timer call back function.
  815. \param[in] argument argument to the timer call back function.
  816. */
  817. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CALLBACK_DISABLE))
  818. extern void EvrRtxTimerCallback (osTimerFunc_t func, void *argument);
  819. #else
  820. #define EvrRtxTimerCallback(func, argument)
  821. #endif
  822. /**
  823. \brief Event on timer create and initialize (API)
  824. \param[in] func start address of a timer call back function.
  825. \param[in] type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
  826. \param[in] argument argument to the timer call back function.
  827. \param[in] attr timer attributes.
  828. */
  829. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_NEW_DISABLE))
  830. extern void EvrRtxTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr);
  831. #else
  832. #define EvrRtxTimerNew(func, type, argument, attr)
  833. #endif
  834. /**
  835. \brief Event on successful timer create (Op)
  836. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  837. \param[in] name pointer to timer object name.
  838. */
  839. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CREATED_DISABLE))
  840. extern void EvrRtxTimerCreated (osTimerId_t timer_id, const char *name);
  841. #else
  842. #define EvrRtxTimerCreated(timer_id, name)
  843. #endif
  844. /**
  845. \brief Event on timer name retrieve (API)
  846. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  847. \param[in] name pointer to timer object name.
  848. */
  849. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_GET_NAME_DISABLE))
  850. extern void EvrRtxTimerGetName (osTimerId_t timer_id, const char *name);
  851. #else
  852. #define EvrRtxTimerGetName(timer_id, name)
  853. #endif
  854. /**
  855. \brief Event on timer start (API)
  856. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  857. \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value of the timer.
  858. */
  859. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_START_DISABLE))
  860. extern void EvrRtxTimerStart (osTimerId_t timer_id, uint32_t ticks);
  861. #else
  862. #define EvrRtxTimerStart(timer_id, ticks)
  863. #endif
  864. /**
  865. \brief Event on successful timer start (Op)
  866. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  867. */
  868. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STARTED_DISABLE))
  869. extern void EvrRtxTimerStarted (osTimerId_t timer_id);
  870. #else
  871. #define EvrRtxTimerStarted(timer_id)
  872. #endif
  873. /**
  874. \brief Event on timer stop (API)
  875. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  876. */
  877. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOP_DISABLE))
  878. extern void EvrRtxTimerStop (osTimerId_t timer_id);
  879. #else
  880. #define EvrRtxTimerStop(timer_id)
  881. #endif
  882. /**
  883. \brief Event on successful timer stop (Op)
  884. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  885. */
  886. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOPPED_DISABLE))
  887. extern void EvrRtxTimerStopped (osTimerId_t timer_id);
  888. #else
  889. #define EvrRtxTimerStopped(timer_id)
  890. #endif
  891. /**
  892. \brief Event on timer running state check (API)
  893. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  894. \param[in] running running state: 0 not running, 1 running.
  895. */
  896. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_IS_RUNNING_DISABLE))
  897. extern void EvrRtxTimerIsRunning (osTimerId_t timer_id, uint32_t running);
  898. #else
  899. #define EvrRtxTimerIsRunning(timer_id, running)
  900. #endif
  901. /**
  902. \brief Event on timer delete (API)
  903. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  904. */
  905. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DELETE_DISABLE))
  906. extern void EvrRtxTimerDelete (osTimerId_t timer_id);
  907. #else
  908. #define EvrRtxTimerDelete(timer_id)
  909. #endif
  910. /**
  911. \brief Event on successful timer delete (Op)
  912. \param[in] timer_id timer ID obtained by \ref osTimerNew.
  913. */
  914. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DESTROYED_DISABLE))
  915. extern void EvrRtxTimerDestroyed (osTimerId_t timer_id);
  916. #else
  917. #define EvrRtxTimerDestroyed(timer_id)
  918. #endif
  919. // ==== Event Flags Events ====
  920. /**
  921. \brief Event on event flags error (Error)
  922. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew or NULL when ID is unknown.
  923. \param[in] status extended execution status.
  924. */
  925. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_ERROR_DISABLE))
  926. extern void EvrRtxEventFlagsError (osEventFlagsId_t ef_id, int32_t status);
  927. #else
  928. #define EvrRtxEventFlagsError(ef_id, status)
  929. #endif
  930. /**
  931. \brief Event on event flags create and initialize (API)
  932. \param[in] attr event flags attributes.
  933. */
  934. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_NEW_DISABLE))
  935. extern void EvrRtxEventFlagsNew (const osEventFlagsAttr_t *attr);
  936. #else
  937. #define EvrRtxEventFlagsNew(attr)
  938. #endif
  939. /**
  940. \brief Event on successful event flags create (Op)
  941. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  942. \param[in] name pointer to event flags object name.
  943. */
  944. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CREATED_DISABLE))
  945. extern void EvrRtxEventFlagsCreated (osEventFlagsId_t ef_id, const char *name);
  946. #else
  947. #define EvrRtxEventFlagsCreated(ef_id, name)
  948. #endif
  949. /**
  950. \brief Event on event flags name retrieve (API)
  951. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  952. \param[in] name pointer to event flags object name.
  953. */
  954. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_NAME_DISABLE))
  955. extern void EvrRtxEventFlagsGetName (osEventFlagsId_t ef_id, const char *name);
  956. #else
  957. #define EvrRtxEventFlagsGetName(ef_id, name)
  958. #endif
  959. /**
  960. \brief Event on event flags set (API)
  961. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  962. \param[in] flags flags that shall be set.
  963. */
  964. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DISABLE))
  965. extern void EvrRtxEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags);
  966. #else
  967. #define EvrRtxEventFlagsSet(ef_id, flags)
  968. #endif
  969. /**
  970. \brief Event on successful event flags set (Op)
  971. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  972. \param[in] event_flags event flags after setting.
  973. */
  974. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DONE_DISABLE))
  975. extern void EvrRtxEventFlagsSetDone (osEventFlagsId_t ef_id, uint32_t event_flags);
  976. #else
  977. #define EvrRtxEventFlagsSetDone(ef_id, event_flags)
  978. #endif
  979. /**
  980. \brief Event on event flags clear (API)
  981. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  982. \param[in] flags flags that shall be cleared.
  983. */
  984. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DISABLE))
  985. extern void EvrRtxEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags);
  986. #else
  987. #define EvrRtxEventFlagsClear(ef_id, flags)
  988. #endif
  989. /**
  990. \brief Event on successful event flags clear (Op)
  991. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  992. \param[in] event_flags event flags before clearing.
  993. */
  994. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DONE_DISABLE))
  995. extern void EvrRtxEventFlagsClearDone (osEventFlagsId_t ef_id, uint32_t event_flags);
  996. #else
  997. #define EvrRtxEventFlagsClearDone(ef_id, event_flags)
  998. #endif
  999. /**
  1000. \brief Event on event flags retrieve (API)
  1001. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1002. \param[in] event_flags current event flags.
  1003. */
  1004. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_DISABLE))
  1005. extern void EvrRtxEventFlagsGet (osEventFlagsId_t ef_id, uint32_t event_flags);
  1006. #else
  1007. #define EvrRtxEventFlagsGet(ef_id, event_flags)
  1008. #endif
  1009. /**
  1010. \brief Event on wait for event flags (API)
  1011. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1012. \param[in] flags flags to wait for.
  1013. \param[in] options flags options (osFlagsXxxx).
  1014. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1015. */
  1016. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_DISABLE))
  1017. extern void EvrRtxEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
  1018. #else
  1019. #define EvrRtxEventFlagsWait(ef_id, flags, options, timeout)
  1020. #endif
  1021. /**
  1022. \brief Event on pending wait for event flags (Op)
  1023. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1024. \param[in] flags flags to wait for.
  1025. \param[in] options flags options (osFlagsXxxx).
  1026. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1027. */
  1028. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_PENDING_DISABLE))
  1029. extern void EvrRtxEventFlagsWaitPending (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
  1030. #else
  1031. #define EvrRtxEventFlagsWaitPending(ef_id, flags, options, timeout)
  1032. #endif
  1033. /**
  1034. \brief Event on wait timeout for event flags (Op)
  1035. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1036. */
  1037. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_TIMEOUT_DISABLE))
  1038. extern void EvrRtxEventFlagsWaitTimeout (osEventFlagsId_t ef_id);
  1039. #else
  1040. #define EvrRtxEventFlagsWaitTimeout(ef_id)
  1041. #endif
  1042. /**
  1043. \brief Event on successful wait for event flags (Op)
  1044. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1045. \param[in] flags flags to wait for.
  1046. \param[in] options flags options (osFlagsXxxx).
  1047. \param[in] event_flags event flags before clearing or 0 if specified flags have not been set.
  1048. */
  1049. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_COMPLETED_DISABLE))
  1050. extern void EvrRtxEventFlagsWaitCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t event_flags);
  1051. #else
  1052. #define EvrRtxEventFlagsWaitCompleted(ef_id, flags, options, event_flags)
  1053. #endif
  1054. /**
  1055. \brief Event on unsuccessful wait for event flags (Op)
  1056. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1057. \param[in] flags flags to wait for.
  1058. \param[in] options flags options (osFlagsXxxx).
  1059. */
  1060. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
  1061. extern void EvrRtxEventFlagsWaitNotCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options);
  1062. #else
  1063. #define EvrRtxEventFlagsWaitNotCompleted(ef_id, flags, options)
  1064. #endif
  1065. /**
  1066. \brief Event on event flags delete (API)
  1067. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1068. */
  1069. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DELETE_DISABLE))
  1070. extern void EvrRtxEventFlagsDelete (osEventFlagsId_t ef_id);
  1071. #else
  1072. #define EvrRtxEventFlagsDelete(ef_id)
  1073. #endif
  1074. /**
  1075. \brief Event on successful event flags delete (Op)
  1076. \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
  1077. */
  1078. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DESTROYED_DISABLE))
  1079. extern void EvrRtxEventFlagsDestroyed (osEventFlagsId_t ef_id);
  1080. #else
  1081. #define EvrRtxEventFlagsDestroyed(ef_id)
  1082. #endif
  1083. // ==== Mutex Events ====
  1084. /**
  1085. \brief Event on mutex error (Error)
  1086. \param[in] mutex_id mutex ID obtained by \ref osMutexNew or NULL when ID is unknown.
  1087. \param[in] status extended execution status.
  1088. */
  1089. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ERROR_DISABLE))
  1090. extern void EvrRtxMutexError (osMutexId_t mutex_id, int32_t status);
  1091. #else
  1092. #define EvrRtxMutexError(mutex_id, status)
  1093. #endif
  1094. /**
  1095. \brief Event on mutex create and initialize (API)
  1096. \param[in] attr mutex attributes.
  1097. */
  1098. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NEW_DISABLE))
  1099. extern void EvrRtxMutexNew (const osMutexAttr_t *attr);
  1100. #else
  1101. #define EvrRtxMutexNew(attr)
  1102. #endif
  1103. /**
  1104. \brief Event on successful mutex create (Op)
  1105. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1106. \param[in] name pointer to mutex object name.
  1107. */
  1108. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_CREATED_DISABLE))
  1109. extern void EvrRtxMutexCreated (osMutexId_t mutex_id, const char *name);
  1110. #else
  1111. #define EvrRtxMutexCreated(mutex_id, name)
  1112. #endif
  1113. /**
  1114. \brief Event on mutex name retrieve (API)
  1115. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1116. \param[in] name pointer to mutex object name.
  1117. */
  1118. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_NAME_DISABLE))
  1119. extern void EvrRtxMutexGetName (osMutexId_t mutex_id, const char *name);
  1120. #else
  1121. #define EvrRtxMutexGetName(mutex_id, name)
  1122. #endif
  1123. /**
  1124. \brief Event on mutex acquire (API)
  1125. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1126. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1127. */
  1128. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_DISABLE))
  1129. extern void EvrRtxMutexAcquire (osMutexId_t mutex_id, uint32_t timeout);
  1130. #else
  1131. #define EvrRtxMutexAcquire(mutex_id, timeout)
  1132. #endif
  1133. /**
  1134. \brief Event on pending mutex acquire (Op)
  1135. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1136. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1137. */
  1138. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_PENDING_DISABLE))
  1139. extern void EvrRtxMutexAcquirePending (osMutexId_t mutex_id, uint32_t timeout);
  1140. #else
  1141. #define EvrRtxMutexAcquirePending(mutex_id, timeout)
  1142. #endif
  1143. /**
  1144. \brief Event on mutex acquire timeout (Op)
  1145. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1146. */
  1147. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_TIMEOUT_DISABLE))
  1148. extern void EvrRtxMutexAcquireTimeout (osMutexId_t mutex_id);
  1149. #else
  1150. #define EvrRtxMutexAcquireTimeout(mutex_id)
  1151. #endif
  1152. /**
  1153. \brief Event on successful mutex acquire (Op)
  1154. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1155. \param[in] lock current number of times mutex object is locked.
  1156. */
  1157. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRED_DISABLE))
  1158. extern void EvrRtxMutexAcquired (osMutexId_t mutex_id, uint32_t lock);
  1159. #else
  1160. #define EvrRtxMutexAcquired(mutex_id, lock)
  1161. #endif
  1162. /**
  1163. \brief Event on unsuccessful mutex acquire (Op)
  1164. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1165. */
  1166. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NOT_ACQUIRED_DISABLE))
  1167. extern void EvrRtxMutexNotAcquired (osMutexId_t mutex_id);
  1168. #else
  1169. #define EvrRtxMutexNotAcquired(mutex_id)
  1170. #endif
  1171. /**
  1172. \brief Event on mutex release (API)
  1173. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1174. */
  1175. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASE_DISABLE))
  1176. extern void EvrRtxMutexRelease (osMutexId_t mutex_id);
  1177. #else
  1178. #define EvrRtxMutexRelease(mutex_id)
  1179. #endif
  1180. /**
  1181. \brief Event on successful mutex release (Op)
  1182. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1183. \param[in] lock current number of times mutex object is locked.
  1184. */
  1185. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASED_DISABLE))
  1186. extern void EvrRtxMutexReleased (osMutexId_t mutex_id, uint32_t lock);
  1187. #else
  1188. #define EvrRtxMutexReleased(mutex_id, lock)
  1189. #endif
  1190. /**
  1191. \brief Event on mutex owner retrieve (API)
  1192. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1193. \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
  1194. */
  1195. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_OWNER_DISABLE))
  1196. extern void EvrRtxMutexGetOwner (osMutexId_t mutex_id, osThreadId_t thread_id);
  1197. #else
  1198. #define EvrRtxMutexGetOwner(mutex_id, thread_id)
  1199. #endif
  1200. /**
  1201. \brief Event on mutex delete (API)
  1202. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1203. */
  1204. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DELETE_DISABLE))
  1205. extern void EvrRtxMutexDelete (osMutexId_t mutex_id);
  1206. #else
  1207. #define EvrRtxMutexDelete(mutex_id)
  1208. #endif
  1209. /**
  1210. \brief Event on successful mutex delete (Op)
  1211. \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
  1212. */
  1213. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DESTROYED_DISABLE))
  1214. extern void EvrRtxMutexDestroyed (osMutexId_t mutex_id);
  1215. #else
  1216. #define EvrRtxMutexDestroyed(mutex_id)
  1217. #endif
  1218. // ==== Semaphore Events ====
  1219. /**
  1220. \brief Event on semaphore error (Error)
  1221. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew or NULL when ID is unknown.
  1222. \param[in] status extended execution status.
  1223. */
  1224. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ERROR_DISABLE))
  1225. extern void EvrRtxSemaphoreError (osSemaphoreId_t semaphore_id, int32_t status);
  1226. #else
  1227. #define EvrRtxSemaphoreError(semaphore_id, status)
  1228. #endif
  1229. /**
  1230. \brief Event on semaphore create and initialize (API)
  1231. \param[in] max_count maximum number of available tokens.
  1232. \param[in] initial_count initial number of available tokens.
  1233. \param[in] attr semaphore attributes.
  1234. */
  1235. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NEW_DISABLE))
  1236. extern void EvrRtxSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);
  1237. #else
  1238. #define EvrRtxSemaphoreNew(max_count, initial_count, attr)
  1239. #endif
  1240. /**
  1241. \brief Event on successful semaphore create (Op)
  1242. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1243. \param[in] name pointer to semaphore object name.
  1244. */
  1245. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_CREATED_DISABLE))
  1246. extern void EvrRtxSemaphoreCreated (osSemaphoreId_t semaphore_id, const char *name);
  1247. #else
  1248. #define EvrRtxSemaphoreCreated(semaphore_id, name)
  1249. #endif
  1250. /**
  1251. \brief Event on semaphore name retrieve (API)
  1252. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1253. \param[in] name pointer to semaphore object name.
  1254. */
  1255. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_NAME_DISABLE))
  1256. extern void EvrRtxSemaphoreGetName (osSemaphoreId_t semaphore_id, const char *name);
  1257. #else
  1258. #define EvrRtxSemaphoreGetName(semaphore_id, name)
  1259. #endif
  1260. /**
  1261. \brief Event on semaphore acquire (API)
  1262. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1263. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1264. */
  1265. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_DISABLE))
  1266. extern void EvrRtxSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
  1267. #else
  1268. #define EvrRtxSemaphoreAcquire(semaphore_id, timeout)
  1269. #endif
  1270. /**
  1271. \brief Event on pending semaphore acquire (Op)
  1272. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1273. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1274. */
  1275. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_PENDING_DISABLE))
  1276. extern void EvrRtxSemaphoreAcquirePending (osSemaphoreId_t semaphore_id, uint32_t timeout);
  1277. #else
  1278. #define EvrRtxSemaphoreAcquirePending(semaphore_id, timeout)
  1279. #endif
  1280. /**
  1281. \brief Event on semaphore acquire timeout (Op)
  1282. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1283. */
  1284. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_TIMEOUT_DISABLE))
  1285. extern void EvrRtxSemaphoreAcquireTimeout (osSemaphoreId_t semaphore_id);
  1286. #else
  1287. #define EvrRtxSemaphoreAcquireTimeout(semaphore_id)
  1288. #endif
  1289. /**
  1290. \brief Event on successful semaphore acquire (Op)
  1291. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1292. \param[in] tokens number of available tokens.
  1293. */
  1294. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRED_DISABLE))
  1295. extern void EvrRtxSemaphoreAcquired (osSemaphoreId_t semaphore_id, uint32_t tokens);
  1296. #else
  1297. #define EvrRtxSemaphoreAcquired(semaphore_id, tokens)
  1298. #endif
  1299. /**
  1300. \brief Event on unsuccessful semaphore acquire (Op)
  1301. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1302. */
  1303. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NOT_ACQUIRED_DISABLE))
  1304. extern void EvrRtxSemaphoreNotAcquired (osSemaphoreId_t semaphore_id);
  1305. #else
  1306. #define EvrRtxSemaphoreNotAcquired(semaphore_id)
  1307. #endif
  1308. /**
  1309. \brief Event on semaphore release (API)
  1310. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1311. */
  1312. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASE_DISABLE))
  1313. extern void EvrRtxSemaphoreRelease (osSemaphoreId_t semaphore_id);
  1314. #else
  1315. #define EvrRtxSemaphoreRelease(semaphore_id)
  1316. #endif
  1317. /**
  1318. \brief Event on successful semaphore release (Op)
  1319. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1320. \param[in] tokens number of available tokens.
  1321. */
  1322. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASED_DISABLE))
  1323. extern void EvrRtxSemaphoreReleased (osSemaphoreId_t semaphore_id, uint32_t tokens);
  1324. #else
  1325. #define EvrRtxSemaphoreReleased(semaphore_id, tokens)
  1326. #endif
  1327. /**
  1328. \brief Event on semaphore token count retrieval (API)
  1329. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1330. \param[in] count current number of available tokens.
  1331. */
  1332. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_COUNT_DISABLE))
  1333. extern void EvrRtxSemaphoreGetCount (osSemaphoreId_t semaphore_id, uint32_t count);
  1334. #else
  1335. #define EvrRtxSemaphoreGetCount(semaphore_id, count)
  1336. #endif
  1337. /**
  1338. \brief Event on semaphore delete (API)
  1339. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1340. */
  1341. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DELETE_DISABLE))
  1342. extern void EvrRtxSemaphoreDelete (osSemaphoreId_t semaphore_id);
  1343. #else
  1344. #define EvrRtxSemaphoreDelete(semaphore_id)
  1345. #endif
  1346. /**
  1347. \brief Event on successful semaphore delete (Op)
  1348. \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
  1349. */
  1350. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DESTROYED_DISABLE))
  1351. extern void EvrRtxSemaphoreDestroyed (osSemaphoreId_t semaphore_id);
  1352. #else
  1353. #define EvrRtxSemaphoreDestroyed(semaphore_id)
  1354. #endif
  1355. // ==== Memory Pool Events ====
  1356. /**
  1357. \brief Event on memory pool error (Error)
  1358. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew or NULL when ID is unknown.
  1359. \param[in] status extended execution status.
  1360. */
  1361. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ERROR_DISABLE))
  1362. extern void EvrRtxMemoryPoolError (osMemoryPoolId_t mp_id, int32_t status);
  1363. #else
  1364. #define EvrRtxMemoryPoolError(mp_id, status)
  1365. #endif
  1366. /**
  1367. \brief Event on memory pool create and initialize (API)
  1368. \param[in] block_count maximum number of memory blocks in memory pool.
  1369. \param[in] block_size memory block size in bytes.
  1370. \param[in] attr memory pool attributes; NULL: default values.
  1371. */
  1372. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_NEW_DISABLE))
  1373. extern void EvrRtxMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);
  1374. #else
  1375. #define EvrRtxMemoryPoolNew(block_count, block_size, attr)
  1376. #endif
  1377. /**
  1378. \brief Event on successful memory pool create (Op)
  1379. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1380. \param[in] name pointer to memory pool object name.
  1381. */
  1382. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_CREATED_DISABLE))
  1383. extern void EvrRtxMemoryPoolCreated (osMemoryPoolId_t mp_id, const char *name);
  1384. #else
  1385. #define EvrRtxMemoryPoolCreated(mp_id, name)
  1386. #endif
  1387. /**
  1388. \brief Event on memory pool name retrieve (API)
  1389. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1390. \param[in] name pointer to memory pool object name.
  1391. */
  1392. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_NAME_DISABLE))
  1393. extern void EvrRtxMemoryPoolGetName (osMemoryPoolId_t mp_id, const char *name);
  1394. #else
  1395. #define EvrRtxMemoryPoolGetName(mp_id, name)
  1396. #endif
  1397. /**
  1398. \brief Event on memory pool allocation (API)
  1399. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1400. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1401. */
  1402. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_DISABLE))
  1403. extern void EvrRtxMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);
  1404. #else
  1405. #define EvrRtxMemoryPoolAlloc(mp_id, timeout)
  1406. #endif
  1407. /**
  1408. \brief Event on pending memory pool allocation (Op)
  1409. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1410. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1411. */
  1412. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_PENDING_DISABLE))
  1413. extern void EvrRtxMemoryPoolAllocPending (osMemoryPoolId_t mp_id, uint32_t timeout);
  1414. #else
  1415. #define EvrRtxMemoryPoolAllocPending(mp_id, timeout)
  1416. #endif
  1417. /**
  1418. \brief Event on memory pool allocation timeout (Op)
  1419. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1420. */
  1421. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_TIMEOUT_DISABLE))
  1422. extern void EvrRtxMemoryPoolAllocTimeout (osMemoryPoolId_t mp_id);
  1423. #else
  1424. #define EvrRtxMemoryPoolAllocTimeout(mp_id)
  1425. #endif
  1426. /**
  1427. \brief Event on successful memory pool allocation (Op)
  1428. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1429. \param[in] block address of the allocated memory block.
  1430. */
  1431. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOCATED_DISABLE))
  1432. extern void EvrRtxMemoryPoolAllocated (osMemoryPoolId_t mp_id, void *block);
  1433. #else
  1434. #define EvrRtxMemoryPoolAllocated(mp_id, block)
  1435. #endif
  1436. /**
  1437. \brief Event on unsuccessful memory pool allocation (Op)
  1438. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1439. */
  1440. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_FAILED_DISABLE))
  1441. extern void EvrRtxMemoryPoolAllocFailed (osMemoryPoolId_t mp_id);
  1442. #else
  1443. #define EvrRtxMemoryPoolAllocFailed(mp_id)
  1444. #endif
  1445. /**
  1446. \brief Event on memory pool free (API)
  1447. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1448. \param[in] block address of the allocated memory block to be returned to the memory pool.
  1449. */
  1450. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_DISABLE))
  1451. extern void EvrRtxMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);
  1452. #else
  1453. #define EvrRtxMemoryPoolFree(mp_id, block)
  1454. #endif
  1455. /**
  1456. \brief Event on successful memory pool free (Op)
  1457. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1458. \param[in] block address of the allocated memory block to be returned to the memory pool.
  1459. */
  1460. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DEALLOCATED_DISABLE))
  1461. extern void EvrRtxMemoryPoolDeallocated (osMemoryPoolId_t mp_id, void *block);
  1462. #else
  1463. #define EvrRtxMemoryPoolDeallocated(mp_id, block)
  1464. #endif
  1465. /**
  1466. \brief Event on unsuccessful memory pool free (Op)
  1467. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1468. \param[in] block address of the allocated memory block to be returned to the memory pool.
  1469. */
  1470. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_FAILED_DISABLE))
  1471. extern void EvrRtxMemoryPoolFreeFailed (osMemoryPoolId_t mp_id, void *block);
  1472. #else
  1473. #define EvrRtxMemoryPoolFreeFailed(mp_id, block)
  1474. #endif
  1475. /**
  1476. \brief Event on memory pool capacity retrieve (API)
  1477. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1478. \param[in] capacity maximum number of memory blocks.
  1479. */
  1480. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_CAPACITY_DISABLE))
  1481. extern void EvrRtxMemoryPoolGetCapacity (osMemoryPoolId_t mp_id, uint32_t capacity);
  1482. #else
  1483. #define EvrRtxMemoryPoolGetCapacity(mp_id, capacity)
  1484. #endif
  1485. /**
  1486. \brief Event on memory pool block size retrieve (API)
  1487. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1488. \param[in] block_size memory block size in bytes.
  1489. */
  1490. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_BLOCK_SZIE_DISABLE))
  1491. extern void EvrRtxMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id, uint32_t block_size);
  1492. #else
  1493. #define EvrRtxMemoryPoolGetBlockSize(mp_id, block_size)
  1494. #endif
  1495. /**
  1496. \brief Event on used memory pool blocks retrieve (API)
  1497. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1498. \param[in] count number of memory blocks used.
  1499. */
  1500. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_COUNT_DISABLE))
  1501. extern void EvrRtxMemoryPoolGetCount (osMemoryPoolId_t mp_id, uint32_t count);
  1502. #else
  1503. #define EvrRtxMemoryPoolGetCount(mp_id, count)
  1504. #endif
  1505. /**
  1506. \brief Event on available memory pool blocks retrieve (API)
  1507. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1508. \param[in] space number of memory blocks available.
  1509. */
  1510. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_SPACE_DISABLE))
  1511. extern void EvrRtxMemoryPoolGetSpace (osMemoryPoolId_t mp_id, uint32_t space);
  1512. #else
  1513. #define EvrRtxMemoryPoolGetSpace(mp_id, space)
  1514. #endif
  1515. /**
  1516. \brief Event on memory pool delete (API)
  1517. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1518. */
  1519. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DELETE_DISABLE))
  1520. extern void EvrRtxMemoryPoolDelete (osMemoryPoolId_t mp_id);
  1521. #else
  1522. #define EvrRtxMemoryPoolDelete(mp_id)
  1523. #endif
  1524. /**
  1525. \brief Event on successful memory pool delete (Op)
  1526. \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
  1527. */
  1528. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DESTROYED_DISABLE))
  1529. extern void EvrRtxMemoryPoolDestroyed (osMemoryPoolId_t mp_id);
  1530. #else
  1531. #define EvrRtxMemoryPoolDestroyed(mp_id)
  1532. #endif
  1533. // ==== Message Queue Events ====
  1534. /**
  1535. \brief Event on message queue error (Error)
  1536. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew or NULL when ID is unknown.
  1537. \param[in] status extended execution status.
  1538. */
  1539. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_ERROR_DISABLE))
  1540. extern void EvrRtxMessageQueueError (osMessageQueueId_t mq_id, int32_t status);
  1541. #else
  1542. #define EvrRtxMessageQueueError(mq_id, status)
  1543. #endif
  1544. /**
  1545. \brief Event on message queue create and initialization (API)
  1546. \param[in] msg_count maximum number of messages in queue.
  1547. \param[in] msg_size maximum message size in bytes.
  1548. \param[in] attr message queue attributes; NULL: default values.
  1549. */
  1550. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NEW_DISABLE))
  1551. extern void EvrRtxMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
  1552. #else
  1553. #define EvrRtxMessageQueueNew(msg_count, msg_size, attr)
  1554. #endif
  1555. /**
  1556. \brief Event on successful message queue create (Op)
  1557. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1558. \param[in] name pointer to message queue object name.
  1559. */
  1560. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_CREATED_DISABLE))
  1561. extern void EvrRtxMessageQueueCreated (osMessageQueueId_t mq_id, const char *name);
  1562. #else
  1563. #define EvrRtxMessageQueueCreated(mq_id, name)
  1564. #endif
  1565. /**
  1566. \brief Event on message queue name retrieve(API)
  1567. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1568. \param[in] name pointer to message queue object name.
  1569. */
  1570. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_NAME_DISABLE))
  1571. extern void EvrRtxMessageQueueGetName (osMessageQueueId_t mq_id, const char *name);
  1572. #else
  1573. #define EvrRtxMessageQueueGetName(mq_id, name)
  1574. #endif
  1575. /**
  1576. \brief Event on message put (API)
  1577. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1578. \param[in] msg_ptr pointer to buffer with message to put into a queue.
  1579. \param[in] msg_prio message priority.
  1580. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1581. */
  1582. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_DISABLE))
  1583. extern void EvrRtxMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout);
  1584. #else
  1585. #define EvrRtxMessageQueuePut(mq_id, msg_ptr, msg_prio, timeout)
  1586. #endif
  1587. /**
  1588. \brief Event on pending message put (Op)
  1589. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1590. \param[in] msg_ptr pointer to buffer with message to put into a queue.
  1591. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1592. */
  1593. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_PENDING_DISABLE))
  1594. extern void EvrRtxMessageQueuePutPending (osMessageQueueId_t mq_id, const void *msg_ptr, uint32_t timeout);
  1595. #else
  1596. #define EvrRtxMessageQueuePutPending(mq_id, msg_ptr, timeout)
  1597. #endif
  1598. /**
  1599. \brief Event on message put timeout (Op)
  1600. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1601. */
  1602. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_TIMEOUT_DISABLE))
  1603. extern void EvrRtxMessageQueuePutTimeout (osMessageQueueId_t mq_id);
  1604. #else
  1605. #define EvrRtxMessageQueuePutTimeout(mq_id)
  1606. #endif
  1607. /**
  1608. \brief Event on pending message insert (Op)
  1609. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1610. \param[in] msg_ptr pointer to buffer with message to put into a queue.
  1611. */
  1612. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERT_PENDING_DISABLE))
  1613. extern void EvrRtxMessageQueueInsertPending (osMessageQueueId_t mq_id, const void *msg_ptr);
  1614. #else
  1615. #define EvrRtxMessageQueueInsertPending(mq_id, msg_ptr)
  1616. #endif
  1617. /**
  1618. \brief Event on successful message insert (Op)
  1619. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1620. \param[in] msg_ptr pointer to buffer with message to put into a queue.
  1621. */
  1622. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERTED_DISABLE))
  1623. extern void EvrRtxMessageQueueInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
  1624. #else
  1625. #define EvrRtxMessageQueueInserted(mq_id, msg_ptr)
  1626. #endif
  1627. /**
  1628. \brief Event on unsuccessful message insert (Op)
  1629. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1630. \param[in] msg_ptr pointer to buffer with message to put into a queue.
  1631. */
  1632. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_INSERTED_DISABLE))
  1633. extern void EvrRtxMessageQueueNotInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
  1634. #else
  1635. #define EvrRtxMessageQueueNotInserted(mq_id, msg_ptr)
  1636. #endif
  1637. /**
  1638. \brief Event on message get (API)
  1639. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1640. \param[in] msg_ptr pointer to buffer for message to get from a queue.
  1641. \param[in] msg_prio message priority.
  1642. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1643. */
  1644. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_DISABLE))
  1645. extern void EvrRtxMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout);
  1646. #else
  1647. #define EvrRtxMessageQueueGet(mq_id, msg_ptr, msg_prio, timeout)
  1648. #endif
  1649. /**
  1650. \brief Event on pending message get (Op)
  1651. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1652. \param[in] msg_ptr pointer to buffer for message to get from a queue.
  1653. \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
  1654. */
  1655. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_PENDING_DISABLE))
  1656. extern void EvrRtxMessageQueueGetPending (osMessageQueueId_t mq_id, void *msg_ptr, uint32_t timeout);
  1657. #else
  1658. #define EvrRtxMessageQueueGetPending(mq_id, msg_ptr, timeout)
  1659. #endif
  1660. /**
  1661. \brief Event on message get timeout (Op)
  1662. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1663. */
  1664. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_TIMEOUT_DISABLE))
  1665. extern void EvrRtxMessageQueueGetTimeout (osMessageQueueId_t mq_id);
  1666. #else
  1667. #define EvrRtxMessageQueueGetTimeout(mq_id)
  1668. #endif
  1669. /**
  1670. \brief Event on successful message get (Op)
  1671. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1672. \param[in] msg_ptr pointer to buffer for message to get from a queue.
  1673. */
  1674. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RETRIEVED_DISABLE))
  1675. extern void EvrRtxMessageQueueRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
  1676. #else
  1677. #define EvrRtxMessageQueueRetrieved(mq_id, msg_ptr)
  1678. #endif
  1679. /**
  1680. \brief Event on unsuccessful message get (Op)
  1681. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1682. \param[in] msg_ptr pointer to buffer for message to get from a queue.
  1683. */
  1684. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_RETRIEVED_DISABLE))
  1685. extern void EvrRtxMessageQueueNotRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
  1686. #else
  1687. #define EvrRtxMessageQueueNotRetrieved(mq_id, msg_ptr)
  1688. #endif
  1689. /**
  1690. \brief Event on message queue capacity retrieve (API)
  1691. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1692. \param[in] capacity maximum number of messages.
  1693. */
  1694. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_CAPACITY_DISABLE))
  1695. extern void EvrRtxMessageQueueGetCapacity (osMessageQueueId_t mq_id, uint32_t capacity);
  1696. #else
  1697. #define EvrRtxMessageQueueGetCapacity(mq_id, capacity)
  1698. #endif
  1699. /**
  1700. \brief Event on message queue message size retrieve (API)
  1701. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1702. \param[in] msg_size maximum message size in bytes.
  1703. */
  1704. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_MSG_SIZE_DISABLE))
  1705. extern void EvrRtxMessageQueueGetMsgSize (osMessageQueueId_t mq_id, uint32_t msg_size);
  1706. #else
  1707. #define EvrRtxMessageQueueGetMsgSize(mq_id, msg_size)
  1708. #endif
  1709. /**
  1710. \brief Event on message queue message count retrieve (API)
  1711. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1712. \param[in] count number of queued messages.
  1713. */
  1714. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_COUNT_DISABLE))
  1715. extern void EvrRtxMessageQueueGetCount (osMessageQueueId_t mq_id, uint32_t count);
  1716. #else
  1717. #define EvrRtxMessageQueueGetCount(mq_id, count)
  1718. #endif
  1719. /**
  1720. \brief Event on message queue message slots retrieve (API)
  1721. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1722. \param[in] space number of available slots for messages.
  1723. */
  1724. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_SPACE_DISABLE))
  1725. extern void EvrRtxMessageQueueGetSpace (osMessageQueueId_t mq_id, uint32_t space);
  1726. #else
  1727. #define EvrRtxMessageQueueGetSpace(mq_id, space)
  1728. #endif
  1729. /**
  1730. \brief Event on message queue reset (API)
  1731. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1732. */
  1733. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DISABLE))
  1734. extern void EvrRtxMessageQueueReset (osMessageQueueId_t mq_id);
  1735. #else
  1736. #define EvrRtxMessageQueueReset(mq_id)
  1737. #endif
  1738. /**
  1739. \brief Event on successful message queue reset (Op)
  1740. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1741. */
  1742. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DONE_DISABLE))
  1743. extern void EvrRtxMessageQueueResetDone (osMessageQueueId_t mq_id);
  1744. #else
  1745. #define EvrRtxMessageQueueResetDone(mq_id)
  1746. #endif
  1747. /**
  1748. \brief Event on message queue delete (API)
  1749. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1750. */
  1751. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DELETE_DISABLE))
  1752. extern void EvrRtxMessageQueueDelete (osMessageQueueId_t mq_id);
  1753. #else
  1754. #define EvrRtxMessageQueueDelete(mq_id)
  1755. #endif
  1756. /**
  1757. \brief Event on successful message queue delete (Op)
  1758. \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
  1759. */
  1760. #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DESTROYED_DISABLE))
  1761. extern void EvrRtxMessageQueueDestroyed (osMessageQueueId_t mq_id);
  1762. #else
  1763. #define EvrRtxMessageQueueDestroyed(mq_id)
  1764. #endif
  1765. #endif // RTX_EVR_H_