event_groups.c.022i.opt_local_passes 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223
  1. vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
  2. {
  3. <bb 2> :
  4. # DEBUG BEGIN_STMT
  5. MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D);
  6. return;
  7. }
  8. uxEventGroupGetNumber (void * xEventGroup)
  9. {
  10. const struct EventGroup_t * pxEventBits;
  11. UBaseType_t xReturn;
  12. UBaseType_t _7;
  13. <bb 2> :
  14. # DEBUG BEGIN_STMT
  15. # DEBUG BEGIN_STMT
  16. pxEventBits_3 = xEventGroup_2(D);
  17. # DEBUG pxEventBits => pxEventBits_3
  18. # DEBUG BEGIN_STMT
  19. if (xEventGroup_2(D) == 0B)
  20. goto <bb 3>; [INV]
  21. else
  22. goto <bb 4>; [INV]
  23. <bb 3> :
  24. # DEBUG BEGIN_STMT
  25. xReturn_6 = 0;
  26. # DEBUG xReturn => xReturn_6
  27. goto <bb 5>; [INV]
  28. <bb 4> :
  29. # DEBUG BEGIN_STMT
  30. xReturn_5 = pxEventBits_3->uxEventGroupNumber;
  31. # DEBUG xReturn => xReturn_5
  32. <bb 5> :
  33. # xReturn_1 = PHI <xReturn_6(3), xReturn_5(4)>
  34. # DEBUG xReturn => xReturn_1
  35. # DEBUG BEGIN_STMT
  36. _7 = xReturn_1;
  37. return _7;
  38. }
  39. xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
  40. {
  41. BaseType_t xReturn;
  42. BaseType_t _7;
  43. <bb 2> :
  44. # DEBUG BEGIN_STMT
  45. # DEBUG BEGIN_STMT
  46. # DEBUG BEGIN_STMT
  47. xReturn_6 = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup_2(D), uxBitsToSet_3(D), pxHigherPriorityTaskWoken_4(D));
  48. # DEBUG xReturn => xReturn_6
  49. # DEBUG BEGIN_STMT
  50. _7 = xReturn_6;
  51. return _7;
  52. }
  53. prvTestWaitCondition (const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
  54. {
  55. BaseType_t xWaitConditionMet;
  56. long unsigned int _1;
  57. long unsigned int _2;
  58. BaseType_t _10;
  59. <bb 2> :
  60. # DEBUG BEGIN_STMT
  61. xWaitConditionMet_4 = 0;
  62. # DEBUG xWaitConditionMet => xWaitConditionMet_4
  63. # DEBUG BEGIN_STMT
  64. if (xWaitForAllBits_5(D) == 0)
  65. goto <bb 3>; [INV]
  66. else
  67. goto <bb 5>; [INV]
  68. <bb 3> :
  69. # DEBUG BEGIN_STMT
  70. _1 = uxCurrentEventBits_6(D) & uxBitsToWaitFor_7(D);
  71. if (_1 != 0)
  72. goto <bb 4>; [INV]
  73. else
  74. goto <bb 7>; [INV]
  75. <bb 4> :
  76. # DEBUG BEGIN_STMT
  77. xWaitConditionMet_9 = 1;
  78. # DEBUG xWaitConditionMet => xWaitConditionMet_9
  79. goto <bb 7>; [INV]
  80. <bb 5> :
  81. # DEBUG BEGIN_STMT
  82. _2 = uxCurrentEventBits_6(D) & uxBitsToWaitFor_7(D);
  83. if (uxBitsToWaitFor_7(D) == _2)
  84. goto <bb 6>; [INV]
  85. else
  86. goto <bb 7>; [INV]
  87. <bb 6> :
  88. # DEBUG BEGIN_STMT
  89. xWaitConditionMet_8 = 1;
  90. # DEBUG xWaitConditionMet => xWaitConditionMet_8
  91. <bb 7> :
  92. # xWaitConditionMet_3 = PHI <xWaitConditionMet_9(4), xWaitConditionMet_4(5), xWaitConditionMet_8(6), xWaitConditionMet_4(3)>
  93. # DEBUG xWaitConditionMet => xWaitConditionMet_3
  94. # DEBUG BEGIN_STMT
  95. # DEBUG BEGIN_STMT
  96. _10 = xWaitConditionMet_3;
  97. return _10;
  98. }
  99. vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
  100. {
  101. <bb 2> :
  102. # DEBUG BEGIN_STMT
  103. xEventGroupClearBits (pvEventGroup_2(D), ulBitsToClear_3(D));
  104. return;
  105. }
  106. vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
  107. {
  108. <bb 2> :
  109. # DEBUG BEGIN_STMT
  110. xEventGroupSetBits (pvEventGroup_2(D), ulBitsToSet_3(D));
  111. return;
  112. }
  113. vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
  114. {
  115. const struct List_t * pxTasksWaitingForBits;
  116. struct EventGroup_t * pxEventBits;
  117. struct xLIST_ITEM * _1;
  118. const struct MiniListItem_t * _2;
  119. struct xLIST_ITEM * _3;
  120. long unsigned int _4;
  121. <bb 2> :
  122. # DEBUG BEGIN_STMT
  123. if (xEventGroup_6(D) == 0B)
  124. goto <bb 3>; [INV]
  125. else
  126. goto <bb 5>; [INV]
  127. <bb 3> :
  128. # DEBUG BEGIN_STMT
  129. vPortRaiseBASEPRI ();
  130. <bb 4> :
  131. # DEBUG BEGIN_STMT
  132. # DEBUG BEGIN_STMT
  133. # DEBUG BEGIN_STMT
  134. goto <bb 4>; [INV]
  135. <bb 5> :
  136. # DEBUG BEGIN_STMT
  137. # DEBUG BEGIN_STMT
  138. pxEventBits_7 = xEventGroup_6(D);
  139. # DEBUG pxEventBits => pxEventBits_7
  140. # DEBUG BEGIN_STMT
  141. pxTasksWaitingForBits_8 = &pxEventBits_7->xTasksWaitingForBits;
  142. # DEBUG pxTasksWaitingForBits => pxTasksWaitingForBits_8
  143. # DEBUG BEGIN_STMT
  144. vTaskSuspendAll ();
  145. # DEBUG BEGIN_STMT
  146. # DEBUG BEGIN_STMT
  147. goto <bb 10>; [INV]
  148. <bb 6> :
  149. # DEBUG BEGIN_STMT
  150. _1 = pxTasksWaitingForBits_8->xListEnd.pxNext;
  151. _2 = &pxTasksWaitingForBits_8->xListEnd;
  152. if (_1 == _2)
  153. goto <bb 7>; [INV]
  154. else
  155. goto <bb 9>; [INV]
  156. <bb 7> :
  157. # DEBUG BEGIN_STMT
  158. vPortRaiseBASEPRI ();
  159. <bb 8> :
  160. # DEBUG BEGIN_STMT
  161. # DEBUG BEGIN_STMT
  162. # DEBUG BEGIN_STMT
  163. goto <bb 8>; [INV]
  164. <bb 9> :
  165. # DEBUG BEGIN_STMT
  166. # DEBUG BEGIN_STMT
  167. _3 = pxTasksWaitingForBits_8->xListEnd.pxNext;
  168. vTaskRemoveFromUnorderedEventList (_3, 33554432);
  169. <bb 10> :
  170. # DEBUG BEGIN_STMT
  171. _4 ={v} pxTasksWaitingForBits_8->uxNumberOfItems;
  172. if (_4 != 0)
  173. goto <bb 6>; [INV]
  174. else
  175. goto <bb 11>; [INV]
  176. <bb 11> :
  177. # DEBUG BEGIN_STMT
  178. vPortFree (pxEventBits_7);
  179. # DEBUG BEGIN_STMT
  180. xTaskResumeAll ();
  181. return;
  182. }
  183. xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  184. {
  185. BaseType_t xMatchFound;
  186. struct EventGroup_t * pxEventBits;
  187. EventBits_t uxControlBits;
  188. EventBits_t uxBitsWaitedFor;
  189. EventBits_t uxBitsToClear;
  190. const struct List_t * pxList;
  191. const struct ListItem_t * pxListEnd;
  192. struct ListItem_t * pxNext;
  193. struct ListItem_t * pxListItem;
  194. long unsigned int _1;
  195. long unsigned int _2;
  196. long unsigned int _3;
  197. long unsigned int _4;
  198. long unsigned int _5;
  199. long unsigned int _6;
  200. long unsigned int _7;
  201. long unsigned int _8;
  202. long unsigned int _9;
  203. long unsigned int _10;
  204. long unsigned int _11;
  205. long unsigned int _12;
  206. long unsigned int _13;
  207. long unsigned int _14;
  208. EventBits_t _35;
  209. <bb 2> :
  210. # DEBUG BEGIN_STMT
  211. # DEBUG BEGIN_STMT
  212. # DEBUG BEGIN_STMT
  213. # DEBUG BEGIN_STMT
  214. uxBitsToClear_22 = 0;
  215. # DEBUG uxBitsToClear => uxBitsToClear_22
  216. # DEBUG BEGIN_STMT
  217. pxEventBits_24 = xEventGroup_23(D);
  218. # DEBUG pxEventBits => pxEventBits_24
  219. # DEBUG BEGIN_STMT
  220. xMatchFound_25 = 0;
  221. # DEBUG xMatchFound => xMatchFound_25
  222. # DEBUG BEGIN_STMT
  223. if (xEventGroup_23(D) == 0B)
  224. goto <bb 3>; [INV]
  225. else
  226. goto <bb 5>; [INV]
  227. <bb 3> :
  228. # DEBUG BEGIN_STMT
  229. vPortRaiseBASEPRI ();
  230. <bb 4> :
  231. # DEBUG BEGIN_STMT
  232. # DEBUG BEGIN_STMT
  233. # DEBUG BEGIN_STMT
  234. goto <bb 4>; [INV]
  235. <bb 5> :
  236. # DEBUG BEGIN_STMT
  237. # DEBUG BEGIN_STMT
  238. _1 = uxBitsToSet_26(D) & 4278190080;
  239. if (_1 != 0)
  240. goto <bb 6>; [INV]
  241. else
  242. goto <bb 8>; [INV]
  243. <bb 6> :
  244. # DEBUG BEGIN_STMT
  245. vPortRaiseBASEPRI ();
  246. <bb 7> :
  247. # DEBUG BEGIN_STMT
  248. # DEBUG BEGIN_STMT
  249. # DEBUG BEGIN_STMT
  250. goto <bb 7>; [INV]
  251. <bb 8> :
  252. # DEBUG BEGIN_STMT
  253. # DEBUG BEGIN_STMT
  254. pxList_27 = &pxEventBits_24->xTasksWaitingForBits;
  255. # DEBUG pxList => pxList_27
  256. # DEBUG BEGIN_STMT
  257. pxListEnd_28 = &pxList_27->xListEnd;
  258. # DEBUG pxListEnd => pxListEnd_28
  259. # DEBUG BEGIN_STMT
  260. vTaskSuspendAll ();
  261. # DEBUG BEGIN_STMT
  262. # DEBUG BEGIN_STMT
  263. pxListItem_31 = pxList_27->xListEnd.pxNext;
  264. # DEBUG pxListItem => pxListItem_31
  265. # DEBUG BEGIN_STMT
  266. _2 = pxEventBits_24->uxEventBits;
  267. _3 = uxBitsToSet_26(D) | _2;
  268. pxEventBits_24->uxEventBits = _3;
  269. # DEBUG BEGIN_STMT
  270. goto <bb 19>; [INV]
  271. <bb 9> :
  272. # DEBUG BEGIN_STMT
  273. pxNext_36 = pxListItem_15->pxNext;
  274. # DEBUG pxNext => pxNext_36
  275. # DEBUG BEGIN_STMT
  276. uxBitsWaitedFor_37 = pxListItem_15->xItemValue;
  277. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_37
  278. # DEBUG BEGIN_STMT
  279. xMatchFound_38 = 0;
  280. # DEBUG xMatchFound => xMatchFound_38
  281. # DEBUG BEGIN_STMT
  282. uxControlBits_39 = uxBitsWaitedFor_37 & 4278190080;
  283. # DEBUG uxControlBits => uxControlBits_39
  284. # DEBUG BEGIN_STMT
  285. uxBitsWaitedFor_40 = uxBitsWaitedFor_37 & 16777215;
  286. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_40
  287. # DEBUG BEGIN_STMT
  288. _4 = uxControlBits_39 & 67108864;
  289. if (_4 == 0)
  290. goto <bb 10>; [INV]
  291. else
  292. goto <bb 12>; [INV]
  293. <bb 10> :
  294. # DEBUG BEGIN_STMT
  295. _5 = pxEventBits_24->uxEventBits;
  296. _6 = uxBitsWaitedFor_40 & _5;
  297. if (_6 != 0)
  298. goto <bb 11>; [INV]
  299. else
  300. goto <bb 14>; [INV]
  301. <bb 11> :
  302. # DEBUG BEGIN_STMT
  303. xMatchFound_42 = 1;
  304. # DEBUG xMatchFound => xMatchFound_42
  305. goto <bb 14>; [INV]
  306. <bb 12> :
  307. # DEBUG BEGIN_STMT
  308. _7 = pxEventBits_24->uxEventBits;
  309. _8 = uxBitsWaitedFor_40 & _7;
  310. if (uxBitsWaitedFor_40 == _8)
  311. goto <bb 13>; [INV]
  312. else
  313. goto <bb 14>; [INV]
  314. <bb 13> :
  315. # DEBUG BEGIN_STMT
  316. xMatchFound_41 = 1;
  317. # DEBUG xMatchFound => xMatchFound_41
  318. <bb 14> :
  319. # xMatchFound_19 = PHI <xMatchFound_42(11), xMatchFound_38(12), xMatchFound_41(13), xMatchFound_38(10)>
  320. # DEBUG xMatchFound => xMatchFound_19
  321. # DEBUG BEGIN_STMT
  322. # DEBUG BEGIN_STMT
  323. if (xMatchFound_19 != 0)
  324. goto <bb 15>; [INV]
  325. else
  326. goto <bb 18>; [INV]
  327. <bb 15> :
  328. # DEBUG BEGIN_STMT
  329. _9 = uxControlBits_39 & 16777216;
  330. if (_9 != 0)
  331. goto <bb 16>; [INV]
  332. else
  333. goto <bb 17>; [INV]
  334. <bb 16> :
  335. # DEBUG BEGIN_STMT
  336. uxBitsToClear_43 = uxBitsToClear_18 | uxBitsWaitedFor_40;
  337. # DEBUG uxBitsToClear => uxBitsToClear_43
  338. <bb 17> :
  339. # uxBitsToClear_16 = PHI <uxBitsToClear_18(15), uxBitsToClear_43(16)>
  340. # DEBUG uxBitsToClear => uxBitsToClear_16
  341. # DEBUG BEGIN_STMT
  342. # DEBUG BEGIN_STMT
  343. _10 = pxEventBits_24->uxEventBits;
  344. _11 = _10 | 33554432;
  345. vTaskRemoveFromUnorderedEventList (pxListItem_15, _11);
  346. <bb 18> :
  347. # uxBitsToClear_17 = PHI <uxBitsToClear_18(14), uxBitsToClear_16(17)>
  348. # DEBUG uxBitsToClear => uxBitsToClear_17
  349. # DEBUG BEGIN_STMT
  350. pxListItem_45 = pxNext_36;
  351. # DEBUG pxListItem => pxListItem_45
  352. <bb 19> :
  353. # pxListItem_15 = PHI <pxListItem_31(8), pxListItem_45(18)>
  354. # uxBitsToClear_18 = PHI <uxBitsToClear_22(8), uxBitsToClear_17(18)>
  355. # DEBUG uxBitsToClear => uxBitsToClear_18
  356. # DEBUG pxListItem => pxListItem_15
  357. # DEBUG BEGIN_STMT
  358. if (pxListItem_15 != pxListEnd_28)
  359. goto <bb 9>; [INV]
  360. else
  361. goto <bb 20>; [INV]
  362. <bb 20> :
  363. # DEBUG BEGIN_STMT
  364. _12 = pxEventBits_24->uxEventBits;
  365. _13 = ~uxBitsToClear_18;
  366. _14 = _12 & _13;
  367. pxEventBits_24->uxEventBits = _14;
  368. # DEBUG BEGIN_STMT
  369. xTaskResumeAll ();
  370. # DEBUG BEGIN_STMT
  371. _35 = pxEventBits_24->uxEventBits;
  372. return _35;
  373. }
  374. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  375. {
  376. EventBits_t uxReturn;
  377. const struct EventGroup_t * const pxEventBits;
  378. UBaseType_t uxSavedInterruptStatus;
  379. EventBits_t _8;
  380. <bb 2> :
  381. # DEBUG BEGIN_STMT
  382. # DEBUG BEGIN_STMT
  383. pxEventBits_2 = xEventGroup_1(D);
  384. # DEBUG pxEventBits => pxEventBits_2
  385. # DEBUG BEGIN_STMT
  386. # DEBUG BEGIN_STMT
  387. uxSavedInterruptStatus_5 = ulPortRaiseBASEPRI ();
  388. # DEBUG uxSavedInterruptStatus => uxSavedInterruptStatus_5
  389. # DEBUG BEGIN_STMT
  390. uxReturn_6 = pxEventBits_2->uxEventBits;
  391. # DEBUG uxReturn => uxReturn_6
  392. # DEBUG BEGIN_STMT
  393. vPortSetBASEPRI (uxSavedInterruptStatus_5);
  394. # DEBUG BEGIN_STMT
  395. _8 = uxReturn_6;
  396. return _8;
  397. }
  398. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  399. {
  400. BaseType_t xReturn;
  401. BaseType_t _6;
  402. <bb 2> :
  403. # DEBUG BEGIN_STMT
  404. # DEBUG BEGIN_STMT
  405. # DEBUG BEGIN_STMT
  406. xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  407. # DEBUG xReturn => xReturn_5
  408. # DEBUG BEGIN_STMT
  409. _6 = xReturn_5;
  410. return _6;
  411. }
  412. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  413. {
  414. EventBits_t uxReturn;
  415. struct EventGroup_t * pxEventBits;
  416. long unsigned int _1;
  417. long unsigned int _2;
  418. long unsigned int _3;
  419. long unsigned int _4;
  420. EventBits_t _13;
  421. <bb 2> :
  422. # DEBUG BEGIN_STMT
  423. pxEventBits_6 = xEventGroup_5(D);
  424. # DEBUG pxEventBits => pxEventBits_6
  425. # DEBUG BEGIN_STMT
  426. # DEBUG BEGIN_STMT
  427. if (xEventGroup_5(D) == 0B)
  428. goto <bb 3>; [INV]
  429. else
  430. goto <bb 5>; [INV]
  431. <bb 3> :
  432. # DEBUG BEGIN_STMT
  433. vPortRaiseBASEPRI ();
  434. <bb 4> :
  435. # DEBUG BEGIN_STMT
  436. # DEBUG BEGIN_STMT
  437. # DEBUG BEGIN_STMT
  438. goto <bb 4>; [INV]
  439. <bb 5> :
  440. # DEBUG BEGIN_STMT
  441. # DEBUG BEGIN_STMT
  442. _1 = uxBitsToClear_7(D) & 4278190080;
  443. if (_1 != 0)
  444. goto <bb 6>; [INV]
  445. else
  446. goto <bb 8>; [INV]
  447. <bb 6> :
  448. # DEBUG BEGIN_STMT
  449. vPortRaiseBASEPRI ();
  450. <bb 7> :
  451. # DEBUG BEGIN_STMT
  452. # DEBUG BEGIN_STMT
  453. # DEBUG BEGIN_STMT
  454. goto <bb 7>; [INV]
  455. <bb 8> :
  456. # DEBUG BEGIN_STMT
  457. # DEBUG BEGIN_STMT
  458. vPortEnterCritical ();
  459. # DEBUG BEGIN_STMT
  460. # DEBUG BEGIN_STMT
  461. uxReturn_10 = pxEventBits_6->uxEventBits;
  462. # DEBUG uxReturn => uxReturn_10
  463. # DEBUG BEGIN_STMT
  464. _2 = pxEventBits_6->uxEventBits;
  465. _3 = ~uxBitsToClear_7(D);
  466. _4 = _2 & _3;
  467. pxEventBits_6->uxEventBits = _4;
  468. # DEBUG BEGIN_STMT
  469. vPortExitCritical ();
  470. # DEBUG BEGIN_STMT
  471. _13 = uxReturn_10;
  472. return _13;
  473. }
  474. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  475. {
  476. const EventBits_t uxCurrentEventBits;
  477. BaseType_t xTimeoutOccurred;
  478. BaseType_t xAlreadyYielded;
  479. BaseType_t xWaitConditionMet;
  480. EventBits_t uxControlBits;
  481. EventBits_t uxReturn;
  482. struct EventGroup_t * pxEventBits;
  483. long unsigned int _1;
  484. long int _2;
  485. long unsigned int _3;
  486. long unsigned int _4;
  487. long unsigned int _5;
  488. struct List_t * _6;
  489. long unsigned int _7;
  490. volatile uint32_t * _8;
  491. long unsigned int _9;
  492. long int _10;
  493. long unsigned int _11;
  494. long unsigned int _12;
  495. long unsigned int _13;
  496. int iftmp.1_20;
  497. int iftmp.1_34;
  498. int iftmp.1_35;
  499. EventBits_t _65;
  500. <bb 2> :
  501. # DEBUG BEGIN_STMT
  502. pxEventBits_27 = xEventGroup_26(D);
  503. # DEBUG pxEventBits => pxEventBits_27
  504. # DEBUG BEGIN_STMT
  505. uxControlBits_28 = 0;
  506. # DEBUG uxControlBits => uxControlBits_28
  507. # DEBUG BEGIN_STMT
  508. # DEBUG BEGIN_STMT
  509. xTimeoutOccurred_29 = 0;
  510. # DEBUG xTimeoutOccurred => xTimeoutOccurred_29
  511. # DEBUG BEGIN_STMT
  512. if (xEventGroup_26(D) == 0B)
  513. goto <bb 3>; [INV]
  514. else
  515. goto <bb 5>; [INV]
  516. <bb 3> :
  517. # DEBUG BEGIN_STMT
  518. vPortRaiseBASEPRI ();
  519. <bb 4> :
  520. # DEBUG BEGIN_STMT
  521. # DEBUG BEGIN_STMT
  522. # DEBUG BEGIN_STMT
  523. goto <bb 4>; [INV]
  524. <bb 5> :
  525. # DEBUG BEGIN_STMT
  526. # DEBUG BEGIN_STMT
  527. _1 = uxBitsToWaitFor_30(D) & 4278190080;
  528. if (_1 != 0)
  529. goto <bb 6>; [INV]
  530. else
  531. goto <bb 8>; [INV]
  532. <bb 6> :
  533. # DEBUG BEGIN_STMT
  534. vPortRaiseBASEPRI ();
  535. <bb 7> :
  536. # DEBUG BEGIN_STMT
  537. # DEBUG BEGIN_STMT
  538. # DEBUG BEGIN_STMT
  539. goto <bb 7>; [INV]
  540. <bb 8> :
  541. # DEBUG BEGIN_STMT
  542. # DEBUG BEGIN_STMT
  543. if (uxBitsToWaitFor_30(D) == 0)
  544. goto <bb 9>; [INV]
  545. else
  546. goto <bb 11>; [INV]
  547. <bb 9> :
  548. # DEBUG BEGIN_STMT
  549. vPortRaiseBASEPRI ();
  550. <bb 10> :
  551. # DEBUG BEGIN_STMT
  552. # DEBUG BEGIN_STMT
  553. # DEBUG BEGIN_STMT
  554. goto <bb 10>; [INV]
  555. <bb 11> :
  556. # DEBUG BEGIN_STMT
  557. # DEBUG BEGIN_STMT
  558. _2 = xTaskGetSchedulerState ();
  559. if (_2 != 0)
  560. goto <bb 13>; [INV]
  561. else
  562. goto <bb 12>; [INV]
  563. <bb 12> :
  564. if (xTicksToWait_33(D) == 0)
  565. goto <bb 13>; [INV]
  566. else
  567. goto <bb 14>; [INV]
  568. <bb 13> :
  569. iftmp.1_35 = 1;
  570. goto <bb 15>; [INV]
  571. <bb 14> :
  572. iftmp.1_34 = 0;
  573. <bb 15> :
  574. # iftmp.1_20 = PHI <iftmp.1_35(13), iftmp.1_34(14)>
  575. if (iftmp.1_20 == 0)
  576. goto <bb 16>; [INV]
  577. else
  578. goto <bb 18>; [INV]
  579. <bb 16> :
  580. # DEBUG BEGIN_STMT
  581. vPortRaiseBASEPRI ();
  582. <bb 17> :
  583. # DEBUG BEGIN_STMT
  584. # DEBUG BEGIN_STMT
  585. # DEBUG BEGIN_STMT
  586. goto <bb 17>; [INV]
  587. <bb 18> :
  588. # DEBUG BEGIN_STMT
  589. # DEBUG BEGIN_STMT
  590. vTaskSuspendAll ();
  591. # DEBUG BEGIN_STMT
  592. uxCurrentEventBits_37 = pxEventBits_27->uxEventBits;
  593. # DEBUG uxCurrentEventBits => uxCurrentEventBits_37
  594. # DEBUG BEGIN_STMT
  595. xWaitConditionMet_40 = prvTestWaitCondition (uxCurrentEventBits_37, uxBitsToWaitFor_30(D), xWaitForAllBits_38(D));
  596. # DEBUG xWaitConditionMet => xWaitConditionMet_40
  597. # DEBUG BEGIN_STMT
  598. if (xWaitConditionMet_40 != 0)
  599. goto <bb 19>; [INV]
  600. else
  601. goto <bb 21>; [INV]
  602. <bb 19> :
  603. # DEBUG BEGIN_STMT
  604. uxReturn_48 = uxCurrentEventBits_37;
  605. # DEBUG uxReturn => uxReturn_48
  606. # DEBUG BEGIN_STMT
  607. xTicksToWait_49 = 0;
  608. # DEBUG xTicksToWait => xTicksToWait_49
  609. # DEBUG BEGIN_STMT
  610. if (xClearOnExit_41(D) != 0)
  611. goto <bb 20>; [INV]
  612. else
  613. goto <bb 28>; [INV]
  614. <bb 20> :
  615. # DEBUG BEGIN_STMT
  616. _3 = pxEventBits_27->uxEventBits;
  617. _4 = ~uxBitsToWaitFor_30(D);
  618. _5 = _3 & _4;
  619. pxEventBits_27->uxEventBits = _5;
  620. goto <bb 28>; [INV]
  621. <bb 21> :
  622. # DEBUG BEGIN_STMT
  623. if (xTicksToWait_33(D) == 0)
  624. goto <bb 22>; [INV]
  625. else
  626. goto <bb 23>; [INV]
  627. <bb 22> :
  628. # DEBUG BEGIN_STMT
  629. uxReturn_46 = uxCurrentEventBits_37;
  630. # DEBUG uxReturn => uxReturn_46
  631. # DEBUG BEGIN_STMT
  632. xTimeoutOccurred_47 = 1;
  633. # DEBUG xTimeoutOccurred => xTimeoutOccurred_47
  634. goto <bb 28>; [INV]
  635. <bb 23> :
  636. # DEBUG BEGIN_STMT
  637. if (xClearOnExit_41(D) != 0)
  638. goto <bb 24>; [INV]
  639. else
  640. goto <bb 25>; [INV]
  641. <bb 24> :
  642. # DEBUG BEGIN_STMT
  643. uxControlBits_42 = uxControlBits_28 | 16777216;
  644. # DEBUG uxControlBits => uxControlBits_42
  645. <bb 25> :
  646. # uxControlBits_18 = PHI <uxControlBits_28(23), uxControlBits_42(24)>
  647. # DEBUG uxControlBits => uxControlBits_18
  648. # DEBUG BEGIN_STMT
  649. # DEBUG BEGIN_STMT
  650. if (xWaitForAllBits_38(D) != 0)
  651. goto <bb 26>; [INV]
  652. else
  653. goto <bb 27>; [INV]
  654. <bb 26> :
  655. # DEBUG BEGIN_STMT
  656. uxControlBits_43 = uxControlBits_18 | 67108864;
  657. # DEBUG uxControlBits => uxControlBits_43
  658. <bb 27> :
  659. # uxControlBits_19 = PHI <uxControlBits_18(25), uxControlBits_43(26)>
  660. # DEBUG uxControlBits => uxControlBits_19
  661. # DEBUG BEGIN_STMT
  662. # DEBUG BEGIN_STMT
  663. _6 = &pxEventBits_27->xTasksWaitingForBits;
  664. _7 = uxBitsToWaitFor_30(D) | uxControlBits_19;
  665. vTaskPlaceOnUnorderedEventList (_6, _7, xTicksToWait_33(D));
  666. # DEBUG BEGIN_STMT
  667. uxReturn_45 = 0;
  668. # DEBUG uxReturn => uxReturn_45
  669. <bb 28> :
  670. # xTicksToWait_14 = PHI <xTicksToWait_49(20), xTicksToWait_33(D)(22), xTicksToWait_33(D)(27), xTicksToWait_49(19)>
  671. # uxReturn_15 = PHI <uxReturn_48(20), uxReturn_46(22), uxReturn_45(27), uxReturn_48(19)>
  672. # DEBUG uxReturn => uxReturn_15
  673. # DEBUG xTicksToWait => xTicksToWait_14
  674. # DEBUG BEGIN_STMT
  675. # DEBUG BEGIN_STMT
  676. xAlreadyYielded_52 = xTaskResumeAll ();
  677. # DEBUG xAlreadyYielded => xAlreadyYielded_52
  678. # DEBUG BEGIN_STMT
  679. if (xTicksToWait_14 != 0)
  680. goto <bb 29>; [INV]
  681. else
  682. goto <bb 37>; [INV]
  683. <bb 29> :
  684. # DEBUG BEGIN_STMT
  685. if (xAlreadyYielded_52 == 0)
  686. goto <bb 30>; [INV]
  687. else
  688. goto <bb 31>; [INV]
  689. <bb 30> :
  690. # DEBUG BEGIN_STMT
  691. _8 = 3758157060B;
  692. *_8 ={v} 268435456;
  693. # DEBUG BEGIN_STMT
  694. __asm__ __volatile__("dsb" : : : "memory");
  695. # DEBUG BEGIN_STMT
  696. __asm__ __volatile__("isb");
  697. # DEBUG BEGIN_STMT
  698. <bb 31> :
  699. # DEBUG BEGIN_STMT
  700. # DEBUG BEGIN_STMT
  701. uxReturn_57 = uxTaskResetEventItemValue ();
  702. # DEBUG uxReturn => uxReturn_57
  703. # DEBUG BEGIN_STMT
  704. _9 = uxReturn_57 & 33554432;
  705. if (_9 == 0)
  706. goto <bb 32>; [INV]
  707. else
  708. goto <bb 36>; [INV]
  709. <bb 32> :
  710. # DEBUG BEGIN_STMT
  711. vPortEnterCritical ();
  712. # DEBUG BEGIN_STMT
  713. uxReturn_59 = pxEventBits_27->uxEventBits;
  714. # DEBUG uxReturn => uxReturn_59
  715. # DEBUG BEGIN_STMT
  716. _10 = prvTestWaitCondition (uxReturn_59, uxBitsToWaitFor_30(D), xWaitForAllBits_38(D));
  717. if (_10 != 0)
  718. goto <bb 33>; [INV]
  719. else
  720. goto <bb 35>; [INV]
  721. <bb 33> :
  722. # DEBUG BEGIN_STMT
  723. if (xClearOnExit_41(D) != 0)
  724. goto <bb 34>; [INV]
  725. else
  726. goto <bb 35>; [INV]
  727. <bb 34> :
  728. # DEBUG BEGIN_STMT
  729. _11 = pxEventBits_27->uxEventBits;
  730. _12 = ~uxBitsToWaitFor_30(D);
  731. _13 = _11 & _12;
  732. pxEventBits_27->uxEventBits = _13;
  733. <bb 35> :
  734. # DEBUG BEGIN_STMT
  735. # DEBUG BEGIN_STMT
  736. xTimeoutOccurred_62 = 1;
  737. # DEBUG xTimeoutOccurred => xTimeoutOccurred_62
  738. # DEBUG BEGIN_STMT
  739. vPortExitCritical ();
  740. <bb 36> :
  741. # uxReturn_16 = PHI <uxReturn_57(31), uxReturn_59(35)>
  742. # DEBUG uxReturn => uxReturn_16
  743. # DEBUG BEGIN_STMT
  744. # DEBUG BEGIN_STMT
  745. uxReturn_64 = uxReturn_16 & 16777215;
  746. # DEBUG uxReturn => uxReturn_64
  747. <bb 37> :
  748. # uxReturn_17 = PHI <uxReturn_15(28), uxReturn_64(36)>
  749. # DEBUG uxReturn => uxReturn_17
  750. # DEBUG BEGIN_STMT
  751. # DEBUG BEGIN_STMT
  752. # DEBUG BEGIN_STMT
  753. _65 = uxReturn_17;
  754. return _65;
  755. }
  756. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  757. {
  758. BaseType_t xTimeoutOccurred;
  759. BaseType_t xAlreadyYielded;
  760. struct EventGroup_t * pxEventBits;
  761. EventBits_t uxReturn;
  762. EventBits_t uxOriginalBitValue;
  763. long unsigned int _1;
  764. long int _2;
  765. long unsigned int _3;
  766. long unsigned int _4;
  767. long unsigned int _5;
  768. long unsigned int _6;
  769. long unsigned int _7;
  770. struct List_t * _8;
  771. long unsigned int _9;
  772. volatile uint32_t * _10;
  773. long unsigned int _11;
  774. long unsigned int _12;
  775. long unsigned int _13;
  776. long unsigned int _14;
  777. long unsigned int _15;
  778. int iftmp.0_20;
  779. int iftmp.0_33;
  780. int iftmp.0_34;
  781. EventBits_t _59;
  782. <bb 2> :
  783. # DEBUG BEGIN_STMT
  784. # DEBUG BEGIN_STMT
  785. pxEventBits_27 = xEventGroup_26(D);
  786. # DEBUG pxEventBits => pxEventBits_27
  787. # DEBUG BEGIN_STMT
  788. # DEBUG BEGIN_STMT
  789. xTimeoutOccurred_28 = 0;
  790. # DEBUG xTimeoutOccurred => xTimeoutOccurred_28
  791. # DEBUG BEGIN_STMT
  792. _1 = uxBitsToWaitFor_29(D) & 4278190080;
  793. if (_1 != 0)
  794. goto <bb 3>; [INV]
  795. else
  796. goto <bb 5>; [INV]
  797. <bb 3> :
  798. # DEBUG BEGIN_STMT
  799. vPortRaiseBASEPRI ();
  800. <bb 4> :
  801. # DEBUG BEGIN_STMT
  802. # DEBUG BEGIN_STMT
  803. # DEBUG BEGIN_STMT
  804. goto <bb 4>; [INV]
  805. <bb 5> :
  806. # DEBUG BEGIN_STMT
  807. # DEBUG BEGIN_STMT
  808. if (uxBitsToWaitFor_29(D) == 0)
  809. goto <bb 6>; [INV]
  810. else
  811. goto <bb 8>; [INV]
  812. <bb 6> :
  813. # DEBUG BEGIN_STMT
  814. vPortRaiseBASEPRI ();
  815. <bb 7> :
  816. # DEBUG BEGIN_STMT
  817. # DEBUG BEGIN_STMT
  818. # DEBUG BEGIN_STMT
  819. goto <bb 7>; [INV]
  820. <bb 8> :
  821. # DEBUG BEGIN_STMT
  822. # DEBUG BEGIN_STMT
  823. _2 = xTaskGetSchedulerState ();
  824. if (_2 != 0)
  825. goto <bb 10>; [INV]
  826. else
  827. goto <bb 9>; [INV]
  828. <bb 9> :
  829. if (xTicksToWait_32(D) == 0)
  830. goto <bb 10>; [INV]
  831. else
  832. goto <bb 11>; [INV]
  833. <bb 10> :
  834. iftmp.0_34 = 1;
  835. goto <bb 12>; [INV]
  836. <bb 11> :
  837. iftmp.0_33 = 0;
  838. <bb 12> :
  839. # iftmp.0_20 = PHI <iftmp.0_34(10), iftmp.0_33(11)>
  840. if (iftmp.0_20 == 0)
  841. goto <bb 13>; [INV]
  842. else
  843. goto <bb 15>; [INV]
  844. <bb 13> :
  845. # DEBUG BEGIN_STMT
  846. vPortRaiseBASEPRI ();
  847. <bb 14> :
  848. # DEBUG BEGIN_STMT
  849. # DEBUG BEGIN_STMT
  850. # DEBUG BEGIN_STMT
  851. goto <bb 14>; [INV]
  852. <bb 15> :
  853. # DEBUG BEGIN_STMT
  854. # DEBUG BEGIN_STMT
  855. vTaskSuspendAll ();
  856. # DEBUG BEGIN_STMT
  857. uxOriginalBitValue_36 = pxEventBits_27->uxEventBits;
  858. # DEBUG uxOriginalBitValue => uxOriginalBitValue_36
  859. # DEBUG BEGIN_STMT
  860. xEventGroupSetBits (xEventGroup_26(D), uxBitsToSet_37(D));
  861. # DEBUG BEGIN_STMT
  862. _3 = uxOriginalBitValue_36 | uxBitsToSet_37(D);
  863. _4 = uxBitsToWaitFor_29(D) & _3;
  864. if (uxBitsToWaitFor_29(D) == _4)
  865. goto <bb 16>; [INV]
  866. else
  867. goto <bb 17>; [INV]
  868. <bb 16> :
  869. # DEBUG BEGIN_STMT
  870. uxReturn_43 = uxOriginalBitValue_36 | uxBitsToSet_37(D);
  871. # DEBUG uxReturn => uxReturn_43
  872. # DEBUG BEGIN_STMT
  873. _5 = pxEventBits_27->uxEventBits;
  874. _6 = ~uxBitsToWaitFor_29(D);
  875. _7 = _5 & _6;
  876. pxEventBits_27->uxEventBits = _7;
  877. # DEBUG BEGIN_STMT
  878. xTicksToWait_45 = 0;
  879. # DEBUG xTicksToWait => xTicksToWait_45
  880. goto <bb 20>; [INV]
  881. <bb 17> :
  882. # DEBUG BEGIN_STMT
  883. if (xTicksToWait_32(D) != 0)
  884. goto <bb 18>; [INV]
  885. else
  886. goto <bb 19>; [INV]
  887. <bb 18> :
  888. # DEBUG BEGIN_STMT
  889. # DEBUG BEGIN_STMT
  890. _8 = &pxEventBits_27->xTasksWaitingForBits;
  891. _9 = uxBitsToWaitFor_29(D) | 83886080;
  892. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_32(D));
  893. # DEBUG BEGIN_STMT
  894. uxReturn_42 = 0;
  895. # DEBUG uxReturn => uxReturn_42
  896. goto <bb 20>; [INV]
  897. <bb 19> :
  898. # DEBUG BEGIN_STMT
  899. uxReturn_39 = pxEventBits_27->uxEventBits;
  900. # DEBUG uxReturn => uxReturn_39
  901. # DEBUG BEGIN_STMT
  902. xTimeoutOccurred_40 = 1;
  903. # DEBUG xTimeoutOccurred => xTimeoutOccurred_40
  904. <bb 20> :
  905. # xTicksToWait_16 = PHI <xTicksToWait_45(16), xTicksToWait_32(D)(18), xTicksToWait_32(D)(19)>
  906. # uxReturn_17 = PHI <uxReturn_43(16), uxReturn_42(18), uxReturn_39(19)>
  907. # DEBUG uxReturn => uxReturn_17
  908. # DEBUG xTicksToWait => xTicksToWait_16
  909. # DEBUG BEGIN_STMT
  910. xAlreadyYielded_47 = xTaskResumeAll ();
  911. # DEBUG xAlreadyYielded => xAlreadyYielded_47
  912. # DEBUG BEGIN_STMT
  913. if (xTicksToWait_16 != 0)
  914. goto <bb 21>; [INV]
  915. else
  916. goto <bb 28>; [INV]
  917. <bb 21> :
  918. # DEBUG BEGIN_STMT
  919. if (xAlreadyYielded_47 == 0)
  920. goto <bb 22>; [INV]
  921. else
  922. goto <bb 23>; [INV]
  923. <bb 22> :
  924. # DEBUG BEGIN_STMT
  925. _10 = 3758157060B;
  926. *_10 ={v} 268435456;
  927. # DEBUG BEGIN_STMT
  928. __asm__ __volatile__("dsb" : : : "memory");
  929. # DEBUG BEGIN_STMT
  930. __asm__ __volatile__("isb");
  931. # DEBUG BEGIN_STMT
  932. <bb 23> :
  933. # DEBUG BEGIN_STMT
  934. # DEBUG BEGIN_STMT
  935. uxReturn_52 = uxTaskResetEventItemValue ();
  936. # DEBUG uxReturn => uxReturn_52
  937. # DEBUG BEGIN_STMT
  938. _11 = uxReturn_52 & 33554432;
  939. if (_11 == 0)
  940. goto <bb 24>; [INV]
  941. else
  942. goto <bb 27>; [INV]
  943. <bb 24> :
  944. # DEBUG BEGIN_STMT
  945. vPortEnterCritical ();
  946. # DEBUG BEGIN_STMT
  947. uxReturn_54 = pxEventBits_27->uxEventBits;
  948. # DEBUG uxReturn => uxReturn_54
  949. # DEBUG BEGIN_STMT
  950. _12 = uxReturn_54 & uxBitsToWaitFor_29(D);
  951. if (uxBitsToWaitFor_29(D) == _12)
  952. goto <bb 25>; [INV]
  953. else
  954. goto <bb 26>; [INV]
  955. <bb 25> :
  956. # DEBUG BEGIN_STMT
  957. _13 = pxEventBits_27->uxEventBits;
  958. _14 = ~uxBitsToWaitFor_29(D);
  959. _15 = _13 & _14;
  960. pxEventBits_27->uxEventBits = _15;
  961. <bb 26> :
  962. # DEBUG BEGIN_STMT
  963. # DEBUG BEGIN_STMT
  964. vPortExitCritical ();
  965. # DEBUG BEGIN_STMT
  966. xTimeoutOccurred_57 = 1;
  967. # DEBUG xTimeoutOccurred => xTimeoutOccurred_57
  968. <bb 27> :
  969. # uxReturn_18 = PHI <uxReturn_52(23), uxReturn_54(26)>
  970. # DEBUG uxReturn => uxReturn_18
  971. # DEBUG BEGIN_STMT
  972. # DEBUG BEGIN_STMT
  973. uxReturn_58 = uxReturn_18 & 16777215;
  974. # DEBUG uxReturn => uxReturn_58
  975. <bb 28> :
  976. # uxReturn_19 = PHI <uxReturn_17(20), uxReturn_58(27)>
  977. # DEBUG uxReturn => uxReturn_19
  978. # DEBUG BEGIN_STMT
  979. # DEBUG BEGIN_STMT
  980. # DEBUG BEGIN_STMT
  981. _59 = uxReturn_19;
  982. return _59;
  983. }
  984. xEventGroupCreate ()
  985. {
  986. struct EventGroup_t * pxEventBits;
  987. struct List_t * _1;
  988. struct EventGroupDef_t * _8;
  989. <bb 2> :
  990. # DEBUG BEGIN_STMT
  991. # DEBUG BEGIN_STMT
  992. pxEventBits_5 = pvPortMalloc (28);
  993. # DEBUG pxEventBits => pxEventBits_5
  994. # DEBUG BEGIN_STMT
  995. if (pxEventBits_5 != 0B)
  996. goto <bb 3>; [INV]
  997. else
  998. goto <bb 4>; [INV]
  999. <bb 3> :
  1000. # DEBUG BEGIN_STMT
  1001. pxEventBits_5->uxEventBits = 0;
  1002. # DEBUG BEGIN_STMT
  1003. _1 = &pxEventBits_5->xTasksWaitingForBits;
  1004. vListInitialise (_1);
  1005. # DEBUG BEGIN_STMT
  1006. <bb 4> :
  1007. # DEBUG BEGIN_STMT
  1008. # DEBUG BEGIN_STMT
  1009. _8 = pxEventBits_5;
  1010. return _8;
  1011. }
  1012. __attribute__((always_inline))
  1013. vPortSetBASEPRI (uint32_t ulNewMaskValue)
  1014. {
  1015. <bb 2> :
  1016. # DEBUG BEGIN_STMT
  1017. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_2(D) : "memory");
  1018. return;
  1019. }
  1020. __attribute__((always_inline))
  1021. ulPortRaiseBASEPRI ()
  1022. {
  1023. uint32_t ulNewBASEPRI;
  1024. uint32_t ulOriginalBASEPRI;
  1025. uint32_t _5;
  1026. <bb 2> :
  1027. # DEBUG BEGIN_STMT
  1028. # DEBUG BEGIN_STMT
  1029. __asm__ __volatile__(" mrs %0, basepri
  1030. mov %1, %2
  1031. msr basepri, %1
  1032. isb
  1033. dsb
  1034. " : "=r" ulOriginalBASEPRI_3, "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1035. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1036. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_3
  1037. # DEBUG BEGIN_STMT
  1038. _5 = ulOriginalBASEPRI_3;
  1039. return _5;
  1040. }
  1041. __attribute__((always_inline))
  1042. vPortRaiseBASEPRI ()
  1043. {
  1044. uint32_t ulNewBASEPRI;
  1045. <bb 2> :
  1046. # DEBUG BEGIN_STMT
  1047. # DEBUG BEGIN_STMT
  1048. __asm__ __volatile__(" mov %0, %1
  1049. msr basepri, %0
  1050. isb
  1051. dsb
  1052. " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory");
  1053. # DEBUG ulNewBASEPRI => ulNewBASEPRI_3
  1054. return;
  1055. }