event_groups.c.016i.visibility 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344
  1. Marking local functions: prvTestWaitCondition vPortSetBASEPRI ulPortRaiseBASEPRI vPortRaiseBASEPRI
  2. Marking externally visible functions: vEventGroupSetNumber uxEventGroupGetNumber xEventGroupSetBitsFromISR vEventGroupClearBitsCallback vEventGroupSetBitsCallback vEventGroupDelete xEventGroupSetBits xEventGroupGetBitsFromISR xEventGroupClearBitsFromISR xEventGroupClearBits xEventGroupWaitBits xEventGroupSync xEventGroupCreate
  3. Marking externally visible variables:
  4. Reclaiming functions:
  5. Reclaiming variables:
  6. Clearing address taken flags:
  7. Symbol table:
  8. vPortFree/29 (vPortFree) @05ecab60
  9. Type: function
  10. Visibility: external public
  11. References:
  12. Referring:
  13. Availability: not_available
  14. Function flags: optimize_size
  15. Called by: vEventGroupDelete/11
  16. Calls:
  17. vTaskRemoveFromUnorderedEventList/28 (vTaskRemoveFromUnorderedEventList) @05eca9a0
  18. Type: function
  19. Visibility: external public
  20. References:
  21. Referring:
  22. Availability: not_available
  23. Function flags: optimize_size
  24. Called by: vEventGroupDelete/11 xEventGroupSetBits/10
  25. Calls:
  26. xTimerPendFunctionCallFromISR/27 (xTimerPendFunctionCallFromISR) @05eca460
  27. Type: function
  28. Visibility: external public
  29. References:
  30. Referring:
  31. Availability: not_available
  32. Function flags: optimize_size
  33. Called by: xEventGroupSetBitsFromISR/15 xEventGroupClearBitsFromISR/8
  34. Calls:
  35. vPortExitCritical/26 (vPortExitCritical) @05eadd20
  36. Type: function
  37. Visibility: external public
  38. References:
  39. Referring:
  40. Availability: not_available
  41. Function flags: optimize_size
  42. Called by: xEventGroupClearBits/7 xEventGroupWaitBits/6 xEventGroupSync/5
  43. Calls:
  44. vPortEnterCritical/25 (vPortEnterCritical) @05eadc40
  45. Type: function
  46. Visibility: external public
  47. References:
  48. Referring:
  49. Availability: not_available
  50. Function flags: optimize_size
  51. Called by: xEventGroupClearBits/7 xEventGroupWaitBits/6 xEventGroupSync/5
  52. Calls:
  53. uxTaskResetEventItemValue/24 (uxTaskResetEventItemValue) @05eadb60
  54. Type: function
  55. Visibility: external public
  56. References:
  57. Referring:
  58. Availability: not_available
  59. Function flags: optimize_size
  60. Called by: xEventGroupWaitBits/6 xEventGroupSync/5
  61. Calls:
  62. xTaskResumeAll/23 (xTaskResumeAll) @05eada80
  63. Type: function
  64. Visibility: external public
  65. References:
  66. Referring:
  67. Availability: not_available
  68. Function flags: optimize_size
  69. Called by: vEventGroupDelete/11 xEventGroupSetBits/10 xEventGroupWaitBits/6 xEventGroupSync/5
  70. Calls:
  71. vTaskPlaceOnUnorderedEventList/22 (vTaskPlaceOnUnorderedEventList) @05ead9a0
  72. Type: function
  73. Visibility: external public
  74. References:
  75. Referring:
  76. Availability: not_available
  77. Function flags: optimize_size
  78. Called by: xEventGroupWaitBits/6 xEventGroupSync/5
  79. Calls:
  80. vTaskSuspendAll/21 (vTaskSuspendAll) @05ead8c0
  81. Type: function
  82. Visibility: external public
  83. References:
  84. Referring:
  85. Availability: not_available
  86. Function flags: optimize_size
  87. Called by: vEventGroupDelete/11 xEventGroupSetBits/10 xEventGroupWaitBits/6 xEventGroupSync/5
  88. Calls:
  89. xTaskGetSchedulerState/20 (xTaskGetSchedulerState) @05ead7e0
  90. Type: function
  91. Visibility: external public
  92. References:
  93. Referring:
  94. Availability: not_available
  95. Function flags: optimize_size
  96. Called by: xEventGroupWaitBits/6 xEventGroupSync/5
  97. Calls:
  98. vListInitialise/19 (vListInitialise) @05ead460
  99. Type: function
  100. Visibility: external public
  101. References:
  102. Referring:
  103. Availability: not_available
  104. Function flags: optimize_size
  105. Called by: xEventGroupCreate/4
  106. Calls:
  107. pvPortMalloc/18 (pvPortMalloc) @05ead380
  108. Type: function
  109. Visibility: external public
  110. References:
  111. Referring:
  112. Availability: not_available
  113. Function flags: optimize_size
  114. Called by: xEventGroupCreate/4
  115. Calls:
  116. vEventGroupSetNumber/17 (vEventGroupSetNumber) @05ea1e00
  117. Type: function definition analyzed
  118. Visibility: externally_visible public
  119. References:
  120. Referring:
  121. Availability: available
  122. Function flags: body optimize_size
  123. Called by:
  124. Calls:
  125. uxEventGroupGetNumber/16 (uxEventGroupGetNumber) @05ea18c0
  126. Type: function definition analyzed
  127. Visibility: externally_visible public
  128. References:
  129. Referring:
  130. Availability: available
  131. Function flags: body optimize_size
  132. Called by:
  133. Calls:
  134. xEventGroupSetBitsFromISR/15 (xEventGroupSetBitsFromISR) @05ea12a0
  135. Type: function definition analyzed
  136. Visibility: externally_visible public
  137. References: vEventGroupSetBitsCallback/12 (addr)
  138. Referring:
  139. Availability: available
  140. Function flags: body optimize_size
  141. Called by:
  142. Calls: xTimerPendFunctionCallFromISR/27
  143. prvTestWaitCondition/14 (prvTestWaitCondition) @05ea1d20
  144. Type: function definition analyzed
  145. Visibility: prevailing_def_ironly
  146. References:
  147. Referring:
  148. Availability: local
  149. Function flags: body local optimize_size
  150. Called by: xEventGroupWaitBits/6 xEventGroupWaitBits/6
  151. Calls:
  152. vEventGroupClearBitsCallback/13 (vEventGroupClearBitsCallback) @05ea1a80
  153. Type: function definition analyzed
  154. Visibility: externally_visible public
  155. Address is taken.
  156. References:
  157. Referring: xEventGroupClearBitsFromISR/8 (addr)
  158. Availability: available
  159. Function flags: body optimize_size
  160. Called by:
  161. Calls: xEventGroupClearBits/7
  162. vEventGroupSetBitsCallback/12 (vEventGroupSetBitsCallback) @05ea17e0
  163. Type: function definition analyzed
  164. Visibility: externally_visible public
  165. Address is taken.
  166. References:
  167. Referring: xEventGroupSetBitsFromISR/15 (addr)
  168. Availability: available
  169. Function flags: body optimize_size
  170. Called by:
  171. Calls: xEventGroupSetBits/10
  172. vEventGroupDelete/11 (vEventGroupDelete) @05ea1540
  173. Type: function definition analyzed
  174. Visibility: externally_visible public
  175. References:
  176. Referring:
  177. Availability: available
  178. Function flags: body optimize_size
  179. Called by:
  180. Calls: xTaskResumeAll/23 vPortFree/29 vTaskRemoveFromUnorderedEventList/28 vPortRaiseBASEPRI/1 vTaskSuspendAll/21 vPortRaiseBASEPRI/1
  181. xEventGroupSetBits/10 (xEventGroupSetBits) @05ea11c0
  182. Type: function definition analyzed
  183. Visibility: externally_visible public
  184. References:
  185. Referring:
  186. Availability: available
  187. Function flags: body optimize_size
  188. Called by: vEventGroupSetBitsCallback/12 xEventGroupSync/5
  189. Calls: xTaskResumeAll/23 vTaskRemoveFromUnorderedEventList/28 vTaskSuspendAll/21 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  190. xEventGroupGetBitsFromISR/9 (xEventGroupGetBitsFromISR) @05e5da80
  191. Type: function definition analyzed
  192. Visibility: externally_visible public
  193. References:
  194. Referring:
  195. Availability: available
  196. Function flags: body optimize_size
  197. Called by:
  198. Calls: vPortSetBASEPRI/3 ulPortRaiseBASEPRI/2
  199. xEventGroupClearBitsFromISR/8 (xEventGroupClearBitsFromISR) @05e5d0e0
  200. Type: function definition analyzed
  201. Visibility: externally_visible public
  202. References: vEventGroupClearBitsCallback/13 (addr)
  203. Referring:
  204. Availability: available
  205. Function flags: body optimize_size
  206. Called by:
  207. Calls: xTimerPendFunctionCallFromISR/27
  208. xEventGroupClearBits/7 (xEventGroupClearBits) @05e5dd20
  209. Type: function definition analyzed
  210. Visibility: externally_visible public
  211. References:
  212. Referring:
  213. Availability: available
  214. Function flags: body optimize_size
  215. Called by: vEventGroupClearBitsCallback/13
  216. Calls: vPortExitCritical/26 vPortEnterCritical/25 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  217. xEventGroupWaitBits/6 (xEventGroupWaitBits) @05e5d9a0
  218. Type: function definition analyzed
  219. Visibility: externally_visible public
  220. References:
  221. Referring:
  222. Availability: available
  223. Function flags: body optimize_size
  224. Called by:
  225. Calls: vPortExitCritical/26 prvTestWaitCondition/14 vPortEnterCritical/25 uxTaskResetEventItemValue/24 xTaskResumeAll/23 vTaskPlaceOnUnorderedEventList/22 prvTestWaitCondition/14 vTaskSuspendAll/21 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/20 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  226. xEventGroupSync/5 (xEventGroupSync) @05e5d460
  227. Type: function definition analyzed
  228. Visibility: externally_visible public
  229. References:
  230. Referring:
  231. Availability: available
  232. Function flags: body optimize_size
  233. Called by:
  234. Calls: vPortExitCritical/26 vPortEnterCritical/25 uxTaskResetEventItemValue/24 xTaskResumeAll/23 vTaskPlaceOnUnorderedEventList/22 xEventGroupSetBits/10 vTaskSuspendAll/21 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/20 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  235. xEventGroupCreate/4 (xEventGroupCreate) @05e5d000
  236. Type: function definition analyzed
  237. Visibility: externally_visible public
  238. References:
  239. Referring:
  240. Availability: available
  241. Function flags: body optimize_size
  242. Called by:
  243. Calls: vListInitialise/19 pvPortMalloc/18
  244. vPortSetBASEPRI/3 (vPortSetBASEPRI) @05de9380
  245. Type: function definition analyzed
  246. Visibility: prevailing_def_ironly
  247. References:
  248. Referring:
  249. Availability: local
  250. Function flags: body local optimize_size
  251. Called by: xEventGroupGetBitsFromISR/9
  252. Calls:
  253. ulPortRaiseBASEPRI/2 (ulPortRaiseBASEPRI) @05de90e0
  254. Type: function definition analyzed
  255. Visibility: prevailing_def_ironly
  256. References:
  257. Referring:
  258. Availability: local
  259. Function flags: body local optimize_size
  260. Called by: xEventGroupGetBitsFromISR/9
  261. Calls:
  262. vPortRaiseBASEPRI/1 (vPortRaiseBASEPRI) @05de3d20
  263. Type: function definition analyzed
  264. Visibility: prevailing_def_ironly
  265. References:
  266. Referring:
  267. Availability: local
  268. Function flags: body local optimize_size
  269. Called by: vEventGroupDelete/11 vEventGroupDelete/11 xEventGroupSetBits/10 xEventGroupSetBits/10 xEventGroupClearBits/7 xEventGroupClearBits/7 xEventGroupWaitBits/6 xEventGroupWaitBits/6 xEventGroupWaitBits/6 xEventGroupWaitBits/6 xEventGroupSync/5 xEventGroupSync/5 xEventGroupSync/5
  270. Calls:
  271. vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
  272. {
  273. <bb 2> :
  274. # DEBUG BEGIN_STMT
  275. MEM[(struct EventGroup_t *)xEventGroup].uxEventGroupNumber = uxEventGroupNumber;
  276. return;
  277. }
  278. uxEventGroupGetNumber (void * xEventGroup)
  279. {
  280. const struct EventGroup_t * pxEventBits;
  281. UBaseType_t xReturn;
  282. UBaseType_t D.6566;
  283. <bb 2> :
  284. # DEBUG BEGIN_STMT
  285. # DEBUG BEGIN_STMT
  286. pxEventBits = xEventGroup;
  287. # DEBUG BEGIN_STMT
  288. if (xEventGroup == 0B)
  289. goto <bb 3>; [INV]
  290. else
  291. goto <bb 4>; [INV]
  292. <bb 3> :
  293. # DEBUG BEGIN_STMT
  294. xReturn = 0;
  295. goto <bb 5>; [INV]
  296. <bb 4> :
  297. # DEBUG BEGIN_STMT
  298. xReturn = pxEventBits->uxEventGroupNumber;
  299. <bb 5> :
  300. # DEBUG BEGIN_STMT
  301. D.6566 = xReturn;
  302. return D.6566;
  303. }
  304. xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
  305. {
  306. BaseType_t xReturn;
  307. BaseType_t D.6561;
  308. <bb 2> :
  309. # DEBUG BEGIN_STMT
  310. # DEBUG BEGIN_STMT
  311. # DEBUG BEGIN_STMT
  312. xReturn = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken);
  313. # DEBUG BEGIN_STMT
  314. D.6561 = xReturn;
  315. return D.6561;
  316. }
  317. prvTestWaitCondition (const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
  318. {
  319. BaseType_t xWaitConditionMet;
  320. BaseType_t D.6523;
  321. <bb 2> :
  322. # DEBUG BEGIN_STMT
  323. xWaitConditionMet = 0;
  324. # DEBUG BEGIN_STMT
  325. if (xWaitForAllBits == 0)
  326. goto <bb 3>; [INV]
  327. else
  328. goto <bb 5>; [INV]
  329. <bb 3> :
  330. # DEBUG BEGIN_STMT
  331. _1 = uxCurrentEventBits & uxBitsToWaitFor;
  332. if (_1 != 0)
  333. goto <bb 4>; [INV]
  334. else
  335. goto <bb 7>; [INV]
  336. <bb 4> :
  337. # DEBUG BEGIN_STMT
  338. xWaitConditionMet = 1;
  339. goto <bb 7>; [INV]
  340. <bb 5> :
  341. # DEBUG BEGIN_STMT
  342. _2 = uxCurrentEventBits & uxBitsToWaitFor;
  343. if (uxBitsToWaitFor == _2)
  344. goto <bb 6>; [INV]
  345. else
  346. goto <bb 7>; [INV]
  347. <bb 6> :
  348. # DEBUG BEGIN_STMT
  349. xWaitConditionMet = 1;
  350. <bb 7> :
  351. # DEBUG BEGIN_STMT
  352. # DEBUG BEGIN_STMT
  353. D.6523 = xWaitConditionMet;
  354. return D.6523;
  355. }
  356. vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
  357. {
  358. <bb 2> :
  359. # DEBUG BEGIN_STMT
  360. xEventGroupClearBits (pvEventGroup, ulBitsToClear);
  361. return;
  362. }
  363. vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
  364. {
  365. <bb 2> :
  366. # DEBUG BEGIN_STMT
  367. xEventGroupSetBits (pvEventGroup, ulBitsToSet);
  368. return;
  369. }
  370. vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
  371. {
  372. const struct List_t * pxTasksWaitingForBits;
  373. struct EventGroup_t * pxEventBits;
  374. <bb 2> :
  375. # DEBUG BEGIN_STMT
  376. if (xEventGroup == 0B)
  377. goto <bb 3>; [INV]
  378. else
  379. goto <bb 5>; [INV]
  380. <bb 3> :
  381. # DEBUG BEGIN_STMT
  382. vPortRaiseBASEPRI ();
  383. <bb 4> :
  384. # DEBUG BEGIN_STMT
  385. # DEBUG BEGIN_STMT
  386. # DEBUG BEGIN_STMT
  387. goto <bb 4>; [INV]
  388. <bb 5> :
  389. # DEBUG BEGIN_STMT
  390. # DEBUG BEGIN_STMT
  391. pxEventBits = xEventGroup;
  392. # DEBUG BEGIN_STMT
  393. pxTasksWaitingForBits = &pxEventBits->xTasksWaitingForBits;
  394. # DEBUG BEGIN_STMT
  395. vTaskSuspendAll ();
  396. # DEBUG BEGIN_STMT
  397. # DEBUG BEGIN_STMT
  398. goto <bb 10>; [INV]
  399. <bb 6> :
  400. # DEBUG BEGIN_STMT
  401. _1 = pxTasksWaitingForBits->xListEnd.pxNext;
  402. _2 = &pxTasksWaitingForBits->xListEnd;
  403. if (_1 == _2)
  404. goto <bb 7>; [INV]
  405. else
  406. goto <bb 9>; [INV]
  407. <bb 7> :
  408. # DEBUG BEGIN_STMT
  409. vPortRaiseBASEPRI ();
  410. <bb 8> :
  411. # DEBUG BEGIN_STMT
  412. # DEBUG BEGIN_STMT
  413. # DEBUG BEGIN_STMT
  414. goto <bb 8>; [INV]
  415. <bb 9> :
  416. # DEBUG BEGIN_STMT
  417. # DEBUG BEGIN_STMT
  418. _3 = pxTasksWaitingForBits->xListEnd.pxNext;
  419. vTaskRemoveFromUnorderedEventList (_3, 33554432);
  420. <bb 10> :
  421. # DEBUG BEGIN_STMT
  422. _4 = pxTasksWaitingForBits->uxNumberOfItems;
  423. if (_4 != 0)
  424. goto <bb 6>; [INV]
  425. else
  426. goto <bb 11>; [INV]
  427. <bb 11> :
  428. # DEBUG BEGIN_STMT
  429. vPortFree (pxEventBits);
  430. # DEBUG BEGIN_STMT
  431. xTaskResumeAll ();
  432. return;
  433. }
  434. xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  435. {
  436. BaseType_t xMatchFound;
  437. struct EventGroup_t * pxEventBits;
  438. EventBits_t uxControlBits;
  439. EventBits_t uxBitsWaitedFor;
  440. EventBits_t uxBitsToClear;
  441. const struct List_t * pxList;
  442. const struct ListItem_t * pxListEnd;
  443. struct ListItem_t * pxNext;
  444. struct ListItem_t * pxListItem;
  445. EventBits_t D.6555;
  446. <bb 2> :
  447. # DEBUG BEGIN_STMT
  448. # DEBUG BEGIN_STMT
  449. # DEBUG BEGIN_STMT
  450. # DEBUG BEGIN_STMT
  451. uxBitsToClear = 0;
  452. # DEBUG BEGIN_STMT
  453. pxEventBits = xEventGroup;
  454. # DEBUG BEGIN_STMT
  455. xMatchFound = 0;
  456. # DEBUG BEGIN_STMT
  457. if (xEventGroup == 0B)
  458. goto <bb 3>; [INV]
  459. else
  460. goto <bb 5>; [INV]
  461. <bb 3> :
  462. # DEBUG BEGIN_STMT
  463. vPortRaiseBASEPRI ();
  464. <bb 4> :
  465. # DEBUG BEGIN_STMT
  466. # DEBUG BEGIN_STMT
  467. # DEBUG BEGIN_STMT
  468. goto <bb 4>; [INV]
  469. <bb 5> :
  470. # DEBUG BEGIN_STMT
  471. # DEBUG BEGIN_STMT
  472. _1 = uxBitsToSet & 4278190080;
  473. if (_1 != 0)
  474. goto <bb 6>; [INV]
  475. else
  476. goto <bb 8>; [INV]
  477. <bb 6> :
  478. # DEBUG BEGIN_STMT
  479. vPortRaiseBASEPRI ();
  480. <bb 7> :
  481. # DEBUG BEGIN_STMT
  482. # DEBUG BEGIN_STMT
  483. # DEBUG BEGIN_STMT
  484. goto <bb 7>; [INV]
  485. <bb 8> :
  486. # DEBUG BEGIN_STMT
  487. # DEBUG BEGIN_STMT
  488. pxList = &pxEventBits->xTasksWaitingForBits;
  489. # DEBUG BEGIN_STMT
  490. pxListEnd = &pxList->xListEnd;
  491. # DEBUG BEGIN_STMT
  492. vTaskSuspendAll ();
  493. # DEBUG BEGIN_STMT
  494. # DEBUG BEGIN_STMT
  495. pxListItem = pxList->xListEnd.pxNext;
  496. # DEBUG BEGIN_STMT
  497. _2 = pxEventBits->uxEventBits;
  498. _3 = uxBitsToSet | _2;
  499. pxEventBits->uxEventBits = _3;
  500. # DEBUG BEGIN_STMT
  501. goto <bb 19>; [INV]
  502. <bb 9> :
  503. # DEBUG BEGIN_STMT
  504. pxNext = pxListItem->pxNext;
  505. # DEBUG BEGIN_STMT
  506. uxBitsWaitedFor = pxListItem->xItemValue;
  507. # DEBUG BEGIN_STMT
  508. xMatchFound = 0;
  509. # DEBUG BEGIN_STMT
  510. uxControlBits = uxBitsWaitedFor & 4278190080;
  511. # DEBUG BEGIN_STMT
  512. uxBitsWaitedFor = uxBitsWaitedFor & 16777215;
  513. # DEBUG BEGIN_STMT
  514. _4 = uxControlBits & 67108864;
  515. if (_4 == 0)
  516. goto <bb 10>; [INV]
  517. else
  518. goto <bb 12>; [INV]
  519. <bb 10> :
  520. # DEBUG BEGIN_STMT
  521. _5 = pxEventBits->uxEventBits;
  522. _6 = uxBitsWaitedFor & _5;
  523. if (_6 != 0)
  524. goto <bb 11>; [INV]
  525. else
  526. goto <bb 14>; [INV]
  527. <bb 11> :
  528. # DEBUG BEGIN_STMT
  529. xMatchFound = 1;
  530. goto <bb 14>; [INV]
  531. <bb 12> :
  532. # DEBUG BEGIN_STMT
  533. _7 = pxEventBits->uxEventBits;
  534. _8 = uxBitsWaitedFor & _7;
  535. if (uxBitsWaitedFor == _8)
  536. goto <bb 13>; [INV]
  537. else
  538. goto <bb 14>; [INV]
  539. <bb 13> :
  540. # DEBUG BEGIN_STMT
  541. xMatchFound = 1;
  542. <bb 14> :
  543. # DEBUG BEGIN_STMT
  544. # DEBUG BEGIN_STMT
  545. if (xMatchFound != 0)
  546. goto <bb 15>; [INV]
  547. else
  548. goto <bb 18>; [INV]
  549. <bb 15> :
  550. # DEBUG BEGIN_STMT
  551. _9 = uxControlBits & 16777216;
  552. if (_9 != 0)
  553. goto <bb 16>; [INV]
  554. else
  555. goto <bb 17>; [INV]
  556. <bb 16> :
  557. # DEBUG BEGIN_STMT
  558. uxBitsToClear = uxBitsToClear | uxBitsWaitedFor;
  559. <bb 17> :
  560. # DEBUG BEGIN_STMT
  561. # DEBUG BEGIN_STMT
  562. _10 = pxEventBits->uxEventBits;
  563. _11 = _10 | 33554432;
  564. vTaskRemoveFromUnorderedEventList (pxListItem, _11);
  565. <bb 18> :
  566. # DEBUG BEGIN_STMT
  567. pxListItem = pxNext;
  568. <bb 19> :
  569. # DEBUG BEGIN_STMT
  570. if (pxListItem != pxListEnd)
  571. goto <bb 9>; [INV]
  572. else
  573. goto <bb 20>; [INV]
  574. <bb 20> :
  575. # DEBUG BEGIN_STMT
  576. _12 = pxEventBits->uxEventBits;
  577. _13 = ~uxBitsToClear;
  578. _14 = _12 & _13;
  579. pxEventBits->uxEventBits = _14;
  580. # DEBUG BEGIN_STMT
  581. xTaskResumeAll ();
  582. # DEBUG BEGIN_STMT
  583. D.6555 = pxEventBits->uxEventBits;
  584. return D.6555;
  585. }
  586. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  587. {
  588. EventBits_t uxReturn;
  589. const struct EventGroup_t * const pxEventBits;
  590. UBaseType_t uxSavedInterruptStatus;
  591. EventBits_t D.6533;
  592. <bb 2> :
  593. # DEBUG BEGIN_STMT
  594. # DEBUG BEGIN_STMT
  595. pxEventBits = xEventGroup;
  596. # DEBUG BEGIN_STMT
  597. # DEBUG BEGIN_STMT
  598. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  599. # DEBUG BEGIN_STMT
  600. uxReturn = pxEventBits->uxEventBits;
  601. # DEBUG BEGIN_STMT
  602. vPortSetBASEPRI (uxSavedInterruptStatus);
  603. # DEBUG BEGIN_STMT
  604. D.6533 = uxReturn;
  605. return D.6533;
  606. }
  607. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  608. {
  609. BaseType_t xReturn;
  610. BaseType_t D.6531;
  611. <bb 2> :
  612. # DEBUG BEGIN_STMT
  613. # DEBUG BEGIN_STMT
  614. # DEBUG BEGIN_STMT
  615. xReturn = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup, uxBitsToClear, 0B);
  616. # DEBUG BEGIN_STMT
  617. D.6531 = xReturn;
  618. return D.6531;
  619. }
  620. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  621. {
  622. EventBits_t uxReturn;
  623. struct EventGroup_t * pxEventBits;
  624. EventBits_t D.6529;
  625. <bb 2> :
  626. # DEBUG BEGIN_STMT
  627. pxEventBits = xEventGroup;
  628. # DEBUG BEGIN_STMT
  629. # DEBUG BEGIN_STMT
  630. if (xEventGroup == 0B)
  631. goto <bb 3>; [INV]
  632. else
  633. goto <bb 5>; [INV]
  634. <bb 3> :
  635. # DEBUG BEGIN_STMT
  636. vPortRaiseBASEPRI ();
  637. <bb 4> :
  638. # DEBUG BEGIN_STMT
  639. # DEBUG BEGIN_STMT
  640. # DEBUG BEGIN_STMT
  641. goto <bb 4>; [INV]
  642. <bb 5> :
  643. # DEBUG BEGIN_STMT
  644. # DEBUG BEGIN_STMT
  645. _1 = uxBitsToClear & 4278190080;
  646. if (_1 != 0)
  647. goto <bb 6>; [INV]
  648. else
  649. goto <bb 8>; [INV]
  650. <bb 6> :
  651. # DEBUG BEGIN_STMT
  652. vPortRaiseBASEPRI ();
  653. <bb 7> :
  654. # DEBUG BEGIN_STMT
  655. # DEBUG BEGIN_STMT
  656. # DEBUG BEGIN_STMT
  657. goto <bb 7>; [INV]
  658. <bb 8> :
  659. # DEBUG BEGIN_STMT
  660. # DEBUG BEGIN_STMT
  661. vPortEnterCritical ();
  662. # DEBUG BEGIN_STMT
  663. # DEBUG BEGIN_STMT
  664. uxReturn = pxEventBits->uxEventBits;
  665. # DEBUG BEGIN_STMT
  666. _2 = pxEventBits->uxEventBits;
  667. _3 = ~uxBitsToClear;
  668. _4 = _2 & _3;
  669. pxEventBits->uxEventBits = _4;
  670. # DEBUG BEGIN_STMT
  671. vPortExitCritical ();
  672. # DEBUG BEGIN_STMT
  673. D.6529 = uxReturn;
  674. return D.6529;
  675. }
  676. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  677. {
  678. const EventBits_t uxCurrentEventBits;
  679. BaseType_t xTimeoutOccurred;
  680. BaseType_t xAlreadyYielded;
  681. BaseType_t xWaitConditionMet;
  682. EventBits_t uxControlBits;
  683. EventBits_t uxReturn;
  684. struct EventGroup_t * pxEventBits;
  685. EventBits_t D.6512;
  686. int iftmp.1;
  687. <bb 2> :
  688. # DEBUG BEGIN_STMT
  689. pxEventBits = xEventGroup;
  690. # DEBUG BEGIN_STMT
  691. uxControlBits = 0;
  692. # DEBUG BEGIN_STMT
  693. # DEBUG BEGIN_STMT
  694. xTimeoutOccurred = 0;
  695. # DEBUG BEGIN_STMT
  696. if (xEventGroup == 0B)
  697. goto <bb 3>; [INV]
  698. else
  699. goto <bb 5>; [INV]
  700. <bb 3> :
  701. # DEBUG BEGIN_STMT
  702. vPortRaiseBASEPRI ();
  703. <bb 4> :
  704. # DEBUG BEGIN_STMT
  705. # DEBUG BEGIN_STMT
  706. # DEBUG BEGIN_STMT
  707. goto <bb 4>; [INV]
  708. <bb 5> :
  709. # DEBUG BEGIN_STMT
  710. # DEBUG BEGIN_STMT
  711. _1 = uxBitsToWaitFor & 4278190080;
  712. if (_1 != 0)
  713. goto <bb 6>; [INV]
  714. else
  715. goto <bb 8>; [INV]
  716. <bb 6> :
  717. # DEBUG BEGIN_STMT
  718. vPortRaiseBASEPRI ();
  719. <bb 7> :
  720. # DEBUG BEGIN_STMT
  721. # DEBUG BEGIN_STMT
  722. # DEBUG BEGIN_STMT
  723. goto <bb 7>; [INV]
  724. <bb 8> :
  725. # DEBUG BEGIN_STMT
  726. # DEBUG BEGIN_STMT
  727. if (uxBitsToWaitFor == 0)
  728. goto <bb 9>; [INV]
  729. else
  730. goto <bb 11>; [INV]
  731. <bb 9> :
  732. # DEBUG BEGIN_STMT
  733. vPortRaiseBASEPRI ();
  734. <bb 10> :
  735. # DEBUG BEGIN_STMT
  736. # DEBUG BEGIN_STMT
  737. # DEBUG BEGIN_STMT
  738. goto <bb 10>; [INV]
  739. <bb 11> :
  740. # DEBUG BEGIN_STMT
  741. # DEBUG BEGIN_STMT
  742. _2 = xTaskGetSchedulerState ();
  743. if (_2 != 0)
  744. goto <bb 13>; [INV]
  745. else
  746. goto <bb 12>; [INV]
  747. <bb 12> :
  748. if (xTicksToWait == 0)
  749. goto <bb 13>; [INV]
  750. else
  751. goto <bb 14>; [INV]
  752. <bb 13> :
  753. iftmp.1 = 1;
  754. goto <bb 15>; [INV]
  755. <bb 14> :
  756. iftmp.1 = 0;
  757. <bb 15> :
  758. if (iftmp.1 == 0)
  759. goto <bb 16>; [INV]
  760. else
  761. goto <bb 18>; [INV]
  762. <bb 16> :
  763. # DEBUG BEGIN_STMT
  764. vPortRaiseBASEPRI ();
  765. <bb 17> :
  766. # DEBUG BEGIN_STMT
  767. # DEBUG BEGIN_STMT
  768. # DEBUG BEGIN_STMT
  769. goto <bb 17>; [INV]
  770. <bb 18> :
  771. # DEBUG BEGIN_STMT
  772. # DEBUG BEGIN_STMT
  773. vTaskSuspendAll ();
  774. # DEBUG BEGIN_STMT
  775. uxCurrentEventBits = pxEventBits->uxEventBits;
  776. # DEBUG BEGIN_STMT
  777. xWaitConditionMet = prvTestWaitCondition (uxCurrentEventBits, uxBitsToWaitFor, xWaitForAllBits);
  778. # DEBUG BEGIN_STMT
  779. if (xWaitConditionMet != 0)
  780. goto <bb 19>; [INV]
  781. else
  782. goto <bb 21>; [INV]
  783. <bb 19> :
  784. # DEBUG BEGIN_STMT
  785. uxReturn = uxCurrentEventBits;
  786. # DEBUG BEGIN_STMT
  787. xTicksToWait = 0;
  788. # DEBUG BEGIN_STMT
  789. if (xClearOnExit != 0)
  790. goto <bb 20>; [INV]
  791. else
  792. goto <bb 28>; [INV]
  793. <bb 20> :
  794. # DEBUG BEGIN_STMT
  795. _3 = pxEventBits->uxEventBits;
  796. _4 = ~uxBitsToWaitFor;
  797. _5 = _3 & _4;
  798. pxEventBits->uxEventBits = _5;
  799. goto <bb 28>; [INV]
  800. <bb 21> :
  801. # DEBUG BEGIN_STMT
  802. if (xTicksToWait == 0)
  803. goto <bb 22>; [INV]
  804. else
  805. goto <bb 23>; [INV]
  806. <bb 22> :
  807. # DEBUG BEGIN_STMT
  808. uxReturn = uxCurrentEventBits;
  809. # DEBUG BEGIN_STMT
  810. xTimeoutOccurred = 1;
  811. goto <bb 28>; [INV]
  812. <bb 23> :
  813. # DEBUG BEGIN_STMT
  814. if (xClearOnExit != 0)
  815. goto <bb 24>; [INV]
  816. else
  817. goto <bb 25>; [INV]
  818. <bb 24> :
  819. # DEBUG BEGIN_STMT
  820. uxControlBits = uxControlBits | 16777216;
  821. <bb 25> :
  822. # DEBUG BEGIN_STMT
  823. # DEBUG BEGIN_STMT
  824. if (xWaitForAllBits != 0)
  825. goto <bb 26>; [INV]
  826. else
  827. goto <bb 27>; [INV]
  828. <bb 26> :
  829. # DEBUG BEGIN_STMT
  830. uxControlBits = uxControlBits | 67108864;
  831. <bb 27> :
  832. # DEBUG BEGIN_STMT
  833. # DEBUG BEGIN_STMT
  834. _6 = &pxEventBits->xTasksWaitingForBits;
  835. _7 = uxBitsToWaitFor | uxControlBits;
  836. vTaskPlaceOnUnorderedEventList (_6, _7, xTicksToWait);
  837. # DEBUG BEGIN_STMT
  838. uxReturn = 0;
  839. <bb 28> :
  840. # DEBUG BEGIN_STMT
  841. # DEBUG BEGIN_STMT
  842. xAlreadyYielded = xTaskResumeAll ();
  843. # DEBUG BEGIN_STMT
  844. if (xTicksToWait != 0)
  845. goto <bb 29>; [INV]
  846. else
  847. goto <bb 37>; [INV]
  848. <bb 29> :
  849. # DEBUG BEGIN_STMT
  850. if (xAlreadyYielded == 0)
  851. goto <bb 30>; [INV]
  852. else
  853. goto <bb 31>; [INV]
  854. <bb 30> :
  855. # DEBUG BEGIN_STMT
  856. _8 = 3758157060B;
  857. *_8 = 268435456;
  858. # DEBUG BEGIN_STMT
  859. __asm__ __volatile__("dsb" : : : "memory");
  860. # DEBUG BEGIN_STMT
  861. __asm__ __volatile__("isb");
  862. # DEBUG BEGIN_STMT
  863. <bb 31> :
  864. # DEBUG BEGIN_STMT
  865. # DEBUG BEGIN_STMT
  866. uxReturn = uxTaskResetEventItemValue ();
  867. # DEBUG BEGIN_STMT
  868. _9 = uxReturn & 33554432;
  869. if (_9 == 0)
  870. goto <bb 32>; [INV]
  871. else
  872. goto <bb 36>; [INV]
  873. <bb 32> :
  874. # DEBUG BEGIN_STMT
  875. vPortEnterCritical ();
  876. # DEBUG BEGIN_STMT
  877. uxReturn = pxEventBits->uxEventBits;
  878. # DEBUG BEGIN_STMT
  879. _10 = prvTestWaitCondition (uxReturn, uxBitsToWaitFor, xWaitForAllBits);
  880. if (_10 != 0)
  881. goto <bb 33>; [INV]
  882. else
  883. goto <bb 35>; [INV]
  884. <bb 33> :
  885. # DEBUG BEGIN_STMT
  886. if (xClearOnExit != 0)
  887. goto <bb 34>; [INV]
  888. else
  889. goto <bb 35>; [INV]
  890. <bb 34> :
  891. # DEBUG BEGIN_STMT
  892. _11 = pxEventBits->uxEventBits;
  893. _12 = ~uxBitsToWaitFor;
  894. _13 = _11 & _12;
  895. pxEventBits->uxEventBits = _13;
  896. <bb 35> :
  897. # DEBUG BEGIN_STMT
  898. # DEBUG BEGIN_STMT
  899. xTimeoutOccurred = 1;
  900. # DEBUG BEGIN_STMT
  901. vPortExitCritical ();
  902. <bb 36> :
  903. # DEBUG BEGIN_STMT
  904. # DEBUG BEGIN_STMT
  905. uxReturn = uxReturn & 16777215;
  906. <bb 37> :
  907. # DEBUG BEGIN_STMT
  908. # DEBUG BEGIN_STMT
  909. # DEBUG BEGIN_STMT
  910. D.6512 = uxReturn;
  911. return D.6512;
  912. }
  913. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  914. {
  915. BaseType_t xTimeoutOccurred;
  916. BaseType_t xAlreadyYielded;
  917. struct EventGroup_t * pxEventBits;
  918. EventBits_t uxReturn;
  919. EventBits_t uxOriginalBitValue;
  920. EventBits_t D.6468;
  921. int iftmp.0;
  922. <bb 2> :
  923. # DEBUG BEGIN_STMT
  924. # DEBUG BEGIN_STMT
  925. pxEventBits = xEventGroup;
  926. # DEBUG BEGIN_STMT
  927. # DEBUG BEGIN_STMT
  928. xTimeoutOccurred = 0;
  929. # DEBUG BEGIN_STMT
  930. _1 = uxBitsToWaitFor & 4278190080;
  931. if (_1 != 0)
  932. goto <bb 3>; [INV]
  933. else
  934. goto <bb 5>; [INV]
  935. <bb 3> :
  936. # DEBUG BEGIN_STMT
  937. vPortRaiseBASEPRI ();
  938. <bb 4> :
  939. # DEBUG BEGIN_STMT
  940. # DEBUG BEGIN_STMT
  941. # DEBUG BEGIN_STMT
  942. goto <bb 4>; [INV]
  943. <bb 5> :
  944. # DEBUG BEGIN_STMT
  945. # DEBUG BEGIN_STMT
  946. if (uxBitsToWaitFor == 0)
  947. goto <bb 6>; [INV]
  948. else
  949. goto <bb 8>; [INV]
  950. <bb 6> :
  951. # DEBUG BEGIN_STMT
  952. vPortRaiseBASEPRI ();
  953. <bb 7> :
  954. # DEBUG BEGIN_STMT
  955. # DEBUG BEGIN_STMT
  956. # DEBUG BEGIN_STMT
  957. goto <bb 7>; [INV]
  958. <bb 8> :
  959. # DEBUG BEGIN_STMT
  960. # DEBUG BEGIN_STMT
  961. _2 = xTaskGetSchedulerState ();
  962. if (_2 != 0)
  963. goto <bb 10>; [INV]
  964. else
  965. goto <bb 9>; [INV]
  966. <bb 9> :
  967. if (xTicksToWait == 0)
  968. goto <bb 10>; [INV]
  969. else
  970. goto <bb 11>; [INV]
  971. <bb 10> :
  972. iftmp.0 = 1;
  973. goto <bb 12>; [INV]
  974. <bb 11> :
  975. iftmp.0 = 0;
  976. <bb 12> :
  977. if (iftmp.0 == 0)
  978. goto <bb 13>; [INV]
  979. else
  980. goto <bb 15>; [INV]
  981. <bb 13> :
  982. # DEBUG BEGIN_STMT
  983. vPortRaiseBASEPRI ();
  984. <bb 14> :
  985. # DEBUG BEGIN_STMT
  986. # DEBUG BEGIN_STMT
  987. # DEBUG BEGIN_STMT
  988. goto <bb 14>; [INV]
  989. <bb 15> :
  990. # DEBUG BEGIN_STMT
  991. # DEBUG BEGIN_STMT
  992. vTaskSuspendAll ();
  993. # DEBUG BEGIN_STMT
  994. uxOriginalBitValue = pxEventBits->uxEventBits;
  995. # DEBUG BEGIN_STMT
  996. xEventGroupSetBits (xEventGroup, uxBitsToSet);
  997. # DEBUG BEGIN_STMT
  998. _3 = uxOriginalBitValue | uxBitsToSet;
  999. _4 = uxBitsToWaitFor & _3;
  1000. if (uxBitsToWaitFor == _4)
  1001. goto <bb 16>; [INV]
  1002. else
  1003. goto <bb 17>; [INV]
  1004. <bb 16> :
  1005. # DEBUG BEGIN_STMT
  1006. uxReturn = uxOriginalBitValue | uxBitsToSet;
  1007. # DEBUG BEGIN_STMT
  1008. _5 = pxEventBits->uxEventBits;
  1009. _6 = ~uxBitsToWaitFor;
  1010. _7 = _5 & _6;
  1011. pxEventBits->uxEventBits = _7;
  1012. # DEBUG BEGIN_STMT
  1013. xTicksToWait = 0;
  1014. goto <bb 20>; [INV]
  1015. <bb 17> :
  1016. # DEBUG BEGIN_STMT
  1017. if (xTicksToWait != 0)
  1018. goto <bb 18>; [INV]
  1019. else
  1020. goto <bb 19>; [INV]
  1021. <bb 18> :
  1022. # DEBUG BEGIN_STMT
  1023. # DEBUG BEGIN_STMT
  1024. _8 = &pxEventBits->xTasksWaitingForBits;
  1025. _9 = uxBitsToWaitFor | 83886080;
  1026. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait);
  1027. # DEBUG BEGIN_STMT
  1028. uxReturn = 0;
  1029. goto <bb 20>; [INV]
  1030. <bb 19> :
  1031. # DEBUG BEGIN_STMT
  1032. uxReturn = pxEventBits->uxEventBits;
  1033. # DEBUG BEGIN_STMT
  1034. xTimeoutOccurred = 1;
  1035. <bb 20> :
  1036. # DEBUG BEGIN_STMT
  1037. xAlreadyYielded = xTaskResumeAll ();
  1038. # DEBUG BEGIN_STMT
  1039. if (xTicksToWait != 0)
  1040. goto <bb 21>; [INV]
  1041. else
  1042. goto <bb 28>; [INV]
  1043. <bb 21> :
  1044. # DEBUG BEGIN_STMT
  1045. if (xAlreadyYielded == 0)
  1046. goto <bb 22>; [INV]
  1047. else
  1048. goto <bb 23>; [INV]
  1049. <bb 22> :
  1050. # DEBUG BEGIN_STMT
  1051. _10 = 3758157060B;
  1052. *_10 = 268435456;
  1053. # DEBUG BEGIN_STMT
  1054. __asm__ __volatile__("dsb" : : : "memory");
  1055. # DEBUG BEGIN_STMT
  1056. __asm__ __volatile__("isb");
  1057. # DEBUG BEGIN_STMT
  1058. <bb 23> :
  1059. # DEBUG BEGIN_STMT
  1060. # DEBUG BEGIN_STMT
  1061. uxReturn = uxTaskResetEventItemValue ();
  1062. # DEBUG BEGIN_STMT
  1063. _11 = uxReturn & 33554432;
  1064. if (_11 == 0)
  1065. goto <bb 24>; [INV]
  1066. else
  1067. goto <bb 27>; [INV]
  1068. <bb 24> :
  1069. # DEBUG BEGIN_STMT
  1070. vPortEnterCritical ();
  1071. # DEBUG BEGIN_STMT
  1072. uxReturn = pxEventBits->uxEventBits;
  1073. # DEBUG BEGIN_STMT
  1074. _12 = uxReturn & uxBitsToWaitFor;
  1075. if (uxBitsToWaitFor == _12)
  1076. goto <bb 25>; [INV]
  1077. else
  1078. goto <bb 26>; [INV]
  1079. <bb 25> :
  1080. # DEBUG BEGIN_STMT
  1081. _13 = pxEventBits->uxEventBits;
  1082. _14 = ~uxBitsToWaitFor;
  1083. _15 = _13 & _14;
  1084. pxEventBits->uxEventBits = _15;
  1085. <bb 26> :
  1086. # DEBUG BEGIN_STMT
  1087. # DEBUG BEGIN_STMT
  1088. vPortExitCritical ();
  1089. # DEBUG BEGIN_STMT
  1090. xTimeoutOccurred = 1;
  1091. <bb 27> :
  1092. # DEBUG BEGIN_STMT
  1093. # DEBUG BEGIN_STMT
  1094. uxReturn = uxReturn & 16777215;
  1095. <bb 28> :
  1096. # DEBUG BEGIN_STMT
  1097. # DEBUG BEGIN_STMT
  1098. # DEBUG BEGIN_STMT
  1099. D.6468 = uxReturn;
  1100. return D.6468;
  1101. }
  1102. xEventGroupCreate ()
  1103. {
  1104. struct EventGroup_t * pxEventBits;
  1105. struct EventGroupDef_t * D.6438;
  1106. <bb 2> :
  1107. # DEBUG BEGIN_STMT
  1108. # DEBUG BEGIN_STMT
  1109. pxEventBits = pvPortMalloc (28);
  1110. # DEBUG BEGIN_STMT
  1111. if (pxEventBits != 0B)
  1112. goto <bb 3>; [INV]
  1113. else
  1114. goto <bb 4>; [INV]
  1115. <bb 3> :
  1116. # DEBUG BEGIN_STMT
  1117. pxEventBits->uxEventBits = 0;
  1118. # DEBUG BEGIN_STMT
  1119. _1 = &pxEventBits->xTasksWaitingForBits;
  1120. vListInitialise (_1);
  1121. # DEBUG BEGIN_STMT
  1122. <bb 4> :
  1123. # DEBUG BEGIN_STMT
  1124. # DEBUG BEGIN_STMT
  1125. D.6438 = pxEventBits;
  1126. return D.6438;
  1127. }
  1128. __attribute__((always_inline))
  1129. vPortSetBASEPRI (uint32_t ulNewMaskValue)
  1130. {
  1131. <bb 2> :
  1132. # DEBUG BEGIN_STMT
  1133. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory");
  1134. return;
  1135. }
  1136. __attribute__((always_inline))
  1137. ulPortRaiseBASEPRI ()
  1138. {
  1139. uint32_t ulNewBASEPRI;
  1140. uint32_t ulOriginalBASEPRI;
  1141. uint32_t D.6535;
  1142. <bb 2> :
  1143. # DEBUG BEGIN_STMT
  1144. # DEBUG BEGIN_STMT
  1145. __asm__ __volatile__(" mrs %0, basepri
  1146. mov %1, %2
  1147. msr basepri, %1
  1148. isb
  1149. dsb
  1150. " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory");
  1151. # DEBUG BEGIN_STMT
  1152. D.6535 = ulOriginalBASEPRI;
  1153. return D.6535;
  1154. }
  1155. __attribute__((always_inline))
  1156. vPortRaiseBASEPRI ()
  1157. {
  1158. uint32_t ulNewBASEPRI;
  1159. <bb 2> :
  1160. # DEBUG BEGIN_STMT
  1161. # DEBUG BEGIN_STMT
  1162. __asm__ __volatile__(" mov %0, %1
  1163. msr basepri, %0
  1164. isb
  1165. dsb
  1166. " : "=r" ulNewBASEPRI : "i" 16 : "memory");
  1167. return;
  1168. }