stream_buffer.c.016i.visibility 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929
  1. Marking local functions: vPortSetBASEPRI ulPortRaiseBASEPRI vPortRaiseBASEPRI
  2. Marking externally visible functions: ucStreamBufferGetStreamBufferType vStreamBufferSetStreamBufferNumber uxStreamBufferGetStreamBufferNumber xStreamBufferReceiveCompletedFromISR xStreamBufferSendCompletedFromISR xStreamBufferIsFull xStreamBufferIsEmpty xStreamBufferReceiveFromISR xStreamBufferNextMessageLengthBytes xStreamBufferReceive xStreamBufferSendFromISR xStreamBufferSend xStreamBufferBytesAvailable xStreamBufferSpacesAvailable xStreamBufferSetTriggerLevel xStreamBufferReset vStreamBufferDelete xStreamBufferGenericCreate
  3. Marking externally visible variables:
  4. Reclaiming functions:
  5. Reclaiming variables:
  6. Clearing address taken flags:
  7. Symbol table:
  8. memcpy/42 (memcpy) @06b9e9a0
  9. Type: function
  10. Visibility: external public
  11. References:
  12. Referring:
  13. Availability: not_available
  14. Function flags:
  15. Called by: prvReadBytesFromBuffer/22 prvReadBytesFromBuffer/22 prvWriteBytesToBuffer/21 prvWriteBytesToBuffer/21
  16. Calls:
  17. xTaskGenericNotifyFromISR/41 (xTaskGenericNotifyFromISR) @06b6dc40
  18. Type: function
  19. Visibility: external public
  20. References:
  21. Referring:
  22. Availability: not_available
  23. Function flags:
  24. Called by: xStreamBufferReceiveCompletedFromISR/20 xStreamBufferSendCompletedFromISR/19 xStreamBufferReceiveFromISR/15 xStreamBufferSendFromISR/11
  25. Calls:
  26. xTaskResumeAll/40 (xTaskResumeAll) @06b6da80
  27. Type: function
  28. Visibility: external public
  29. References:
  30. Referring:
  31. Availability: not_available
  32. Function flags:
  33. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  34. Calls:
  35. xTaskGenericNotify/39 (xTaskGenericNotify) @06b6d9a0
  36. Type: function
  37. Visibility: external public
  38. References:
  39. Referring:
  40. Availability: not_available
  41. Function flags:
  42. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  43. Calls:
  44. vTaskSuspendAll/38 (vTaskSuspendAll) @06b6d8c0
  45. Type: function
  46. Visibility: external public
  47. References:
  48. Referring:
  49. Availability: not_available
  50. Function flags:
  51. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  52. Calls:
  53. xTaskCheckForTimeOut/37 (xTaskCheckForTimeOut) @06b6d7e0
  54. Type: function
  55. Visibility: external public
  56. References:
  57. Referring:
  58. Availability: not_available
  59. Function flags:
  60. Called by: xStreamBufferSend/10
  61. Calls:
  62. xTaskGenericNotifyWait/36 (xTaskGenericNotifyWait) @06b6d700
  63. Type: function
  64. Visibility: external public
  65. References:
  66. Referring:
  67. Availability: not_available
  68. Function flags:
  69. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  70. Calls:
  71. xTaskGetCurrentTaskHandle/35 (xTaskGetCurrentTaskHandle) @06b6d620
  72. Type: function
  73. Visibility: external public
  74. References:
  75. Referring:
  76. Availability: not_available
  77. Function flags:
  78. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  79. Calls:
  80. xTaskGenericNotifyStateClear/34 (xTaskGenericNotifyStateClear) @06b6d540
  81. Type: function
  82. Visibility: external public
  83. References:
  84. Referring:
  85. Availability: not_available
  86. Function flags:
  87. Called by: xStreamBufferReceive/13 xStreamBufferSend/10
  88. Calls:
  89. vTaskSetTimeOutState/33 (vTaskSetTimeOutState) @06b6d460
  90. Type: function
  91. Visibility: external public
  92. References:
  93. Referring:
  94. Availability: not_available
  95. Function flags:
  96. Called by: xStreamBufferSend/10
  97. Calls:
  98. vPortExitCritical/32 (vPortExitCritical) @06b63000
  99. Type: function
  100. Visibility: external public
  101. References:
  102. Referring:
  103. Availability: not_available
  104. Function flags:
  105. Called by: xStreamBufferReceive/13 xStreamBufferSend/10 xStreamBufferSend/10 xStreamBufferReset/6
  106. Calls:
  107. vPortEnterCritical/31 (vPortEnterCritical) @06b63ee0
  108. Type: function
  109. Visibility: external public
  110. References:
  111. Referring:
  112. Availability: not_available
  113. Function flags:
  114. Called by: xStreamBufferReceive/13 xStreamBufferSend/10 xStreamBufferReset/6
  115. Calls:
  116. memset/30 (memset) @06b63d20
  117. Type: function
  118. Visibility: external public
  119. References:
  120. Referring:
  121. Availability: not_available
  122. Function flags:
  123. Called by: prvInitialiseNewStreamBuffer/24 prvInitialiseNewStreamBuffer/24 vStreamBufferDelete/5
  124. Calls:
  125. vPortFree/29 (vPortFree) @06b63c40
  126. Type: function
  127. Visibility: external public
  128. References:
  129. Referring:
  130. Availability: not_available
  131. Function flags:
  132. Called by: vStreamBufferDelete/5
  133. Calls:
  134. pvPortMalloc/28 (pvPortMalloc) @06b639a0
  135. Type: function
  136. Visibility: external public
  137. References:
  138. Referring:
  139. Availability: not_available
  140. Function flags:
  141. Called by: xStreamBufferGenericCreate/4
  142. Calls:
  143. ucStreamBufferGetStreamBufferType/27 (ucStreamBufferGetStreamBufferType) @06b63460
  144. Type: function definition analyzed
  145. Visibility: force_output externally_visible no_reorder public
  146. References:
  147. Referring:
  148. Availability: available
  149. Function flags: body
  150. Called by:
  151. Calls:
  152. vStreamBufferSetStreamBufferNumber/26 (vStreamBufferSetStreamBufferNumber) @06b631c0
  153. Type: function definition analyzed
  154. Visibility: force_output externally_visible no_reorder public
  155. References:
  156. Referring:
  157. Availability: available
  158. Function flags: body
  159. Called by:
  160. Calls:
  161. uxStreamBufferGetStreamBufferNumber/25 (uxStreamBufferGetStreamBufferNumber) @06b58d20
  162. Type: function definition analyzed
  163. Visibility: force_output externally_visible no_reorder public
  164. References:
  165. Referring:
  166. Availability: available
  167. Function flags: body
  168. Called by:
  169. Calls:
  170. prvInitialiseNewStreamBuffer/24 (prvInitialiseNewStreamBuffer) @06b58540
  171. Type: function definition analyzed
  172. Visibility: force_output no_reorder prevailing_def_ironly
  173. References:
  174. Referring:
  175. Availability: available
  176. Function flags: body
  177. Called by: xStreamBufferReset/6 xStreamBufferGenericCreate/4
  178. Calls: memset/30 vPortRaiseBASEPRI/1 memset/30
  179. prvBytesInBuffer/23 (prvBytesInBuffer) @06b58ee0
  180. Type: function definition analyzed
  181. Visibility: force_output no_reorder prevailing_def_ironly
  182. References:
  183. Referring:
  184. Availability: available
  185. Function flags: body
  186. Called by: xStreamBufferReceiveFromISR/15 xStreamBufferNextMessageLengthBytes/14 xStreamBufferReceive/13 xStreamBufferReceive/13 xStreamBufferReceive/13 xStreamBufferSendFromISR/11 xStreamBufferSend/10 xStreamBufferBytesAvailable/9
  187. Calls:
  188. prvReadBytesFromBuffer/22 (prvReadBytesFromBuffer) @06b58c40
  189. Type: function definition analyzed
  190. Visibility: force_output no_reorder prevailing_def_ironly
  191. References:
  192. Referring:
  193. Availability: available
  194. Function flags: body
  195. Called by: prvReadMessageFromBuffer/16 prvReadMessageFromBuffer/16 xStreamBufferNextMessageLengthBytes/14
  196. Calls: memcpy/42 memcpy/42 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  197. prvWriteBytesToBuffer/21 (prvWriteBytesToBuffer) @06b587e0
  198. Type: function definition analyzed
  199. Visibility: force_output no_reorder prevailing_def_ironly
  200. References:
  201. Referring:
  202. Availability: available
  203. Function flags: body
  204. Called by: prvWriteMessageToBuffer/12 prvWriteMessageToBuffer/12
  205. Calls: memcpy/42 vPortRaiseBASEPRI/1 memcpy/42 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  206. xStreamBufferReceiveCompletedFromISR/20 (xStreamBufferReceiveCompletedFromISR) @06b58460
  207. Type: function definition analyzed
  208. Visibility: force_output externally_visible no_reorder public
  209. References:
  210. Referring:
  211. Availability: available
  212. Function flags: body
  213. Called by:
  214. Calls: vPortSetBASEPRI/3 xTaskGenericNotifyFromISR/41 ulPortRaiseBASEPRI/2 vPortRaiseBASEPRI/1
  215. xStreamBufferSendCompletedFromISR/19 (xStreamBufferSendCompletedFromISR) @06b580e0
  216. Type: function definition analyzed
  217. Visibility: force_output externally_visible no_reorder public
  218. References:
  219. Referring:
  220. Availability: available
  221. Function flags: body
  222. Called by:
  223. Calls: vPortSetBASEPRI/3 xTaskGenericNotifyFromISR/41 ulPortRaiseBASEPRI/2 vPortRaiseBASEPRI/1
  224. xStreamBufferIsFull/18 (xStreamBufferIsFull) @06b508c0
  225. Type: function definition analyzed
  226. Visibility: force_output externally_visible no_reorder public
  227. References:
  228. Referring:
  229. Availability: available
  230. Function flags: body
  231. Called by:
  232. Calls: xStreamBufferSpacesAvailable/8 vPortRaiseBASEPRI/1
  233. xStreamBufferIsEmpty/17 (xStreamBufferIsEmpty) @06b50ee0
  234. Type: function definition analyzed
  235. Visibility: force_output externally_visible no_reorder public
  236. References:
  237. Referring:
  238. Availability: available
  239. Function flags: body
  240. Called by:
  241. Calls: vPortRaiseBASEPRI/1
  242. prvReadMessageFromBuffer/16 (prvReadMessageFromBuffer) @06b50b60
  243. Type: function definition analyzed
  244. Visibility: force_output no_reorder prevailing_def_ironly
  245. References:
  246. Referring:
  247. Availability: available
  248. Function flags: body
  249. Called by: xStreamBufferReceiveFromISR/15 xStreamBufferReceive/13
  250. Calls: prvReadBytesFromBuffer/22 prvReadBytesFromBuffer/22
  251. xStreamBufferReceiveFromISR/15 (xStreamBufferReceiveFromISR) @06b507e0
  252. Type: function definition analyzed
  253. Visibility: force_output externally_visible no_reorder public
  254. References:
  255. Referring:
  256. Availability: available
  257. Function flags: body
  258. Called by:
  259. Calls: vPortSetBASEPRI/3 xTaskGenericNotifyFromISR/41 ulPortRaiseBASEPRI/2 prvReadMessageFromBuffer/16 prvBytesInBuffer/23 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  260. xStreamBufferNextMessageLengthBytes/14 (xStreamBufferNextMessageLengthBytes) @06b50380
  261. Type: function definition analyzed
  262. Visibility: force_output externally_visible no_reorder public
  263. References:
  264. Referring:
  265. Availability: available
  266. Function flags: body
  267. Called by:
  268. Calls: vPortRaiseBASEPRI/1 prvReadBytesFromBuffer/22 prvBytesInBuffer/23 vPortRaiseBASEPRI/1
  269. xStreamBufferReceive/13 (xStreamBufferReceive) @06b04e00
  270. Type: function definition analyzed
  271. Visibility: force_output externally_visible no_reorder public
  272. References:
  273. Referring:
  274. Availability: available
  275. Function flags: body
  276. Called by:
  277. Calls: xTaskResumeAll/40 xTaskGenericNotify/39 vTaskSuspendAll/38 prvReadMessageFromBuffer/16 prvBytesInBuffer/23 prvBytesInBuffer/23 xTaskGenericNotifyWait/36 vPortExitCritical/32 xTaskGetCurrentTaskHandle/35 vPortRaiseBASEPRI/1 xTaskGenericNotifyStateClear/34 prvBytesInBuffer/23 vPortEnterCritical/31 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  278. prvWriteMessageToBuffer/12 (prvWriteMessageToBuffer) @06b04d20
  279. Type: function definition analyzed
  280. Visibility: force_output no_reorder prevailing_def_ironly
  281. References:
  282. Referring:
  283. Availability: available
  284. Function flags: body
  285. Called by: xStreamBufferSendFromISR/11 xStreamBufferSend/10
  286. Calls: prvWriteBytesToBuffer/21 prvWriteBytesToBuffer/21
  287. xStreamBufferSendFromISR/11 (xStreamBufferSendFromISR) @06b049a0
  288. Type: function definition analyzed
  289. Visibility: force_output externally_visible no_reorder public
  290. References:
  291. Referring:
  292. Availability: available
  293. Function flags: body
  294. Called by:
  295. Calls: vPortSetBASEPRI/3 xTaskGenericNotifyFromISR/41 ulPortRaiseBASEPRI/2 prvBytesInBuffer/23 prvWriteMessageToBuffer/12 xStreamBufferSpacesAvailable/8 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  296. xStreamBufferSend/10 (xStreamBufferSend) @06b04540
  297. Type: function definition analyzed
  298. Visibility: force_output externally_visible no_reorder public
  299. References:
  300. Referring:
  301. Availability: available
  302. Function flags: body
  303. Called by:
  304. Calls: xTaskResumeAll/40 xTaskGenericNotify/39 vTaskSuspendAll/38 prvBytesInBuffer/23 prvWriteMessageToBuffer/12 xStreamBufferSpacesAvailable/8 xTaskCheckForTimeOut/37 xTaskGenericNotifyWait/36 vPortExitCritical/32 vPortExitCritical/32 xTaskGetCurrentTaskHandle/35 vPortRaiseBASEPRI/1 xTaskGenericNotifyStateClear/34 xStreamBufferSpacesAvailable/8 vPortEnterCritical/31 vTaskSetTimeOutState/33 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  305. xStreamBufferBytesAvailable/9 (xStreamBufferBytesAvailable) @06afdd20
  306. Type: function definition analyzed
  307. Visibility: force_output externally_visible no_reorder public
  308. References:
  309. Referring:
  310. Availability: available
  311. Function flags: body
  312. Called by:
  313. Calls: prvBytesInBuffer/23 vPortRaiseBASEPRI/1
  314. xStreamBufferSpacesAvailable/8 (xStreamBufferSpacesAvailable) @06afd2a0
  315. Type: function definition analyzed
  316. Visibility: force_output externally_visible no_reorder public
  317. References:
  318. Referring:
  319. Availability: available
  320. Function flags: body
  321. Called by: xStreamBufferIsFull/18 xStreamBufferSendFromISR/11 xStreamBufferSend/10 xStreamBufferSend/10
  322. Calls: vPortRaiseBASEPRI/1
  323. xStreamBufferSetTriggerLevel/7 (xStreamBufferSetTriggerLevel) @06afdc40
  324. Type: function definition analyzed
  325. Visibility: force_output externally_visible no_reorder public
  326. References:
  327. Referring:
  328. Availability: available
  329. Function flags: body
  330. Called by:
  331. Calls: vPortRaiseBASEPRI/1
  332. xStreamBufferReset/6 (xStreamBufferReset) @06afd8c0
  333. Type: function definition analyzed
  334. Visibility: force_output externally_visible no_reorder public
  335. References:
  336. Referring:
  337. Availability: available
  338. Function flags: body
  339. Called by:
  340. Calls: vPortExitCritical/32 prvInitialiseNewStreamBuffer/24 vPortEnterCritical/31 vPortRaiseBASEPRI/1
  341. vStreamBufferDelete/5 (vStreamBufferDelete) @06afd540
  342. Type: function definition analyzed
  343. Visibility: force_output externally_visible no_reorder public
  344. References:
  345. Referring:
  346. Availability: available
  347. Function flags: body
  348. Called by:
  349. Calls: memset/30 vPortFree/29 vPortRaiseBASEPRI/1
  350. xStreamBufferGenericCreate/4 (xStreamBufferGenericCreate) @06afd1c0
  351. Type: function definition analyzed
  352. Visibility: force_output externally_visible no_reorder public
  353. References:
  354. Referring:
  355. Availability: available
  356. Function flags: body
  357. Called by:
  358. Calls: prvInitialiseNewStreamBuffer/24 pvPortMalloc/28 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  359. vPortSetBASEPRI/3 (vPortSetBASEPRI) @06a941c0
  360. Type: function definition analyzed
  361. Visibility: no_reorder prevailing_def_ironly
  362. References:
  363. Referring:
  364. Availability: local
  365. Function flags: body local
  366. Called by: xStreamBufferReceiveCompletedFromISR/20 xStreamBufferSendCompletedFromISR/19 xStreamBufferReceiveFromISR/15 xStreamBufferSendFromISR/11
  367. Calls:
  368. ulPortRaiseBASEPRI/2 (ulPortRaiseBASEPRI) @06a8dee0
  369. Type: function definition analyzed
  370. Visibility: no_reorder prevailing_def_ironly
  371. References:
  372. Referring:
  373. Availability: local
  374. Function flags: body local
  375. Called by: xStreamBufferReceiveCompletedFromISR/20 xStreamBufferSendCompletedFromISR/19 xStreamBufferReceiveFromISR/15 xStreamBufferSendFromISR/11
  376. Calls:
  377. vPortRaiseBASEPRI/1 (vPortRaiseBASEPRI) @06a8db60
  378. Type: function definition analyzed
  379. Visibility: no_reorder prevailing_def_ironly
  380. References:
  381. Referring:
  382. Availability: local
  383. Function flags: body local
  384. Called by: prvInitialiseNewStreamBuffer/24 prvReadBytesFromBuffer/22 prvReadBytesFromBuffer/22 prvReadBytesFromBuffer/22 prvWriteBytesToBuffer/21 prvWriteBytesToBuffer/21 prvWriteBytesToBuffer/21 xStreamBufferReceiveCompletedFromISR/20 xStreamBufferSendCompletedFromISR/19 xStreamBufferIsFull/18 xStreamBufferIsEmpty/17 xStreamBufferReceiveFromISR/15 xStreamBufferReceiveFromISR/15 xStreamBufferNextMessageLengthBytes/14 xStreamBufferNextMessageLengthBytes/14 xStreamBufferReceive/13 xStreamBufferReceive/13 xStreamBufferReceive/13 xStreamBufferSendFromISR/11 xStreamBufferSendFromISR/11 xStreamBufferSend/10 xStreamBufferSend/10 xStreamBufferSend/10 xStreamBufferSend/10 xStreamBufferBytesAvailable/9 xStreamBufferSpacesAvailable/8 xStreamBufferSetTriggerLevel/7 xStreamBufferReset/6 vStreamBufferDelete/5 xStreamBufferGenericCreate/4 xStreamBufferGenericCreate/4 xStreamBufferGenericCreate/4
  385. Calls:
  386. ucStreamBufferGetStreamBufferType (struct StreamBufferDef_t * xStreamBuffer)
  387. {
  388. uint8_t D.6586;
  389. <bb 2> :
  390. _1 = xStreamBuffer->ucFlags;
  391. D.6586 = _1 & 1;
  392. <bb 3> :
  393. <L0>:
  394. return D.6586;
  395. }
  396. vStreamBufferSetStreamBufferNumber (struct StreamBufferDef_t * xStreamBuffer, UBaseType_t uxStreamBufferNumber)
  397. {
  398. <bb 2> :
  399. xStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber;
  400. return;
  401. }
  402. uxStreamBufferGetStreamBufferNumber (struct StreamBufferDef_t * xStreamBuffer)
  403. {
  404. UBaseType_t D.6584;
  405. <bb 2> :
  406. D.6584 = xStreamBuffer->uxStreamBufferNumber;
  407. <bb 3> :
  408. <L0>:
  409. return D.6584;
  410. }
  411. prvInitialiseNewStreamBuffer (struct StreamBuffer_t * const pxStreamBuffer, uint8_t * const pucBuffer, size_t xBufferSizeBytes, size_t xTriggerLevelBytes, uint8_t ucFlags)
  412. {
  413. const BaseType_t xWriteValue;
  414. <bb 2> :
  415. xWriteValue = 85;
  416. _1 = memset (pucBuffer, xWriteValue, xBufferSizeBytes);
  417. if (pucBuffer != _1)
  418. goto <bb 3>; [INV]
  419. else
  420. goto <bb 5>; [INV]
  421. <bb 3> :
  422. vPortRaiseBASEPRI ();
  423. <bb 4> :
  424. goto <bb 4>; [INV]
  425. <bb 5> :
  426. memset (pxStreamBuffer, 0, 36);
  427. pxStreamBuffer->pucBuffer = pucBuffer;
  428. pxStreamBuffer->xLength = xBufferSizeBytes;
  429. pxStreamBuffer->xTriggerLevelBytes = xTriggerLevelBytes;
  430. pxStreamBuffer->ucFlags = ucFlags;
  431. return;
  432. }
  433. prvBytesInBuffer (const struct StreamBuffer_t * const pxStreamBuffer)
  434. {
  435. size_t xCount;
  436. size_t D.6580;
  437. unsigned int D.6576;
  438. <bb 2> :
  439. _1 = pxStreamBuffer->xLength;
  440. _2 = pxStreamBuffer->xHead;
  441. xCount = _1 + _2;
  442. D.6576 = pxStreamBuffer->xTail;
  443. xCount = xCount - D.6576;
  444. _3 = pxStreamBuffer->xLength;
  445. if (xCount >= _3)
  446. goto <bb 3>; [INV]
  447. else
  448. goto <bb 4>; [INV]
  449. <bb 3> :
  450. _4 = pxStreamBuffer->xLength;
  451. xCount = xCount - _4;
  452. <bb 4> :
  453. D.6580 = xCount;
  454. <bb 5> :
  455. <L3>:
  456. return D.6580;
  457. }
  458. prvReadBytesFromBuffer (struct StreamBuffer_t * pxStreamBuffer, uint8_t * pucData, size_t xCount, size_t xTail)
  459. {
  460. size_t xFirstLength;
  461. size_t D.6574;
  462. <bb 2> :
  463. if (xCount == 0)
  464. goto <bb 3>; [INV]
  465. else
  466. goto <bb 5>; [INV]
  467. <bb 3> :
  468. vPortRaiseBASEPRI ();
  469. <bb 4> :
  470. goto <bb 4>; [INV]
  471. <bb 5> :
  472. _1 = pxStreamBuffer->xLength;
  473. _2 = _1 - xTail;
  474. xFirstLength = MIN_EXPR <xCount, _2>;
  475. if (xFirstLength > xCount)
  476. goto <bb 6>; [INV]
  477. else
  478. goto <bb 8>; [INV]
  479. <bb 6> :
  480. vPortRaiseBASEPRI ();
  481. <bb 7> :
  482. goto <bb 7>; [INV]
  483. <bb 8> :
  484. _3 = xTail + xFirstLength;
  485. _4 = pxStreamBuffer->xLength;
  486. if (_3 > _4)
  487. goto <bb 9>; [INV]
  488. else
  489. goto <bb 11>; [INV]
  490. <bb 9> :
  491. vPortRaiseBASEPRI ();
  492. <bb 10> :
  493. goto <bb 10>; [INV]
  494. <bb 11> :
  495. _5 = pxStreamBuffer->pucBuffer;
  496. _6 = _5 + xTail;
  497. memcpy (pucData, _6, xFirstLength);
  498. if (xCount > xFirstLength)
  499. goto <bb 12>; [INV]
  500. else
  501. goto <bb 13>; [INV]
  502. <bb 12> :
  503. _7 = pucData + xFirstLength;
  504. _8 = pxStreamBuffer->pucBuffer;
  505. _9 = xCount - xFirstLength;
  506. memcpy (_7, _8, _9);
  507. <bb 13> :
  508. xTail = xTail + xCount;
  509. _10 = pxStreamBuffer->xLength;
  510. if (xTail >= _10)
  511. goto <bb 14>; [INV]
  512. else
  513. goto <bb 15>; [INV]
  514. <bb 14> :
  515. _11 = pxStreamBuffer->xLength;
  516. xTail = xTail - _11;
  517. <bb 15> :
  518. D.6574 = xTail;
  519. <bb 16> :
  520. <L14>:
  521. return D.6574;
  522. }
  523. prvWriteBytesToBuffer (struct StreamBuffer_t * const pxStreamBuffer, const uint8_t * pucData, size_t xCount, size_t xHead)
  524. {
  525. size_t xFirstLength;
  526. size_t D.6561;
  527. <bb 2> :
  528. if (xCount == 0)
  529. goto <bb 3>; [INV]
  530. else
  531. goto <bb 5>; [INV]
  532. <bb 3> :
  533. vPortRaiseBASEPRI ();
  534. <bb 4> :
  535. goto <bb 4>; [INV]
  536. <bb 5> :
  537. _1 = pxStreamBuffer->xLength;
  538. _2 = _1 - xHead;
  539. xFirstLength = MIN_EXPR <xCount, _2>;
  540. _3 = xHead + xFirstLength;
  541. _4 = pxStreamBuffer->xLength;
  542. if (_3 > _4)
  543. goto <bb 6>; [INV]
  544. else
  545. goto <bb 8>; [INV]
  546. <bb 6> :
  547. vPortRaiseBASEPRI ();
  548. <bb 7> :
  549. goto <bb 7>; [INV]
  550. <bb 8> :
  551. _5 = pxStreamBuffer->pucBuffer;
  552. _6 = _5 + xHead;
  553. memcpy (_6, pucData, xFirstLength);
  554. if (xCount > xFirstLength)
  555. goto <bb 9>; [INV]
  556. else
  557. goto <bb 13>; [INV]
  558. <bb 9> :
  559. _7 = xCount - xFirstLength;
  560. _8 = pxStreamBuffer->xLength;
  561. if (_7 > _8)
  562. goto <bb 10>; [INV]
  563. else
  564. goto <bb 12>; [INV]
  565. <bb 10> :
  566. vPortRaiseBASEPRI ();
  567. <bb 11> :
  568. goto <bb 11>; [INV]
  569. <bb 12> :
  570. _9 = pxStreamBuffer->pucBuffer;
  571. _10 = pucData + xFirstLength;
  572. _11 = xCount - xFirstLength;
  573. memcpy (_9, _10, _11);
  574. <bb 13> :
  575. xHead = xHead + xCount;
  576. _12 = pxStreamBuffer->xLength;
  577. if (xHead >= _12)
  578. goto <bb 14>; [INV]
  579. else
  580. goto <bb 15>; [INV]
  581. <bb 14> :
  582. _13 = pxStreamBuffer->xLength;
  583. xHead = xHead - _13;
  584. <bb 15> :
  585. D.6561 = xHead;
  586. <bb 16> :
  587. <L15>:
  588. return D.6561;
  589. }
  590. xStreamBufferReceiveCompletedFromISR (struct StreamBufferDef_t * xStreamBuffer, BaseType_t * pxHigherPriorityTaskWoken)
  591. {
  592. UBaseType_t uxSavedInterruptStatus;
  593. BaseType_t xReturn;
  594. struct StreamBuffer_t * const pxStreamBuffer;
  595. BaseType_t D.6547;
  596. <bb 2> :
  597. pxStreamBuffer = xStreamBuffer;
  598. if (pxStreamBuffer == 0B)
  599. goto <bb 3>; [INV]
  600. else
  601. goto <bb 5>; [INV]
  602. <bb 3> :
  603. vPortRaiseBASEPRI ();
  604. <bb 4> :
  605. goto <bb 4>; [INV]
  606. <bb 5> :
  607. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  608. _1 = pxStreamBuffer->xTaskWaitingToSend;
  609. if (_1 != 0B)
  610. goto <bb 6>; [INV]
  611. else
  612. goto <bb 7>; [INV]
  613. <bb 6> :
  614. _2 = pxStreamBuffer->xTaskWaitingToSend;
  615. xTaskGenericNotifyFromISR (_2, 0, 0, 0, 0B, pxHigherPriorityTaskWoken);
  616. pxStreamBuffer->xTaskWaitingToSend = 0B;
  617. xReturn = 1;
  618. goto <bb 8>; [INV]
  619. <bb 7> :
  620. xReturn = 0;
  621. <bb 8> :
  622. vPortSetBASEPRI (uxSavedInterruptStatus);
  623. D.6547 = xReturn;
  624. <bb 9> :
  625. <L6>:
  626. return D.6547;
  627. }
  628. xStreamBufferSendCompletedFromISR (struct StreamBufferDef_t * xStreamBuffer, BaseType_t * pxHigherPriorityTaskWoken)
  629. {
  630. UBaseType_t uxSavedInterruptStatus;
  631. BaseType_t xReturn;
  632. struct StreamBuffer_t * const pxStreamBuffer;
  633. BaseType_t D.6540;
  634. <bb 2> :
  635. pxStreamBuffer = xStreamBuffer;
  636. if (pxStreamBuffer == 0B)
  637. goto <bb 3>; [INV]
  638. else
  639. goto <bb 5>; [INV]
  640. <bb 3> :
  641. vPortRaiseBASEPRI ();
  642. <bb 4> :
  643. goto <bb 4>; [INV]
  644. <bb 5> :
  645. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  646. _1 = pxStreamBuffer->xTaskWaitingToReceive;
  647. if (_1 != 0B)
  648. goto <bb 6>; [INV]
  649. else
  650. goto <bb 7>; [INV]
  651. <bb 6> :
  652. _2 = pxStreamBuffer->xTaskWaitingToReceive;
  653. xTaskGenericNotifyFromISR (_2, 0, 0, 0, 0B, pxHigherPriorityTaskWoken);
  654. pxStreamBuffer->xTaskWaitingToReceive = 0B;
  655. xReturn = 1;
  656. goto <bb 8>; [INV]
  657. <bb 7> :
  658. xReturn = 0;
  659. <bb 8> :
  660. vPortSetBASEPRI (uxSavedInterruptStatus);
  661. D.6540 = xReturn;
  662. <bb 9> :
  663. <L6>:
  664. return D.6540;
  665. }
  666. xStreamBufferIsFull (struct StreamBufferDef_t * xStreamBuffer)
  667. {
  668. const struct StreamBuffer_t * const pxStreamBuffer;
  669. size_t xBytesToStoreMessageLength;
  670. BaseType_t xReturn;
  671. BaseType_t D.6533;
  672. <bb 2> :
  673. pxStreamBuffer = xStreamBuffer;
  674. if (pxStreamBuffer == 0B)
  675. goto <bb 3>; [INV]
  676. else
  677. goto <bb 5>; [INV]
  678. <bb 3> :
  679. vPortRaiseBASEPRI ();
  680. <bb 4> :
  681. goto <bb 4>; [INV]
  682. <bb 5> :
  683. _1 = pxStreamBuffer->ucFlags;
  684. _2 = (int) _1;
  685. _3 = _2 & 1;
  686. if (_3 != 0)
  687. goto <bb 6>; [INV]
  688. else
  689. goto <bb 7>; [INV]
  690. <bb 6> :
  691. xBytesToStoreMessageLength = 4;
  692. goto <bb 8>; [INV]
  693. <bb 7> :
  694. xBytesToStoreMessageLength = 0;
  695. <bb 8> :
  696. _4 = xStreamBufferSpacesAvailable (xStreamBuffer);
  697. if (xBytesToStoreMessageLength >= _4)
  698. goto <bb 9>; [INV]
  699. else
  700. goto <bb 10>; [INV]
  701. <bb 9> :
  702. xReturn = 1;
  703. goto <bb 11>; [INV]
  704. <bb 10> :
  705. xReturn = 0;
  706. <bb 11> :
  707. D.6533 = xReturn;
  708. <bb 12> :
  709. <L9>:
  710. return D.6533;
  711. }
  712. xStreamBufferIsEmpty (struct StreamBufferDef_t * xStreamBuffer)
  713. {
  714. size_t xTail;
  715. BaseType_t xReturn;
  716. const struct StreamBuffer_t * const pxStreamBuffer;
  717. BaseType_t D.6523;
  718. <bb 2> :
  719. pxStreamBuffer = xStreamBuffer;
  720. if (pxStreamBuffer == 0B)
  721. goto <bb 3>; [INV]
  722. else
  723. goto <bb 5>; [INV]
  724. <bb 3> :
  725. vPortRaiseBASEPRI ();
  726. <bb 4> :
  727. goto <bb 4>; [INV]
  728. <bb 5> :
  729. xTail = pxStreamBuffer->xTail;
  730. _1 = pxStreamBuffer->xHead;
  731. if (xTail == _1)
  732. goto <bb 6>; [INV]
  733. else
  734. goto <bb 7>; [INV]
  735. <bb 6> :
  736. xReturn = 1;
  737. goto <bb 8>; [INV]
  738. <bb 7> :
  739. xReturn = 0;
  740. <bb 8> :
  741. D.6523 = xReturn;
  742. <bb 9> :
  743. <L6>:
  744. return D.6523;
  745. }
  746. prvReadMessageFromBuffer (struct StreamBuffer_t * pxStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, size_t xBytesAvailable)
  747. {
  748. size_t xNextTail;
  749. size_t xTempNextMessageLength;
  750. size_t xNextMessageLength;
  751. size_t xCount;
  752. size_t D.6515;
  753. <bb 2> :
  754. xNextTail = pxStreamBuffer->xTail;
  755. _1 = pxStreamBuffer->ucFlags;
  756. _2 = (int) _1;
  757. _3 = _2 & 1;
  758. if (_3 != 0)
  759. goto <bb 3>; [INV]
  760. else
  761. goto <bb 5>; [INV]
  762. <bb 3> :
  763. xNextTail = prvReadBytesFromBuffer (pxStreamBuffer, &xTempNextMessageLength, 4, xNextTail);
  764. xNextMessageLength = xTempNextMessageLength;
  765. xBytesAvailable = xBytesAvailable + 4294967292;
  766. if (xNextMessageLength > xBufferLengthBytes)
  767. goto <bb 4>; [INV]
  768. else
  769. goto <bb 6>; [INV]
  770. <bb 4> :
  771. xNextMessageLength = 0;
  772. goto <bb 6>; [INV]
  773. <bb 5> :
  774. xNextMessageLength = xBufferLengthBytes;
  775. <bb 6> :
  776. xCount = MIN_EXPR <xBytesAvailable, xNextMessageLength>;
  777. if (xCount != 0)
  778. goto <bb 7>; [INV]
  779. else
  780. goto <bb 8>; [INV]
  781. <bb 7> :
  782. _4 = prvReadBytesFromBuffer (pxStreamBuffer, pvRxData, xCount, xNextTail);
  783. pxStreamBuffer->xTail = _4;
  784. <bb 8> :
  785. D.6515 = xCount;
  786. xTempNextMessageLength = {CLOBBER};
  787. <bb 9> :
  788. <L9>:
  789. return D.6515;
  790. }
  791. xStreamBufferReceiveFromISR (struct StreamBufferDef_t * xStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken)
  792. {
  793. UBaseType_t uxSavedInterruptStatus;
  794. size_t xBytesToStoreMessageLength;
  795. size_t xBytesAvailable;
  796. size_t xReceivedLength;
  797. struct StreamBuffer_t * const pxStreamBuffer;
  798. size_t D.6505;
  799. <bb 2> :
  800. pxStreamBuffer = xStreamBuffer;
  801. xReceivedLength = 0;
  802. if (pvRxData == 0B)
  803. goto <bb 3>; [INV]
  804. else
  805. goto <bb 5>; [INV]
  806. <bb 3> :
  807. vPortRaiseBASEPRI ();
  808. <bb 4> :
  809. goto <bb 4>; [INV]
  810. <bb 5> :
  811. if (pxStreamBuffer == 0B)
  812. goto <bb 6>; [INV]
  813. else
  814. goto <bb 8>; [INV]
  815. <bb 6> :
  816. vPortRaiseBASEPRI ();
  817. <bb 7> :
  818. goto <bb 7>; [INV]
  819. <bb 8> :
  820. _1 = pxStreamBuffer->ucFlags;
  821. _2 = (int) _1;
  822. _3 = _2 & 1;
  823. if (_3 != 0)
  824. goto <bb 9>; [INV]
  825. else
  826. goto <bb 10>; [INV]
  827. <bb 9> :
  828. xBytesToStoreMessageLength = 4;
  829. goto <bb 11>; [INV]
  830. <bb 10> :
  831. xBytesToStoreMessageLength = 0;
  832. <bb 11> :
  833. xBytesAvailable = prvBytesInBuffer (pxStreamBuffer);
  834. if (xBytesAvailable > xBytesToStoreMessageLength)
  835. goto <bb 12>; [INV]
  836. else
  837. goto <bb 16>; [INV]
  838. <bb 12> :
  839. xReceivedLength = prvReadMessageFromBuffer (pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable);
  840. if (xReceivedLength != 0)
  841. goto <bb 13>; [INV]
  842. else
  843. goto <bb 16>; [INV]
  844. <bb 13> :
  845. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  846. _4 = pxStreamBuffer->xTaskWaitingToSend;
  847. if (_4 != 0B)
  848. goto <bb 14>; [INV]
  849. else
  850. goto <bb 15>; [INV]
  851. <bb 14> :
  852. _5 = pxStreamBuffer->xTaskWaitingToSend;
  853. xTaskGenericNotifyFromISR (_5, 0, 0, 0, 0B, pxHigherPriorityTaskWoken);
  854. pxStreamBuffer->xTaskWaitingToSend = 0B;
  855. <bb 15> :
  856. vPortSetBASEPRI (uxSavedInterruptStatus);
  857. <bb 16> :
  858. D.6505 = xReceivedLength;
  859. <bb 17> :
  860. <L17>:
  861. return D.6505;
  862. }
  863. xStreamBufferNextMessageLengthBytes (struct StreamBufferDef_t * xStreamBuffer)
  864. {
  865. size_t xTempReturn;
  866. size_t xBytesAvailable;
  867. size_t xReturn;
  868. struct StreamBuffer_t * const pxStreamBuffer;
  869. size_t D.6487;
  870. <bb 2> :
  871. pxStreamBuffer = xStreamBuffer;
  872. if (pxStreamBuffer == 0B)
  873. goto <bb 3>; [INV]
  874. else
  875. goto <bb 5>; [INV]
  876. <bb 3> :
  877. vPortRaiseBASEPRI ();
  878. <bb 4> :
  879. goto <bb 4>; [INV]
  880. <bb 5> :
  881. _1 = pxStreamBuffer->ucFlags;
  882. _2 = (int) _1;
  883. _3 = _2 & 1;
  884. if (_3 != 0)
  885. goto <bb 6>; [INV]
  886. else
  887. goto <bb 12>; [INV]
  888. <bb 6> :
  889. xBytesAvailable = prvBytesInBuffer (pxStreamBuffer);
  890. if (xBytesAvailable > 4)
  891. goto <bb 7>; [INV]
  892. else
  893. goto <bb 8>; [INV]
  894. <bb 7> :
  895. _4 = pxStreamBuffer->xTail;
  896. prvReadBytesFromBuffer (pxStreamBuffer, &xTempReturn, 4, _4);
  897. xReturn = xTempReturn;
  898. goto <bb 13>; [INV]
  899. <bb 8> :
  900. if (xBytesAvailable != 0)
  901. goto <bb 9>; [INV]
  902. else
  903. goto <bb 11>; [INV]
  904. <bb 9> :
  905. vPortRaiseBASEPRI ();
  906. <bb 10> :
  907. goto <bb 10>; [INV]
  908. <bb 11> :
  909. xReturn = 0;
  910. goto <bb 13>; [INV]
  911. <bb 12> :
  912. xReturn = 0;
  913. <bb 13> :
  914. D.6487 = xReturn;
  915. xTempReturn = {CLOBBER};
  916. <bb 14> :
  917. <L13>:
  918. return D.6487;
  919. }
  920. xStreamBufferReceive (struct StreamBufferDef_t * xStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait)
  921. {
  922. size_t xBytesToStoreMessageLength;
  923. size_t xBytesAvailable;
  924. size_t xReceivedLength;
  925. struct StreamBuffer_t * const pxStreamBuffer;
  926. size_t D.6475;
  927. <bb 2> :
  928. pxStreamBuffer = xStreamBuffer;
  929. xReceivedLength = 0;
  930. if (pvRxData == 0B)
  931. goto <bb 3>; [INV]
  932. else
  933. goto <bb 5>; [INV]
  934. <bb 3> :
  935. vPortRaiseBASEPRI ();
  936. <bb 4> :
  937. goto <bb 4>; [INV]
  938. <bb 5> :
  939. if (pxStreamBuffer == 0B)
  940. goto <bb 6>; [INV]
  941. else
  942. goto <bb 8>; [INV]
  943. <bb 6> :
  944. vPortRaiseBASEPRI ();
  945. <bb 7> :
  946. goto <bb 7>; [INV]
  947. <bb 8> :
  948. _1 = pxStreamBuffer->ucFlags;
  949. _2 = (int) _1;
  950. _3 = _2 & 1;
  951. if (_3 != 0)
  952. goto <bb 9>; [INV]
  953. else
  954. goto <bb 10>; [INV]
  955. <bb 9> :
  956. xBytesToStoreMessageLength = 4;
  957. goto <bb 11>; [INV]
  958. <bb 10> :
  959. xBytesToStoreMessageLength = 0;
  960. <bb 11> :
  961. if (xTicksToWait != 0)
  962. goto <bb 12>; [INV]
  963. else
  964. goto <bb 19>; [INV]
  965. <bb 12> :
  966. vPortEnterCritical ();
  967. xBytesAvailable = prvBytesInBuffer (pxStreamBuffer);
  968. if (xBytesAvailable <= xBytesToStoreMessageLength)
  969. goto <bb 13>; [INV]
  970. else
  971. goto <bb 17>; [INV]
  972. <bb 13> :
  973. xTaskGenericNotifyStateClear (0B, 0);
  974. _4 = pxStreamBuffer->xTaskWaitingToReceive;
  975. if (_4 != 0B)
  976. goto <bb 14>; [INV]
  977. else
  978. goto <bb 16>; [INV]
  979. <bb 14> :
  980. vPortRaiseBASEPRI ();
  981. <bb 15> :
  982. goto <bb 15>; [INV]
  983. <bb 16> :
  984. _5 = xTaskGetCurrentTaskHandle ();
  985. pxStreamBuffer->xTaskWaitingToReceive = _5;
  986. <bb 17> :
  987. vPortExitCritical ();
  988. if (xBytesAvailable <= xBytesToStoreMessageLength)
  989. goto <bb 18>; [INV]
  990. else
  991. goto <bb 20>; [INV]
  992. <bb 18> :
  993. xTaskGenericNotifyWait (0, 0, 0, 0B, xTicksToWait);
  994. pxStreamBuffer->xTaskWaitingToReceive = 0B;
  995. xBytesAvailable = prvBytesInBuffer (pxStreamBuffer);
  996. goto <bb 20>; [INV]
  997. <bb 19> :
  998. xBytesAvailable = prvBytesInBuffer (pxStreamBuffer);
  999. <bb 20> :
  1000. if (xBytesAvailable > xBytesToStoreMessageLength)
  1001. goto <bb 21>; [INV]
  1002. else
  1003. goto <bb 25>; [INV]
  1004. <bb 21> :
  1005. xReceivedLength = prvReadMessageFromBuffer (pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable);
  1006. if (xReceivedLength != 0)
  1007. goto <bb 22>; [INV]
  1008. else
  1009. goto <bb 25>; [INV]
  1010. <bb 22> :
  1011. vTaskSuspendAll ();
  1012. _6 = pxStreamBuffer->xTaskWaitingToSend;
  1013. if (_6 != 0B)
  1014. goto <bb 23>; [INV]
  1015. else
  1016. goto <bb 24>; [INV]
  1017. <bb 23> :
  1018. _7 = pxStreamBuffer->xTaskWaitingToSend;
  1019. xTaskGenericNotify (_7, 0, 0, 0, 0B);
  1020. pxStreamBuffer->xTaskWaitingToSend = 0B;
  1021. <bb 24> :
  1022. xTaskResumeAll ();
  1023. <bb 25> :
  1024. D.6475 = xReceivedLength;
  1025. <bb 26> :
  1026. <L29>:
  1027. return D.6475;
  1028. }
  1029. prvWriteMessageToBuffer (struct StreamBuffer_t * const pxStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, size_t xSpace, size_t xRequiredSpace)
  1030. {
  1031. size_t xNextHead;
  1032. size_t D.6447;
  1033. <bb 2> :
  1034. xNextHead = pxStreamBuffer->xHead;
  1035. _1 = pxStreamBuffer->ucFlags;
  1036. _2 = (int) _1;
  1037. _3 = _2 & 1;
  1038. if (_3 != 0)
  1039. goto <bb 3>; [INV]
  1040. else
  1041. goto <bb 6>; [INV]
  1042. <bb 3> :
  1043. if (xSpace >= xRequiredSpace)
  1044. goto <bb 4>; [INV]
  1045. else
  1046. goto <bb 5>; [INV]
  1047. <bb 4> :
  1048. xNextHead = prvWriteBytesToBuffer (pxStreamBuffer, &xDataLengthBytes, 4, xNextHead);
  1049. goto <bb 7>; [INV]
  1050. <bb 5> :
  1051. xDataLengthBytes = 0;
  1052. goto <bb 7>; [INV]
  1053. <bb 6> :
  1054. xDataLengthBytes.2_4 = xDataLengthBytes;
  1055. _5 = MIN_EXPR <xSpace, xDataLengthBytes.2_4>;
  1056. xDataLengthBytes = _5;
  1057. <bb 7> :
  1058. xDataLengthBytes.3_6 = xDataLengthBytes;
  1059. if (xDataLengthBytes.3_6 != 0)
  1060. goto <bb 8>; [INV]
  1061. else
  1062. goto <bb 9>; [INV]
  1063. <bb 8> :
  1064. xDataLengthBytes.4_7 = xDataLengthBytes;
  1065. _8 = prvWriteBytesToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes.4_7, xNextHead);
  1066. pxStreamBuffer->xHead = _8;
  1067. <bb 9> :
  1068. D.6447 = xDataLengthBytes;
  1069. <bb 10> :
  1070. <L8>:
  1071. return D.6447;
  1072. }
  1073. xStreamBufferSendFromISR (struct StreamBufferDef_t * xStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken)
  1074. {
  1075. UBaseType_t uxSavedInterruptStatus;
  1076. size_t xRequiredSpace;
  1077. size_t xSpace;
  1078. size_t xReturn;
  1079. struct StreamBuffer_t * const pxStreamBuffer;
  1080. size_t D.6435;
  1081. <bb 2> :
  1082. pxStreamBuffer = xStreamBuffer;
  1083. xRequiredSpace = xDataLengthBytes;
  1084. if (pvTxData == 0B)
  1085. goto <bb 3>; [INV]
  1086. else
  1087. goto <bb 5>; [INV]
  1088. <bb 3> :
  1089. vPortRaiseBASEPRI ();
  1090. <bb 4> :
  1091. goto <bb 4>; [INV]
  1092. <bb 5> :
  1093. if (pxStreamBuffer == 0B)
  1094. goto <bb 6>; [INV]
  1095. else
  1096. goto <bb 8>; [INV]
  1097. <bb 6> :
  1098. vPortRaiseBASEPRI ();
  1099. <bb 7> :
  1100. goto <bb 7>; [INV]
  1101. <bb 8> :
  1102. _1 = pxStreamBuffer->ucFlags;
  1103. _2 = (int) _1;
  1104. _3 = _2 & 1;
  1105. if (_3 != 0)
  1106. goto <bb 9>; [INV]
  1107. else
  1108. goto <bb 10>; [INV]
  1109. <bb 9> :
  1110. xRequiredSpace = xRequiredSpace + 4;
  1111. <bb 10> :
  1112. xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer);
  1113. xReturn = prvWriteMessageToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace);
  1114. if (xReturn != 0)
  1115. goto <bb 11>; [INV]
  1116. else
  1117. goto <bb 15>; [INV]
  1118. <bb 11> :
  1119. _4 = prvBytesInBuffer (pxStreamBuffer);
  1120. _5 = pxStreamBuffer->xTriggerLevelBytes;
  1121. if (_4 >= _5)
  1122. goto <bb 12>; [INV]
  1123. else
  1124. goto <bb 15>; [INV]
  1125. <bb 12> :
  1126. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  1127. _6 = pxStreamBuffer->xTaskWaitingToReceive;
  1128. if (_6 != 0B)
  1129. goto <bb 13>; [INV]
  1130. else
  1131. goto <bb 14>; [INV]
  1132. <bb 13> :
  1133. _7 = pxStreamBuffer->xTaskWaitingToReceive;
  1134. xTaskGenericNotifyFromISR (_7, 0, 0, 0, 0B, pxHigherPriorityTaskWoken);
  1135. pxStreamBuffer->xTaskWaitingToReceive = 0B;
  1136. <bb 14> :
  1137. vPortSetBASEPRI (uxSavedInterruptStatus);
  1138. <bb 15> :
  1139. D.6435 = xReturn;
  1140. <bb 16> :
  1141. <L17>:
  1142. return D.6435;
  1143. }
  1144. xStreamBufferSend (struct StreamBufferDef_t * xStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait)
  1145. {
  1146. size_t xMaxReportedSpace;
  1147. struct TimeOut_t xTimeOut;
  1148. size_t xRequiredSpace;
  1149. size_t xSpace;
  1150. size_t xReturn;
  1151. struct StreamBuffer_t * const pxStreamBuffer;
  1152. size_t D.6417;
  1153. <bb 2> :
  1154. pxStreamBuffer = xStreamBuffer;
  1155. xSpace = 0;
  1156. xRequiredSpace = xDataLengthBytes;
  1157. xMaxReportedSpace = 0;
  1158. if (pvTxData == 0B)
  1159. goto <bb 3>; [INV]
  1160. else
  1161. goto <bb 5>; [INV]
  1162. <bb 3> :
  1163. vPortRaiseBASEPRI ();
  1164. <bb 4> :
  1165. goto <bb 4>; [INV]
  1166. <bb 5> :
  1167. if (pxStreamBuffer == 0B)
  1168. goto <bb 6>; [INV]
  1169. else
  1170. goto <bb 8>; [INV]
  1171. <bb 6> :
  1172. vPortRaiseBASEPRI ();
  1173. <bb 7> :
  1174. goto <bb 7>; [INV]
  1175. <bb 8> :
  1176. _1 = pxStreamBuffer->xLength;
  1177. xMaxReportedSpace = _1 + 4294967295;
  1178. _2 = pxStreamBuffer->ucFlags;
  1179. _3 = (int) _2;
  1180. _4 = _3 & 1;
  1181. if (_4 != 0)
  1182. goto <bb 9>; [INV]
  1183. else
  1184. goto <bb 14>; [INV]
  1185. <bb 9> :
  1186. xRequiredSpace = xRequiredSpace + 4;
  1187. if (xRequiredSpace <= xDataLengthBytes)
  1188. goto <bb 10>; [INV]
  1189. else
  1190. goto <bb 12>; [INV]
  1191. <bb 10> :
  1192. vPortRaiseBASEPRI ();
  1193. <bb 11> :
  1194. goto <bb 11>; [INV]
  1195. <bb 12> :
  1196. if (xRequiredSpace > xMaxReportedSpace)
  1197. goto <bb 13>; [INV]
  1198. else
  1199. goto <bb 16>; [INV]
  1200. <bb 13> :
  1201. xTicksToWait = 0;
  1202. goto <bb 16>; [INV]
  1203. <bb 14> :
  1204. if (xRequiredSpace > xMaxReportedSpace)
  1205. goto <bb 15>; [INV]
  1206. else
  1207. goto <bb 16>; [INV]
  1208. <bb 15> :
  1209. xRequiredSpace = xMaxReportedSpace;
  1210. <bb 16> :
  1211. xTicksToWait.0_5 = xTicksToWait;
  1212. if (xTicksToWait.0_5 != 0)
  1213. goto <bb 17>; [INV]
  1214. else
  1215. goto <bb 26>; [INV]
  1216. <bb 17> :
  1217. vTaskSetTimeOutState (&xTimeOut);
  1218. <bb 18> :
  1219. vPortEnterCritical ();
  1220. xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer);
  1221. if (xSpace < xRequiredSpace)
  1222. goto <bb 19>; [INV]
  1223. else
  1224. goto <bb 23>; [INV]
  1225. <bb 19> :
  1226. xTaskGenericNotifyStateClear (0B, 0);
  1227. _6 = pxStreamBuffer->xTaskWaitingToSend;
  1228. if (_6 != 0B)
  1229. goto <bb 20>; [INV]
  1230. else
  1231. goto <bb 22>; [INV]
  1232. <bb 20> :
  1233. vPortRaiseBASEPRI ();
  1234. <bb 21> :
  1235. goto <bb 21>; [INV]
  1236. <bb 22> :
  1237. _7 = xTaskGetCurrentTaskHandle ();
  1238. pxStreamBuffer->xTaskWaitingToSend = _7;
  1239. goto <bb 24>; [INV]
  1240. <bb 23> :
  1241. vPortExitCritical ();
  1242. goto <bb 25>; [INV]
  1243. <bb 24> :
  1244. vPortExitCritical ();
  1245. xTicksToWait.1_8 = xTicksToWait;
  1246. xTaskGenericNotifyWait (0, 0, 0, 0B, xTicksToWait.1_8);
  1247. pxStreamBuffer->xTaskWaitingToSend = 0B;
  1248. _9 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  1249. if (_9 == 0)
  1250. goto <bb 18>; [INV]
  1251. else
  1252. goto <bb 25>; [INV]
  1253. <bb 25> :
  1254. <bb 26> :
  1255. if (xSpace == 0)
  1256. goto <bb 27>; [INV]
  1257. else
  1258. goto <bb 28>; [INV]
  1259. <bb 27> :
  1260. xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer);
  1261. <bb 28> :
  1262. xReturn = prvWriteMessageToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace);
  1263. if (xReturn != 0)
  1264. goto <bb 29>; [INV]
  1265. else
  1266. goto <bb 33>; [INV]
  1267. <bb 29> :
  1268. _10 = prvBytesInBuffer (pxStreamBuffer);
  1269. _11 = pxStreamBuffer->xTriggerLevelBytes;
  1270. if (_10 >= _11)
  1271. goto <bb 30>; [INV]
  1272. else
  1273. goto <bb 33>; [INV]
  1274. <bb 30> :
  1275. vTaskSuspendAll ();
  1276. _12 = pxStreamBuffer->xTaskWaitingToReceive;
  1277. if (_12 != 0B)
  1278. goto <bb 31>; [INV]
  1279. else
  1280. goto <bb 32>; [INV]
  1281. <bb 31> :
  1282. _13 = pxStreamBuffer->xTaskWaitingToReceive;
  1283. xTaskGenericNotify (_13, 0, 0, 0, 0B);
  1284. pxStreamBuffer->xTaskWaitingToReceive = 0B;
  1285. <bb 32> :
  1286. xTaskResumeAll ();
  1287. <bb 33> :
  1288. D.6417 = xReturn;
  1289. xTimeOut = {CLOBBER};
  1290. <bb 34> :
  1291. <L41>:
  1292. return D.6417;
  1293. }
  1294. xStreamBufferBytesAvailable (struct StreamBufferDef_t * xStreamBuffer)
  1295. {
  1296. size_t xReturn;
  1297. const struct StreamBuffer_t * const pxStreamBuffer;
  1298. size_t D.6381;
  1299. <bb 2> :
  1300. pxStreamBuffer = xStreamBuffer;
  1301. if (pxStreamBuffer == 0B)
  1302. goto <bb 3>; [INV]
  1303. else
  1304. goto <bb 5>; [INV]
  1305. <bb 3> :
  1306. vPortRaiseBASEPRI ();
  1307. <bb 4> :
  1308. goto <bb 4>; [INV]
  1309. <bb 5> :
  1310. xReturn = prvBytesInBuffer (pxStreamBuffer);
  1311. D.6381 = xReturn;
  1312. <bb 6> :
  1313. <L3>:
  1314. return D.6381;
  1315. }
  1316. xStreamBufferSpacesAvailable (struct StreamBufferDef_t * xStreamBuffer)
  1317. {
  1318. size_t xOriginalTail;
  1319. size_t xSpace;
  1320. const struct StreamBuffer_t * const pxStreamBuffer;
  1321. size_t D.6377;
  1322. unsigned int D.6373;
  1323. <bb 2> :
  1324. pxStreamBuffer = xStreamBuffer;
  1325. if (pxStreamBuffer == 0B)
  1326. goto <bb 3>; [INV]
  1327. else
  1328. goto <bb 5>; [INV]
  1329. <bb 3> :
  1330. vPortRaiseBASEPRI ();
  1331. <bb 4> :
  1332. goto <bb 4>; [INV]
  1333. <bb 5> :
  1334. xOriginalTail = pxStreamBuffer->xTail;
  1335. _1 = pxStreamBuffer->xLength;
  1336. _2 = pxStreamBuffer->xTail;
  1337. xSpace = _1 + _2;
  1338. D.6373 = pxStreamBuffer->xHead;
  1339. xSpace = xSpace - D.6373;
  1340. _3 = pxStreamBuffer->xTail;
  1341. if (xOriginalTail != _3)
  1342. goto <bb 5>; [INV]
  1343. else
  1344. goto <bb 6>; [INV]
  1345. <bb 6> :
  1346. xSpace = xSpace + 4294967295;
  1347. _4 = pxStreamBuffer->xLength;
  1348. if (xSpace >= _4)
  1349. goto <bb 7>; [INV]
  1350. else
  1351. goto <bb 8>; [INV]
  1352. <bb 7> :
  1353. _5 = pxStreamBuffer->xLength;
  1354. xSpace = xSpace - _5;
  1355. <bb 8> :
  1356. D.6377 = xSpace;
  1357. <bb 9> :
  1358. <L8>:
  1359. return D.6377;
  1360. }
  1361. xStreamBufferSetTriggerLevel (struct StreamBufferDef_t * xStreamBuffer, size_t xTriggerLevel)
  1362. {
  1363. BaseType_t xReturn;
  1364. struct StreamBuffer_t * const pxStreamBuffer;
  1365. BaseType_t D.6369;
  1366. <bb 2> :
  1367. pxStreamBuffer = xStreamBuffer;
  1368. if (pxStreamBuffer == 0B)
  1369. goto <bb 3>; [INV]
  1370. else
  1371. goto <bb 5>; [INV]
  1372. <bb 3> :
  1373. vPortRaiseBASEPRI ();
  1374. <bb 4> :
  1375. goto <bb 4>; [INV]
  1376. <bb 5> :
  1377. if (xTriggerLevel == 0)
  1378. goto <bb 6>; [INV]
  1379. else
  1380. goto <bb 7>; [INV]
  1381. <bb 6> :
  1382. xTriggerLevel = 1;
  1383. <bb 7> :
  1384. _1 = pxStreamBuffer->xLength;
  1385. if (xTriggerLevel < _1)
  1386. goto <bb 8>; [INV]
  1387. else
  1388. goto <bb 9>; [INV]
  1389. <bb 8> :
  1390. pxStreamBuffer->xTriggerLevelBytes = xTriggerLevel;
  1391. xReturn = 1;
  1392. goto <bb 10>; [INV]
  1393. <bb 9> :
  1394. xReturn = 0;
  1395. <bb 10> :
  1396. D.6369 = xReturn;
  1397. <bb 11> :
  1398. <L8>:
  1399. return D.6369;
  1400. }
  1401. xStreamBufferReset (struct StreamBufferDef_t * xStreamBuffer)
  1402. {
  1403. UBaseType_t uxStreamBufferNumber;
  1404. BaseType_t xReturn;
  1405. struct StreamBuffer_t * const pxStreamBuffer;
  1406. BaseType_t D.6360;
  1407. <bb 2> :
  1408. pxStreamBuffer = xStreamBuffer;
  1409. xReturn = 0;
  1410. if (pxStreamBuffer == 0B)
  1411. goto <bb 3>; [INV]
  1412. else
  1413. goto <bb 5>; [INV]
  1414. <bb 3> :
  1415. vPortRaiseBASEPRI ();
  1416. <bb 4> :
  1417. goto <bb 4>; [INV]
  1418. <bb 5> :
  1419. uxStreamBufferNumber = pxStreamBuffer->uxStreamBufferNumber;
  1420. vPortEnterCritical ();
  1421. _1 = pxStreamBuffer->xTaskWaitingToReceive;
  1422. if (_1 == 0B)
  1423. goto <bb 6>; [INV]
  1424. else
  1425. goto <bb 8>; [INV]
  1426. <bb 6> :
  1427. _2 = pxStreamBuffer->xTaskWaitingToSend;
  1428. if (_2 == 0B)
  1429. goto <bb 7>; [INV]
  1430. else
  1431. goto <bb 8>; [INV]
  1432. <bb 7> :
  1433. _3 = pxStreamBuffer->pucBuffer;
  1434. _4 = pxStreamBuffer->xLength;
  1435. _5 = pxStreamBuffer->xTriggerLevelBytes;
  1436. _6 = pxStreamBuffer->ucFlags;
  1437. prvInitialiseNewStreamBuffer (pxStreamBuffer, _3, _4, _5, _6);
  1438. xReturn = 1;
  1439. pxStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber;
  1440. <bb 8> :
  1441. vPortExitCritical ();
  1442. D.6360 = xReturn;
  1443. <bb 9> :
  1444. <L7>:
  1445. return D.6360;
  1446. }
  1447. vStreamBufferDelete (struct StreamBufferDef_t * xStreamBuffer)
  1448. {
  1449. struct StreamBuffer_t * pxStreamBuffer;
  1450. <bb 2> :
  1451. pxStreamBuffer = xStreamBuffer;
  1452. if (pxStreamBuffer == 0B)
  1453. goto <bb 3>; [INV]
  1454. else
  1455. goto <bb 5>; [INV]
  1456. <bb 3> :
  1457. vPortRaiseBASEPRI ();
  1458. <bb 4> :
  1459. goto <bb 4>; [INV]
  1460. <bb 5> :
  1461. _1 = pxStreamBuffer->ucFlags;
  1462. _2 = (int) _1;
  1463. _3 = _2 & 2;
  1464. if (_3 == 0)
  1465. goto <bb 6>; [INV]
  1466. else
  1467. goto <bb 7>; [INV]
  1468. <bb 6> :
  1469. vPortFree (pxStreamBuffer);
  1470. goto <bb 8>; [INV]
  1471. <bb 7> :
  1472. memset (pxStreamBuffer, 0, 36);
  1473. <bb 8> :
  1474. return;
  1475. }
  1476. xStreamBufferGenericCreate (size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer)
  1477. {
  1478. uint8_t ucFlags;
  1479. uint8_t * pucAllocatedMemory;
  1480. struct StreamBufferDef_t * D.6347;
  1481. <bb 2> :
  1482. if (xIsMessageBuffer == 1)
  1483. goto <bb 3>; [INV]
  1484. else
  1485. goto <bb 6>; [INV]
  1486. <bb 3> :
  1487. ucFlags = 1;
  1488. if (xBufferSizeBytes <= 4)
  1489. goto <bb 4>; [INV]
  1490. else
  1491. goto <bb 9>; [INV]
  1492. <bb 4> :
  1493. vPortRaiseBASEPRI ();
  1494. <bb 5> :
  1495. goto <bb 5>; [INV]
  1496. <bb 6> :
  1497. ucFlags = 0;
  1498. if (xBufferSizeBytes == 0)
  1499. goto <bb 7>; [INV]
  1500. else
  1501. goto <bb 9>; [INV]
  1502. <bb 7> :
  1503. vPortRaiseBASEPRI ();
  1504. <bb 8> :
  1505. goto <bb 8>; [INV]
  1506. <bb 9> :
  1507. if (xTriggerLevelBytes > xBufferSizeBytes)
  1508. goto <bb 10>; [INV]
  1509. else
  1510. goto <bb 12>; [INV]
  1511. <bb 10> :
  1512. vPortRaiseBASEPRI ();
  1513. <bb 11> :
  1514. goto <bb 11>; [INV]
  1515. <bb 12> :
  1516. if (xTriggerLevelBytes == 0)
  1517. goto <bb 13>; [INV]
  1518. else
  1519. goto <bb 14>; [INV]
  1520. <bb 13> :
  1521. xTriggerLevelBytes = 1;
  1522. <bb 14> :
  1523. if (xBufferSizeBytes <= 4294967258)
  1524. goto <bb 15>; [INV]
  1525. else
  1526. goto <bb 16>; [INV]
  1527. <bb 15> :
  1528. xBufferSizeBytes = xBufferSizeBytes + 1;
  1529. _1 = xBufferSizeBytes + 36;
  1530. pucAllocatedMemory = pvPortMalloc (_1);
  1531. goto <bb 17>; [INV]
  1532. <bb 16> :
  1533. pucAllocatedMemory = 0B;
  1534. <bb 17> :
  1535. if (pucAllocatedMemory != 0B)
  1536. goto <bb 18>; [INV]
  1537. else
  1538. goto <bb 19>; [INV]
  1539. <bb 18> :
  1540. _2 = pucAllocatedMemory + 36;
  1541. prvInitialiseNewStreamBuffer (pucAllocatedMemory, _2, xBufferSizeBytes, xTriggerLevelBytes, ucFlags);
  1542. <bb 19> :
  1543. D.6347 = pucAllocatedMemory;
  1544. <bb 20> :
  1545. <L20>:
  1546. return D.6347;
  1547. }
  1548. __attribute__((always_inline))
  1549. vPortSetBASEPRI (uint32_t ulNewMaskValue)
  1550. {
  1551. <bb 2> :
  1552. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory");
  1553. return;
  1554. }
  1555. __attribute__((always_inline))
  1556. ulPortRaiseBASEPRI ()
  1557. {
  1558. uint32_t ulNewBASEPRI;
  1559. uint32_t ulOriginalBASEPRI;
  1560. uint32_t D.6437;
  1561. <bb 2> :
  1562. __asm__ __volatile__(" mrs %0, basepri
  1563. mov %1, %2
  1564. msr basepri, %1
  1565. isb
  1566. dsb
  1567. " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory");
  1568. D.6437 = ulOriginalBASEPRI;
  1569. <bb 3> :
  1570. <L0>:
  1571. return D.6437;
  1572. }
  1573. __attribute__((always_inline))
  1574. vPortRaiseBASEPRI ()
  1575. {
  1576. uint32_t ulNewBASEPRI;
  1577. <bb 2> :
  1578. __asm__ __volatile__(" mov %0, %1
  1579. msr basepri, %0
  1580. isb
  1581. dsb
  1582. " : "=r" ulNewBASEPRI : "i" 16 : "memory");
  1583. return;
  1584. }