rtx_evr.h 70 KB

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