tasks.c.068i.whole-program 193 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236
  1. Marking local functions:
  2. Marking externally visible functions: ulTaskGenericNotifyValueClear xTaskGenericNotifyStateClear vTaskGenericNotifyGiveFromISR xTaskGenericNotifyFromISR xTaskGenericNotify xTaskGenericNotifyWait ulTaskGenericNotifyTake pvTaskIncrementMutexHeldCount uxTaskResetEventItemValue vTaskList vTaskPriorityDisinheritAfterTimeout xTaskPriorityDisinherit xTaskPriorityInherit xTaskGetSchedulerState xTaskGetCurrentTaskHandle uxTaskGetStackHighWaterMark vTaskGetInfo vTaskSetTaskNumber uxTaskGetTaskNumber vTaskMissedYield xTaskCheckForTimeOut vTaskInternalSetTimeOutState vTaskSetTimeOutState vTaskRemoveFromUnorderedEventList xTaskRemoveFromEventList vTaskPlaceOnEventListRestricted vTaskPlaceOnUnorderedEventList vTaskPlaceOnEventList vTaskSwitchContext xTaskIncrementTick xTaskAbortDelay xTaskCatchUpTicks uxTaskGetSystemState xTaskGetHandle pcTaskGetName uxTaskGetNumberOfTasks xTaskGetTickCountFromISR xTaskGetTickCount xTaskResumeAll vTaskSuspendAll vTaskEndScheduler vTaskStartScheduler xTaskResumeFromISR vTaskResume vTaskSuspend vTaskPrioritySet uxTaskPriorityGetFromISR uxTaskPriorityGet eTaskGetState vTaskDelay xTaskDelayUntil vTaskDelete xTaskCreate
  3. Marking externally visible variables: uxTopUsedPriority pxCurrentTCB
  4. Reclaiming functions:
  5. Reclaiming variables:
  6. Clearing address taken flags:
  7. Symbol table:
  8. sprintf/112 (sprintf) @06e1a0e0
  9. Type: function
  10. Visibility: external public
  11. References:
  12. Referring:
  13. Availability: not_available
  14. Function flags:
  15. Called by: vTaskList/84
  16. Calls:
  17. strcpy/111 (strcpy) @06e027e0
  18. Type: function
  19. Visibility: external public
  20. References:
  21. Referring:
  22. Availability: not_available
  23. Function flags:
  24. Called by: prvWriteNameToBuffer/83
  25. Calls:
  26. vListInitialise/110 (vListInitialise) @06dc9d20
  27. Type: function
  28. Visibility: external public
  29. References:
  30. Referring:
  31. Availability: not_available
  32. Function flags:
  33. Called by: prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70
  34. Calls:
  35. vListInsert/109 (vListInsert) @06da9c40
  36. Type: function
  37. Visibility: external public
  38. References:
  39. Referring:
  40. Availability: not_available
  41. Function flags:
  42. Called by: vTaskPlaceOnEventList/58 prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94
  43. Calls:
  44. strlen/108 (strlen) @06da9460
  45. Type: function
  46. Visibility: external public
  47. References:
  48. Referring:
  49. Availability: not_available
  50. Function flags:
  51. Called by: vTaskList/84 prvWriteNameToBuffer/83 xTaskGetHandle/52
  52. Calls:
  53. vPortEndScheduler/107 (vPortEndScheduler) @06d96a80
  54. Type: function
  55. Visibility: external public
  56. References:
  57. Referring:
  58. Availability: not_available
  59. Function flags:
  60. Called by: vTaskEndScheduler/44
  61. Calls:
  62. xPortStartScheduler/106 (xPortStartScheduler) @06d967e0
  63. Type: function
  64. Visibility: external public
  65. References:
  66. Referring:
  67. Availability: not_available
  68. Function flags:
  69. Called by: vTaskStartScheduler/43
  70. Calls:
  71. xTimerCreateTimerTask/105 (xTimerCreateTimerTask) @06d96700
  72. Type: function
  73. Visibility: external public
  74. References:
  75. Referring:
  76. Availability: not_available
  77. Function flags:
  78. Called by: vTaskStartScheduler/43
  79. Calls:
  80. vPortValidateInterruptPriority/104 (vPortValidateInterruptPriority) @0677a9a0
  81. Type: function
  82. Visibility: external public
  83. References:
  84. Referring:
  85. Availability: not_available
  86. Function flags:
  87. Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskGetTickCountFromISR/48 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37
  88. Calls:
  89. vListInsertEnd/103 (vListInsertEnd) @0677a0e0
  90. Type: function
  91. Visibility: external public
  92. References:
  93. Referring:
  94. Availability: not_available
  95. Function flags:
  96. Called by: vTaskSuspend/39 vTaskDelete/32 xTaskResumeFromISR/42
  97. Calls:
  98. uxListRemove/102 (uxListRemove) @0677a000
  99. Type: function
  100. Visibility: external public
  101. References:
  102. Referring:
  103. Availability: not_available
  104. Function flags:
  105. Called by: prvAddCurrentTaskToDelayedList/94 vTaskPriorityDisinheritAfterTimeout/82 xTaskPriorityDisinherit/81 xTaskPriorityInherit/80 xTaskAbortDelay/55 xTaskAbortDelay/55 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 vTaskDelete/32 prvCheckTasksWaitingTermination/71 xTaskResumeFromISR/42 vTaskResume/41 vTaskPrioritySet/38
  106. Calls:
  107. vPortExitCritical/101 (vPortExitCritical) @06d5b000
  108. Type: function
  109. Visibility: external public
  110. References:
  111. Referring:
  112. Availability: not_available
  113. Function flags:
  114. Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35
  115. Calls:
  116. vPortEnterCritical/100 (vPortEnterCritical) @06d5be00
  117. Type: function
  118. Visibility: external public
  119. References:
  120. Referring:
  121. Availability: not_available
  122. Function flags:
  123. Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35
  124. Calls:
  125. pxPortInitialiseStack/99 (pxPortInitialiseStack) @06d5bb60
  126. Type: function
  127. Visibility: external public
  128. References:
  129. Referring:
  130. Availability: not_available
  131. Function flags:
  132. Called by: prvInitialiseNewTask/30
  133. Calls:
  134. vListInitialiseItem/98 (vListInitialiseItem) @06d5ba80
  135. Type: function
  136. Visibility: external public
  137. References:
  138. Referring:
  139. Availability: not_available
  140. Function flags:
  141. Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30
  142. Calls:
  143. memset/97 (memset) @06d5b9a0
  144. Type: function
  145. Visibility: external public
  146. References:
  147. Referring:
  148. Availability: not_available
  149. Function flags:
  150. Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 prvInitialiseNewTask/30
  151. Calls:
  152. vPortFree/96 (vPortFree) @06d5b7e0
  153. Type: function
  154. Visibility: external public
  155. References:
  156. Referring:
  157. Availability: not_available
  158. Function flags:
  159. Called by: vTaskList/84 prvDeleteTCB/76 prvDeleteTCB/76 xTaskCreate/29
  160. Calls:
  161. pvPortMalloc/95 (pvPortMalloc) @06d5b700
  162. Type: function
  163. Visibility: external public
  164. References:
  165. Referring:
  166. Availability: not_available
  167. Function flags:
  168. Called by: vTaskList/84 xTaskCreate/29 xTaskCreate/29
  169. Calls:
  170. prvAddCurrentTaskToDelayedList/94 (prvAddCurrentTaskToDelayedList) @06d5b2a0
  171. Type: function definition analyzed
  172. Visibility: force_output no_reorder prevailing_def_ironly
  173. References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xSuspendedTaskList/16 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSuspendedTaskList/16 (read)xSuspendedTaskList/16 (write)pxCurrentTCB/7 (read)pxOverflowDelayedTaskList/12 (read)pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxCurrentTCB/7 (read)xNextTaskUnblockTime/25 (read)xNextTaskUnblockTime/25 (write)
  174. Referring:
  175. Availability: available
  176. Function flags: body
  177. Called by: xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 vTaskPlaceOnEventListRestricted/60 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnEventList/58 vTaskDelay/34 xTaskDelayUntil/33
  178. Calls: vListInsert/109 vListInsert/109 uxListRemove/102
  179. ulTaskGenericNotifyValueClear/93 (ulTaskGenericNotifyValueClear) @06d4ab60
  180. Type: function definition analyzed
  181. Visibility: force_output externally_visible no_reorder public
  182. References: pxCurrentTCB/7 (read)
  183. Referring:
  184. Availability: available
  185. Function flags: body
  186. Called by:
  187. Calls: vPortExitCritical/101 vPortEnterCritical/100
  188. xTaskGenericNotifyStateClear/92 (xTaskGenericNotifyStateClear) @06d4aee0
  189. Type: function definition analyzed
  190. Visibility: force_output externally_visible no_reorder public
  191. References: pxCurrentTCB/7 (read)
  192. Referring:
  193. Availability: available
  194. Function flags: body
  195. Called by:
  196. Calls: vPortExitCritical/101 vPortEnterCritical/100
  197. vTaskGenericNotifyGiveFromISR/91 (vTaskGenericNotifyGiveFromISR) @06d4aa80
  198. Type: function definition analyzed
  199. Visibility: force_output externally_visible no_reorder public
  200. References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)
  201. Referring:
  202. Availability: available
  203. Function flags: body
  204. Called by:
  205. Calls: vPortValidateInterruptPriority/104
  206. xTaskGenericNotifyFromISR/90 (xTaskGenericNotifyFromISR) @06d4a620
  207. Type: function definition analyzed
  208. Visibility: force_output externally_visible no_reorder public
  209. References: xTickCount/18 (read)uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)
  210. Referring:
  211. Availability: available
  212. Function flags: body
  213. Called by:
  214. Calls: vPortValidateInterruptPriority/104
  215. xTaskGenericNotify/89 (xTaskGenericNotify) @06d4a0e0
  216. Type: function definition analyzed
  217. Visibility: force_output externally_visible no_reorder public
  218. References: xTickCount/18 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)
  219. Referring:
  220. Availability: available
  221. Function flags: body
  222. Called by:
  223. Calls: vPortExitCritical/101 vPortEnterCritical/100
  224. xTaskGenericNotifyWait/88 (xTaskGenericNotifyWait) @06d39000
  225. Type: function definition analyzed
  226. Visibility: force_output externally_visible no_reorder public
  227. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  228. Referring:
  229. Availability: available
  230. Function flags: body
  231. Called by:
  232. Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100
  233. ulTaskGenericNotifyTake/87 (ulTaskGenericNotifyTake) @06d39b60
  234. Type: function definition analyzed
  235. Visibility: force_output externally_visible no_reorder public
  236. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  237. Referring:
  238. Availability: available
  239. Function flags: body
  240. Called by:
  241. Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100
  242. pvTaskIncrementMutexHeldCount/86 (pvTaskIncrementMutexHeldCount) @06d39700
  243. Type: function definition analyzed
  244. Visibility: force_output externally_visible no_reorder public
  245. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  246. Referring:
  247. Availability: available
  248. Function flags: body
  249. Called by:
  250. Calls:
  251. uxTaskResetEventItemValue/85 (uxTaskResetEventItemValue) @06d39460
  252. Type: function definition analyzed
  253. Visibility: force_output externally_visible no_reorder public
  254. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  255. Referring:
  256. Availability: available
  257. Function flags: body
  258. Called by:
  259. Calls:
  260. vTaskList/84 (vTaskList) @06d391c0
  261. Type: function definition analyzed
  262. Visibility: force_output externally_visible no_reorder public
  263. References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (read)
  264. Referring:
  265. Availability: available
  266. Function flags: body
  267. Called by:
  268. Calls: vPortFree/96 strlen/108 sprintf/112 prvWriteNameToBuffer/83 uxTaskGetSystemState/53 pvPortMalloc/95
  269. prvWriteNameToBuffer/83 (prvWriteNameToBuffer) @06d1fe00
  270. Type: function definition analyzed
  271. Visibility: force_output no_reorder prevailing_def_ironly
  272. References:
  273. Referring:
  274. Availability: available
  275. Function flags: body
  276. Called by: vTaskList/84
  277. Calls: strlen/108 strcpy/111
  278. vTaskPriorityDisinheritAfterTimeout/82 (vTaskPriorityDisinheritAfterTimeout) @06d1f700
  279. Type: function definition analyzed
  280. Visibility: force_output externally_visible no_reorder public
  281. References: pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)
  282. Referring:
  283. Availability: available
  284. Function flags: body
  285. Called by:
  286. Calls: uxListRemove/102
  287. xTaskPriorityDisinherit/81 (xTaskPriorityDisinherit) @06d1fd20
  288. Type: function definition analyzed
  289. Visibility: force_output externally_visible no_reorder public
  290. References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)
  291. Referring:
  292. Availability: available
  293. Function flags: body
  294. Called by:
  295. Calls: uxListRemove/102
  296. xTaskPriorityInherit/80 (xTaskPriorityInherit) @06d1f8c0
  297. Type: function definition analyzed
  298. Visibility: force_output externally_visible no_reorder public
  299. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  300. Referring:
  301. Availability: available
  302. Function flags: body
  303. Called by:
  304. Calls: uxListRemove/102
  305. xTaskGetSchedulerState/79 (xTaskGetSchedulerState) @06d1f620
  306. Type: function definition analyzed
  307. Visibility: force_output externally_visible no_reorder public
  308. References: xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read)
  309. Referring:
  310. Availability: available
  311. Function flags: body
  312. Called by:
  313. Calls:
  314. xTaskGetCurrentTaskHandle/78 (xTaskGetCurrentTaskHandle) @06d1f380
  315. Type: function definition analyzed
  316. Visibility: force_output externally_visible no_reorder public
  317. References: pxCurrentTCB/7 (read)
  318. Referring:
  319. Availability: available
  320. Function flags: body
  321. Called by:
  322. Calls:
  323. prvResetNextTaskUnblockTime/77 (prvResetNextTaskUnblockTime) @06d1f0e0
  324. Type: function definition analyzed
  325. Visibility: force_output no_reorder prevailing_def_ironly
  326. References: pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)
  327. Referring:
  328. Availability: available
  329. Function flags: body
  330. Called by: xTaskResumeAll/46 xTaskIncrementTick/56 vTaskSuspend/39 vTaskDelete/32
  331. Calls:
  332. prvDeleteTCB/76 (prvDeleteTCB) @06d13c40
  333. Type: function definition analyzed
  334. Visibility: force_output no_reorder prevailing_def_ironly
  335. References:
  336. Referring:
  337. Availability: available
  338. Function flags: body
  339. Called by: vTaskDelete/32 prvCheckTasksWaitingTermination/71
  340. Calls: vPortFree/96 vPortFree/96
  341. uxTaskGetStackHighWaterMark/75 (uxTaskGetStackHighWaterMark) @06d13620
  342. Type: function definition analyzed
  343. Visibility: force_output externally_visible no_reorder public
  344. References: pxCurrentTCB/7 (read)
  345. Referring:
  346. Availability: available
  347. Function flags: body
  348. Called by:
  349. Calls: prvTaskCheckFreeStackSpace/74
  350. prvTaskCheckFreeStackSpace/74 (prvTaskCheckFreeStackSpace) @06d13e00
  351. Type: function definition analyzed
  352. Visibility: force_output no_reorder prevailing_def_ironly
  353. References:
  354. Referring:
  355. Availability: available
  356. Function flags: body
  357. Called by: vTaskGetInfo/72 uxTaskGetStackHighWaterMark/75
  358. Calls:
  359. prvListTasksWithinSingleList/73 (prvListTasksWithinSingleList) @06d13b60
  360. Type: function definition analyzed
  361. Visibility: force_output no_reorder prevailing_def_ironly
  362. References:
  363. Referring:
  364. Availability: available
  365. Function flags: body
  366. Called by: uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53
  367. Calls: vTaskGetInfo/72
  368. vTaskGetInfo/72 (vTaskGetInfo) @06d138c0
  369. Type: function definition analyzed
  370. Visibility: force_output externally_visible no_reorder public
  371. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  372. Referring:
  373. Availability: available
  374. Function flags: body
  375. Called by: prvListTasksWithinSingleList/73
  376. Calls: prvTaskCheckFreeStackSpace/74 eTaskGetState/35 xTaskResumeAll/46 vTaskSuspendAll/45
  377. prvCheckTasksWaitingTermination/71 (prvCheckTasksWaitingTermination) @06d13540
  378. Type: function definition analyzed
  379. Visibility: force_output no_reorder prevailing_def_ironly
  380. References: xTasksWaitingTermination/14 (read)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxDeletedTasksWaitingCleanUp/15 (read)
  381. Referring:
  382. Availability: available
  383. Function flags: body
  384. Called by: prvIdleTask/69
  385. Calls: prvDeleteTCB/76 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100
  386. prvInitialiseTaskLists/70 (prvInitialiseTaskLists) @06d131c0
  387. Type: function definition analyzed
  388. Visibility: force_output no_reorder prevailing_def_ironly
  389. References: pxReadyTasksLists/8 (addr)xDelayedTaskList1/9 (addr)xDelayedTaskList2/10 (addr)xPendingReadyList/13 (addr)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr)pxDelayedTaskList/11 (write)xDelayedTaskList1/9 (addr)pxOverflowDelayedTaskList/12 (write)xDelayedTaskList2/10 (addr)
  390. Referring:
  391. Availability: available
  392. Function flags: body
  393. Called by: prvAddNewTaskToReadyList/31
  394. Calls: vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110
  395. prvIdleTask/69 (prvIdleTask) @06d0ee00
  396. Type: function definition analyzed
  397. Visibility: force_output no_reorder prevailing_def_ironly
  398. Address is taken.
  399. References: pxReadyTasksLists/8 (read)
  400. Referring: vTaskStartScheduler/43 (addr)
  401. Availability: available
  402. Function flags: body
  403. Called by:
  404. Calls: prvCheckTasksWaitingTermination/71
  405. vTaskSetTaskNumber/68 (vTaskSetTaskNumber) @06d0e1c0
  406. Type: function definition analyzed
  407. Visibility: force_output externally_visible no_reorder public
  408. References:
  409. Referring:
  410. Availability: available
  411. Function flags: body
  412. Called by:
  413. Calls:
  414. uxTaskGetTaskNumber/67 (uxTaskGetTaskNumber) @06d0ed20
  415. Type: function definition analyzed
  416. Visibility: force_output externally_visible no_reorder public
  417. References:
  418. Referring:
  419. Availability: available
  420. Function flags: body
  421. Called by:
  422. Calls:
  423. vTaskMissedYield/66 (vTaskMissedYield) @06d0ea80
  424. Type: function definition analyzed
  425. Visibility: force_output externally_visible no_reorder public
  426. References: xYieldPending/22 (write)
  427. Referring:
  428. Availability: available
  429. Function flags: body
  430. Called by:
  431. Calls:
  432. xTaskCheckForTimeOut/65 (xTaskCheckForTimeOut) @06d0e7e0
  433. Type: function definition analyzed
  434. Visibility: force_output externally_visible no_reorder public
  435. References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xNumOfOverflows/23 (read)
  436. Referring:
  437. Availability: available
  438. Function flags: body
  439. Called by:
  440. Calls: vPortExitCritical/101 vTaskInternalSetTimeOutState/64 vPortEnterCritical/100
  441. vTaskInternalSetTimeOutState/64 (vTaskInternalSetTimeOutState) @06d0e380
  442. Type: function definition analyzed
  443. Visibility: force_output externally_visible no_reorder public
  444. References: xNumOfOverflows/23 (read)xTickCount/18 (read)
  445. Referring:
  446. Availability: available
  447. Function flags: body
  448. Called by: xTaskCheckForTimeOut/65
  449. Calls:
  450. vTaskSetTimeOutState/63 (vTaskSetTimeOutState) @06d0e0e0
  451. Type: function definition analyzed
  452. Visibility: force_output externally_visible no_reorder public
  453. References: xNumOfOverflows/23 (read)xTickCount/18 (read)
  454. Referring:
  455. Availability: available
  456. Function flags: body
  457. Called by:
  458. Calls: vPortExitCritical/101 vPortEnterCritical/100
  459. vTaskRemoveFromUnorderedEventList/62 (vTaskRemoveFromUnorderedEventList) @06cca9a0
  460. Type: function definition analyzed
  461. Visibility: force_output externally_visible no_reorder public
  462. References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)
  463. Referring:
  464. Availability: available
  465. Function flags: body
  466. Called by:
  467. Calls:
  468. xTaskRemoveFromEventList/61 (xTaskRemoveFromEventList) @06ccad20
  469. Type: function definition analyzed
  470. Visibility: force_output externally_visible no_reorder public
  471. References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)
  472. Referring:
  473. Availability: available
  474. Function flags: body
  475. Called by:
  476. Calls:
  477. vTaskPlaceOnEventListRestricted/60 (vTaskPlaceOnEventListRestricted) @06cca8c0
  478. Type: function definition analyzed
  479. Visibility: force_output externally_visible no_reorder public
  480. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  481. Referring:
  482. Availability: available
  483. Function flags: body
  484. Called by:
  485. Calls: prvAddCurrentTaskToDelayedList/94
  486. vTaskPlaceOnUnorderedEventList/59 (vTaskPlaceOnUnorderedEventList) @06cca540
  487. Type: function definition analyzed
  488. Visibility: force_output externally_visible no_reorder public
  489. References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
  490. Referring:
  491. Availability: available
  492. Function flags: body
  493. Called by:
  494. Calls: prvAddCurrentTaskToDelayedList/94
  495. vTaskPlaceOnEventList/58 (vTaskPlaceOnEventList) @06cca000
  496. Type: function definition analyzed
  497. Visibility: force_output externally_visible no_reorder public
  498. References: pxCurrentTCB/7 (read)
  499. Referring:
  500. Availability: available
  501. Function flags: body
  502. Called by:
  503. Calls: prvAddCurrentTaskToDelayedList/94 vListInsert/109
  504. vTaskSwitchContext/57 (vTaskSwitchContext) @06c5f380
  505. Type: function definition analyzed
  506. Visibility: force_output externally_visible no_reorder public
  507. References: uxSchedulerSuspended/28 (read)xYieldPending/22 (write)xYieldPending/22 (write)uxTopReadyPriority/19 (read)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (write)uxTopReadyPriority/19 (write)
  508. Referring:
  509. Availability: available
  510. Function flags: body
  511. Called by: vTaskSuspend/39
  512. Calls:
  513. xTaskIncrementTick/56 (xTaskIncrementTick) @06c5fc40
  514. Type: function definition analyzed
  515. Visibility: force_output externally_visible no_reorder public
  516. References: uxSchedulerSuspended/28 (read)xTickCount/18 (read)xTickCount/18 (write)pxDelayedTaskList/11 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)pxDelayedTaskList/11 (write)pxOverflowDelayedTaskList/12 (write)xNumOfOverflows/23 (read)xNumOfOverflows/23 (write)xNextTaskUnblockTime/25 (read)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (read)xYieldPending/22 (read)xPendedTicks/21 (read)xPendedTicks/21 (write)
  517. Referring:
  518. Availability: available
  519. Function flags: body
  520. Called by: xTaskResumeAll/46
  521. Calls: prvResetNextTaskUnblockTime/77
  522. xTaskAbortDelay/55 (xTaskAbortDelay) @06c5f620
  523. Type: function definition analyzed
  524. Visibility: force_output externally_visible no_reorder public
  525. References: uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)
  526. Referring:
  527. Availability: available
  528. Function flags: body
  529. Called by:
  530. Calls: xTaskResumeAll/46 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100 uxListRemove/102 eTaskGetState/35 vTaskSuspendAll/45
  531. xTaskCatchUpTicks/54 (xTaskCatchUpTicks) @06c5f2a0
  532. Type: function definition analyzed
  533. Visibility: force_output externally_visible no_reorder public
  534. References: uxSchedulerSuspended/28 (read)xPendedTicks/21 (read)xPendedTicks/21 (write)
  535. Referring:
  536. Availability: available
  537. Function flags: body
  538. Called by:
  539. Calls: xTaskResumeAll/46 vTaskSuspendAll/45
  540. uxTaskGetSystemState/53 (uxTaskGetSystemState) @06c56e00
  541. Type: function definition analyzed
  542. Visibility: force_output externally_visible no_reorder public
  543. References: uxCurrentNumberOfTasks/17 (read)pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr)
  544. Referring:
  545. Availability: available
  546. Function flags: body
  547. Called by: vTaskList/84
  548. Calls: xTaskResumeAll/46 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 vTaskSuspendAll/45
  549. xTaskGetHandle/52 (xTaskGetHandle) @06c56700
  550. Type: function definition analyzed
  551. Visibility: force_output externally_visible no_reorder public
  552. References: pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr)
  553. Referring:
  554. Availability: available
  555. Function flags: body
  556. Called by:
  557. Calls: xTaskResumeAll/46 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 vTaskSuspendAll/45 strlen/108
  558. prvSearchForNameWithinSingleList/51 (prvSearchForNameWithinSingleList) @06c561c0
  559. Type: function definition analyzed
  560. Visibility: force_output no_reorder prevailing_def_ironly
  561. References:
  562. Referring:
  563. Availability: available
  564. Function flags: body
  565. Called by: xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52
  566. Calls:
  567. pcTaskGetName/50 (pcTaskGetName) @06c56d20
  568. Type: function definition analyzed
  569. Visibility: force_output externally_visible no_reorder public
  570. References: pxCurrentTCB/7 (read)
  571. Referring:
  572. Availability: available
  573. Function flags: body
  574. Called by:
  575. Calls:
  576. uxTaskGetNumberOfTasks/49 (uxTaskGetNumberOfTasks) @06c568c0
  577. Type: function definition analyzed
  578. Visibility: force_output externally_visible no_reorder public
  579. References: uxCurrentNumberOfTasks/17 (read)
  580. Referring:
  581. Availability: available
  582. Function flags: body
  583. Called by:
  584. Calls:
  585. xTaskGetTickCountFromISR/48 (xTaskGetTickCountFromISR) @06c56620
  586. Type: function definition analyzed
  587. Visibility: force_output externally_visible no_reorder public
  588. References: xTickCount/18 (read)
  589. Referring:
  590. Availability: available
  591. Function flags: body
  592. Called by:
  593. Calls: vPortValidateInterruptPriority/104
  594. xTaskGetTickCount/47 (xTaskGetTickCount) @06c56380
  595. Type: function definition analyzed
  596. Visibility: force_output externally_visible no_reorder public
  597. References: xTickCount/18 (read)
  598. Referring:
  599. Availability: available
  600. Function flags: body
  601. Called by:
  602. Calls:
  603. xTaskResumeAll/46 (xTaskResumeAll) @06c560e0
  604. Type: function definition analyzed
  605. Visibility: force_output externally_visible no_reorder public
  606. References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write)uxSchedulerSuspended/28 (read)uxCurrentNumberOfTasks/17 (read)xPendingReadyList/13 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)xPendingReadyList/13 (read)xPendedTicks/21 (read)xYieldPending/22 (write)xPendedTicks/21 (write)xYieldPending/22 (read)
  607. Referring:
  608. Availability: available
  609. Function flags: body
  610. Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52
  611. Calls: vPortExitCritical/101 xTaskIncrementTick/56 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100
  612. vTaskSuspendAll/45 (vTaskSuspendAll) @06c450e0
  613. Type: function definition analyzed
  614. Visibility: force_output externally_visible no_reorder public
  615. References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write)
  616. Referring:
  617. Availability: available
  618. Function flags: body
  619. Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52
  620. Calls:
  621. vTaskEndScheduler/44 (vTaskEndScheduler) @06c45d20
  622. Type: function definition analyzed
  623. Visibility: force_output externally_visible no_reorder public
  624. References: xSchedulerRunning/20 (write)
  625. Referring:
  626. Availability: available
  627. Function flags: body
  628. Called by:
  629. Calls: vPortEndScheduler/107
  630. vTaskStartScheduler/43 (vTaskStartScheduler) @06c45a80
  631. Type: function definition analyzed
  632. Visibility: force_output externally_visible no_reorder public
  633. References: prvIdleTask/69 (addr)xIdleTaskHandle/26 (addr)xNextTaskUnblockTime/25 (write)xSchedulerRunning/20 (write)xTickCount/18 (write)uxTopUsedPriority/27 (read)
  634. Referring:
  635. Availability: available
  636. Function flags: body
  637. Called by:
  638. Calls: xPortStartScheduler/106 xTimerCreateTimerTask/105 xTaskCreate/29
  639. xTaskResumeFromISR/42 (xTaskResumeFromISR) @06c457e0
  640. Type: function definition analyzed
  641. Visibility: force_output externally_visible no_reorder public
  642. References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)xYieldPending/22 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (addr)
  643. Referring:
  644. Availability: available
  645. Function flags: body
  646. Called by:
  647. Calls: vListInsertEnd/103 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortValidateInterruptPriority/104
  648. vTaskResume/41 (vTaskResume) @06c45460
  649. Type: function definition analyzed
  650. Visibility: force_output externally_visible no_reorder public
  651. References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)
  652. Referring:
  653. Availability: available
  654. Function flags: body
  655. Called by:
  656. Calls: vPortExitCritical/101 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortEnterCritical/100
  657. prvTaskIsTaskSuspended/40 (prvTaskIsTaskSuspended) @06c45000
  658. Type: function definition analyzed
  659. Visibility: force_output no_reorder prevailing_def_ironly
  660. References: xSuspendedTaskList/16 (addr)xPendingReadyList/13 (addr)
  661. Referring:
  662. Availability: available
  663. Function flags: body
  664. Called by: xTaskResumeFromISR/42 vTaskResume/41
  665. Calls:
  666. vTaskSuspend/39 (vTaskSuspend) @06c38380
  667. Type: function definition analyzed
  668. Visibility: force_output externally_visible no_reorder public
  669. References: pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read)xSuspendedTaskList/16 (read)uxCurrentNumberOfTasks/17 (read)pxCurrentTCB/7 (write)
  670. Referring:
  671. Availability: available
  672. Function flags: body
  673. Called by:
  674. Calls: vTaskSwitchContext/57 vPortExitCritical/101 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vPortExitCritical/101 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100
  675. vTaskPrioritySet/38 (vTaskPrioritySet) @06c38b60
  676. Type: function definition analyzed
  677. Visibility: force_output externally_visible no_reorder public
  678. References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)
  679. Referring:
  680. Availability: available
  681. Function flags: body
  682. Called by:
  683. Calls: vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100
  684. uxTaskPriorityGetFromISR/37 (uxTaskPriorityGetFromISR) @06c38620
  685. Type: function definition analyzed
  686. Visibility: force_output externally_visible no_reorder public
  687. References: pxCurrentTCB/7 (read)
  688. Referring:
  689. Availability: available
  690. Function flags: body
  691. Called by:
  692. Calls: vPortValidateInterruptPriority/104
  693. uxTaskPriorityGet/36 (uxTaskPriorityGet) @06c382a0
  694. Type: function definition analyzed
  695. Visibility: force_output externally_visible no_reorder public
  696. References: pxCurrentTCB/7 (read)
  697. Referring:
  698. Availability: available
  699. Function flags: body
  700. Called by:
  701. Calls: vPortExitCritical/101 vPortEnterCritical/100
  702. eTaskGetState/35 (eTaskGetState) @06c2cb60
  703. Type: function definition analyzed
  704. Visibility: force_output externally_visible no_reorder public
  705. References: pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr)
  706. Referring:
  707. Availability: available
  708. Function flags: body
  709. Called by: vTaskGetInfo/72 xTaskAbortDelay/55
  710. Calls: vPortExitCritical/101 vPortEnterCritical/100
  711. vTaskDelay/34 (vTaskDelay) @06c2cee0
  712. Type: function definition analyzed
  713. Visibility: force_output externally_visible no_reorder public
  714. References: uxSchedulerSuspended/28 (read)
  715. Referring:
  716. Availability: available
  717. Function flags: body
  718. Called by:
  719. Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45
  720. xTaskDelayUntil/33 (xTaskDelayUntil) @06c2ca80
  721. Type: function definition analyzed
  722. Visibility: force_output externally_visible no_reorder public
  723. References: uxSchedulerSuspended/28 (read)xTickCount/18 (read)
  724. Referring:
  725. Availability: available
  726. Function flags: body
  727. Called by:
  728. Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45
  729. vTaskDelete/32 (vTaskDelete) @06c2c460
  730. Type: function definition analyzed
  731. Visibility: force_output externally_visible no_reorder public
  732. References: pxCurrentTCB/7 (read)uxTaskNumber/24 (read)uxTaskNumber/24 (write)pxCurrentTCB/7 (read)xTasksWaitingTermination/14 (addr)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)uxSchedulerSuspended/28 (read)
  733. Referring:
  734. Availability: available
  735. Function flags: body
  736. Called by:
  737. Calls: vPortExitCritical/101 prvResetNextTaskUnblockTime/77 prvDeleteTCB/76 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100
  738. prvAddNewTaskToReadyList/31 (prvAddNewTaskToReadyList) @06c18ee0
  739. Type: function definition analyzed
  740. Visibility: force_output no_reorder prevailing_def_ironly
  741. References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxCurrentNumberOfTasks/17 (read)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxTaskNumber/24 (read)uxTaskNumber/24 (write)uxTaskNumber/24 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)
  742. Referring:
  743. Availability: available
  744. Function flags: body
  745. Called by: xTaskCreate/29
  746. Calls: vPortExitCritical/101 prvInitialiseTaskLists/70 vPortEnterCritical/100
  747. prvInitialiseNewTask/30 (prvInitialiseNewTask) @06c18e00
  748. Type: function definition analyzed
  749. Visibility: force_output no_reorder prevailing_def_ironly
  750. References:
  751. Referring:
  752. Availability: available
  753. Function flags: body
  754. Called by: xTaskCreate/29
  755. Calls: pxPortInitialiseStack/99 memset/97 memset/97 vListInitialiseItem/98 vListInitialiseItem/98 memset/97
  756. xTaskCreate/29 (xTaskCreate) @06c188c0
  757. Type: function definition analyzed
  758. Visibility: force_output externally_visible no_reorder public
  759. References:
  760. Referring:
  761. Availability: available
  762. Function flags: body
  763. Called by: vTaskStartScheduler/43
  764. Calls: prvAddNewTaskToReadyList/31 prvInitialiseNewTask/30 vPortFree/96 pvPortMalloc/95 pvPortMalloc/95
  765. uxSchedulerSuspended/28 (uxSchedulerSuspended) @06c115a0
  766. Type: variable definition analyzed
  767. Visibility: force_output no_reorder prevailing_def_ironly
  768. References:
  769. Referring: xTaskRemoveFromEventList/61 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskGetSchedulerState/79 (read)xTaskCatchUpTicks/54 (read)vTaskDelay/34 (read)vTaskSwitchContext/57 (read)xTaskResumeAll/46 (read)vTaskSuspendAll/45 (read)vTaskSuspend/39 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)xTaskDelayUntil/33 (read)vTaskSuspendAll/45 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)vTaskPlaceOnUnorderedEventList/59 (read)
  770. Availability: available
  771. Varpool flags: initialized
  772. uxTopUsedPriority/27 (uxTopUsedPriority) @06c11510
  773. Type: variable definition analyzed
  774. Visibility: force_output externally_visible no_reorder public
  775. References:
  776. Referring: vTaskStartScheduler/43 (read)
  777. Availability: available
  778. Varpool flags: initialized read-only
  779. xIdleTaskHandle/26 (xIdleTaskHandle) @06c11480
  780. Type: variable definition analyzed
  781. Visibility: force_output no_reorder prevailing_def_ironly
  782. References:
  783. Referring: vTaskStartScheduler/43 (addr)
  784. Availability: available
  785. Varpool flags: initialized
  786. xNextTaskUnblockTime/25 (xNextTaskUnblockTime) @06c113f0
  787. Type: variable definition analyzed
  788. Visibility: force_output no_reorder prevailing_def_ironly
  789. References:
  790. Referring: prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (write)vTaskStartScheduler/43 (write)prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write)
  791. Availability: available
  792. Varpool flags: initialized
  793. uxTaskNumber/24 (uxTaskNumber) @06c11360
  794. Type: variable definition analyzed
  795. Visibility: force_output no_reorder prevailing_def_ironly
  796. References:
  797. Referring: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (write)
  798. Availability: available
  799. Varpool flags: initialized
  800. xNumOfOverflows/23 (xNumOfOverflows) @06c11318
  801. Type: variable definition analyzed
  802. Visibility: force_output no_reorder prevailing_def_ironly
  803. References:
  804. Referring: xTaskCheckForTimeOut/65 (read)vTaskInternalSetTimeOutState/64 (read)vTaskSetTimeOutState/63 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)
  805. Availability: available
  806. Varpool flags: initialized
  807. xYieldPending/22 (xYieldPending) @06c112d0
  808. Type: variable definition analyzed
  809. Visibility: force_output no_reorder prevailing_def_ironly
  810. References:
  811. Referring: xTaskAbortDelay/55 (write)xTaskRemoveFromEventList/61 (write)vTaskSwitchContext/57 (write)vTaskMissedYield/66 (write)xTaskIncrementTick/56 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (write)vTaskGenericNotifyGiveFromISR/91 (write)
  812. Availability: available
  813. Varpool flags: initialized
  814. xPendedTicks/21 (xPendedTicks) @06c11240
  815. Type: variable definition analyzed
  816. Visibility: force_output no_reorder prevailing_def_ironly
  817. References:
  818. Referring: xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write)
  819. Availability: available
  820. Varpool flags: initialized
  821. xSchedulerRunning/20 (xSchedulerRunning) @06c111b0
  822. Type: variable definition analyzed
  823. Visibility: force_output no_reorder prevailing_def_ironly
  824. References:
  825. Referring: vTaskDelete/32 (read)vTaskSuspend/39 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (read)vTaskStartScheduler/43 (write)vTaskEndScheduler/44 (write)vTaskSuspend/39 (read)xTaskGetSchedulerState/79 (read)
  826. Availability: available
  827. Varpool flags: initialized
  828. uxTopReadyPriority/19 (uxTopReadyPriority) @06c11120
  829. Type: variable definition analyzed
  830. Visibility: force_output no_reorder prevailing_def_ironly
  831. References:
  832. Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (write)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write)
  833. Availability: available
  834. Varpool flags: initialized
  835. xTickCount/18 (xTickCount) @06c110d8
  836. Type: variable definition analyzed
  837. Visibility: force_output no_reorder prevailing_def_ironly
  838. References:
  839. Referring: xTaskGenericNotifyFromISR/90 (read)vTaskInternalSetTimeOutState/64 (read)xTaskGenericNotify/89 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskIncrementTick/56 (write)xTaskCheckForTimeOut/65 (read)xTaskGetTickCount/47 (read)xTaskGetTickCountFromISR/48 (read)vTaskSetTimeOutState/63 (read)vTaskStartScheduler/43 (write)xTaskIncrementTick/56 (read)xTaskDelayUntil/33 (read)
  840. Availability: available
  841. Varpool flags: initialized
  842. uxCurrentNumberOfTasks/17 (uxCurrentNumberOfTasks) @06c11090
  843. Type: variable definition analyzed
  844. Visibility: force_output no_reorder prevailing_def_ironly
  845. References:
  846. Referring: uxTaskGetNumberOfTasks/49 (read)prvCheckTasksWaitingTermination/71 (read)uxTaskGetSystemState/53 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvCheckTasksWaitingTermination/71 (write)vTaskDelete/32 (write)xTaskResumeAll/46 (read)vTaskSuspend/39 (read)vTaskDelete/32 (read)prvAddNewTaskToReadyList/31 (read)vTaskList/84 (read)vTaskList/84 (read)
  847. Availability: available
  848. Varpool flags: initialized
  849. xSuspendedTaskList/16 (xSuspendedTaskList) @06c0ef78
  850. Type: variable definition analyzed
  851. Visibility: force_output no_reorder prevailing_def_ironly
  852. References:
  853. Referring: xTaskGetHandle/52 (addr)vTaskSuspend/39 (addr)prvTaskIsTaskSuspended/40 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (addr)vTaskSuspend/39 (read)eTaskGetState/35 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write)
  854. Availability: available
  855. Varpool flags:
  856. uxDeletedTasksWaitingCleanUp/15 (uxDeletedTasksWaitingCleanUp) @06c0eee8
  857. Type: variable definition analyzed
  858. Visibility: force_output no_reorder prevailing_def_ironly
  859. References:
  860. Referring: prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (read)vTaskDelete/32 (write)
  861. Availability: available
  862. Varpool flags: initialized
  863. xTasksWaitingTermination/14 (xTasksWaitingTermination) @06c0ee58
  864. Type: variable definition analyzed
  865. Visibility: force_output no_reorder prevailing_def_ironly
  866. References:
  867. Referring: prvInitialiseTaskLists/70 (addr)eTaskGetState/35 (addr)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)
  868. Availability: available
  869. Varpool flags:
  870. xPendingReadyList/13 (xPendingReadyList) @06c0edc8
  871. Type: variable definition analyzed
  872. Visibility: force_output no_reorder prevailing_def_ironly
  873. References:
  874. Referring: xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskGenericNotifyFromISR/90 (read)xTaskRemoveFromEventList/61 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskResumeAll/46 (read)prvTaskIsTaskSuspended/40 (addr)xTaskResumeFromISR/42 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskRemoveFromEventList/61 (read)prvInitialiseTaskLists/70 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write)
  875. Availability: available
  876. Varpool flags:
  877. pxOverflowDelayedTaskList/12 (pxOverflowDelayedTaskList) @06c0ed38
  878. Type: variable definition analyzed
  879. Visibility: force_output no_reorder prevailing_def_ironly
  880. References:
  881. Referring: xTaskGetHandle/52 (read)prvInitialiseTaskLists/70 (write)xTaskIncrementTick/56 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)
  882. Availability: available
  883. Varpool flags:
  884. pxDelayedTaskList/11 (pxDelayedTaskList) @06c0ecf0
  885. Type: variable definition analyzed
  886. Visibility: force_output no_reorder prevailing_def_ironly
  887. References:
  888. Referring: xTaskGetHandle/52 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)prvInitialiseTaskLists/70 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)
  889. Availability: available
  890. Varpool flags:
  891. xDelayedTaskList2/10 (xDelayedTaskList2) @06c0eca8
  892. Type: variable definition analyzed
  893. Visibility: force_output no_reorder prevailing_def_ironly
  894. References:
  895. Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr)
  896. Availability: available
  897. Varpool flags:
  898. xDelayedTaskList1/9 (xDelayedTaskList1) @06c0ec18
  899. Type: variable definition analyzed
  900. Visibility: force_output no_reorder prevailing_def_ironly
  901. References:
  902. Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr)
  903. Availability: available
  904. Varpool flags:
  905. pxReadyTasksLists/8 (pxReadyTasksLists) @06c0eb88
  906. Type: variable definition analyzed
  907. Visibility: force_output no_reorder prevailing_def_ironly
  908. References:
  909. Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (addr)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvIdleTask/69 (read)xTaskIncrementTick/56 (read)xTaskGetHandle/52 (addr)xTaskIncrementTick/56 (addr)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskResumeAll/46 (write)xTaskPriorityInherit/80 (addr)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)prvAddNewTaskToReadyList/31 (write)vTaskResume/41 (read)vTaskResume/41 (write)vTaskResume/41 (read)vTaskResume/41 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (addr)prvInitialiseTaskLists/70 (addr)xTaskRemoveFromEventList/61 (write)vTaskPrioritySet/38 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (addr)xTaskResumeAll/46 (read)xTaskAbortDelay/55 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)xTaskAbortDelay/55 (read)uxTaskGetSystemState/53 (addr)xTaskIncrementTick/56 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (addr)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (addr)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write)
  910. Availability: available
  911. Varpool flags:
  912. pxCurrentTCB/7 (pxCurrentTCB) @06c0eb40
  913. Type: variable definition analyzed
  914. Visibility: force_output externally_visible no_reorder public
  915. References:
  916. Referring: prvAddNewTaskToReadyList/31 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)vTaskResume/41 (read)vTaskRemoveFromUnorderedEventList/62 (read)vTaskPrioritySet/38 (read)xTaskCheckForTimeOut/65 (read)prvAddNewTaskToReadyList/31 (read)xTaskGenericNotifyStateClear/92 (read)ulTaskGenericNotifyTake/87 (read)eTaskGetState/35 (read)prvAddNewTaskToReadyList/31 (write)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskPriorityGet/36 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)uxTaskGetStackHighWaterMark/75 (read)ulTaskGenericNotifyTake/87 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (write)vTaskResume/41 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)ulTaskGenericNotifyValueClear/93 (read)ulTaskGenericNotifyTake/87 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnEventList/58 (read)pcTaskGetName/50 (read)vTaskSwitchContext/57 (write)vTaskPrioritySet/38 (read)xTaskRemoveFromEventList/61 (read)vTaskSuspend/39 (read)xTaskResumeAll/46 (read)xTaskCheckForTimeOut/65 (read)xTaskAbortDelay/55 (read)ulTaskGenericNotifyTake/87 (read)vTaskPrioritySet/38 (read)vTaskDelete/32 (read)xTaskIncrementTick/56 (read)vTaskGetInfo/72 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)vTaskSuspend/39 (read)vTaskGetInfo/72 (read)xTaskPriorityDisinherit/81 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)uxTaskResetEventItemValue/85 (read)pvTaskIncrementMutexHeldCount/86 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)
  917. Availability: available
  918. Varpool flags: initialized
  919. prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)
  920. {
  921. struct ListItem_t * const pxIndex;
  922. const TickType_t xConstTickCount;
  923. TickType_t xTimeToWake;
  924. struct TCB_t * pxCurrentTCB.152_1;
  925. struct TCB_t * pxCurrentTCB.153_2;
  926. struct ListItem_t * _3;
  927. long unsigned int _4;
  928. struct TCB_t * pxCurrentTCB.154_5;
  929. struct TCB_t * pxCurrentTCB.155_6;
  930. struct xLIST_ITEM * _7;
  931. struct TCB_t * pxCurrentTCB.156_8;
  932. struct xLIST_ITEM * _9;
  933. struct ListItem_t * _10;
  934. struct TCB_t * pxCurrentTCB.157_11;
  935. struct ListItem_t * _12;
  936. struct TCB_t * pxCurrentTCB.158_13;
  937. long unsigned int _14;
  938. long unsigned int _15;
  939. struct TCB_t * pxCurrentTCB.159_16;
  940. struct List_t * pxOverflowDelayedTaskList.160_17;
  941. struct TCB_t * pxCurrentTCB.161_18;
  942. struct ListItem_t * _19;
  943. struct List_t * pxDelayedTaskList.162_20;
  944. struct TCB_t * pxCurrentTCB.163_21;
  945. struct ListItem_t * _22;
  946. long unsigned int xNextTaskUnblockTime.164_23;
  947. <bb 2> :
  948. xConstTickCount_26 ={v} xTickCount;
  949. pxCurrentTCB.152_1 ={v} pxCurrentTCB;
  950. pxCurrentTCB.152_1->ucDelayAborted = 0;
  951. pxCurrentTCB.153_2 ={v} pxCurrentTCB;
  952. _3 = &pxCurrentTCB.153_2->xStateListItem;
  953. _4 = uxListRemove (_3);
  954. <bb 3> :
  955. if (xTicksToWait_29(D) == 4294967295)
  956. goto <bb 4>; [INV]
  957. else
  958. goto <bb 6>; [INV]
  959. <bb 4> :
  960. if (xCanBlockIndefinitely_30(D) != 0)
  961. goto <bb 5>; [INV]
  962. else
  963. goto <bb 6>; [INV]
  964. <bb 5> :
  965. pxIndex_31 = xSuspendedTaskList.pxIndex;
  966. pxCurrentTCB.154_5 ={v} pxCurrentTCB;
  967. pxCurrentTCB.154_5->xStateListItem.pxNext = pxIndex_31;
  968. pxCurrentTCB.155_6 ={v} pxCurrentTCB;
  969. _7 = pxIndex_31->pxPrevious;
  970. pxCurrentTCB.155_6->xStateListItem.pxPrevious = _7;
  971. pxCurrentTCB.156_8 ={v} pxCurrentTCB;
  972. _9 = pxIndex_31->pxPrevious;
  973. _10 = &pxCurrentTCB.156_8->xStateListItem;
  974. _9->pxNext = _10;
  975. pxCurrentTCB.157_11 ={v} pxCurrentTCB;
  976. _12 = &pxCurrentTCB.157_11->xStateListItem;
  977. pxIndex_31->pxPrevious = _12;
  978. pxCurrentTCB.158_13 ={v} pxCurrentTCB;
  979. pxCurrentTCB.158_13->xStateListItem.pvContainer = &xSuspendedTaskList;
  980. _14 ={v} xSuspendedTaskList.uxNumberOfItems;
  981. _15 = _14 + 1;
  982. xSuspendedTaskList.uxNumberOfItems ={v} _15;
  983. goto <bb 10>; [INV]
  984. <bb 6> :
  985. xTimeToWake_38 = xConstTickCount_26 + xTicksToWait_29(D);
  986. pxCurrentTCB.159_16 ={v} pxCurrentTCB;
  987. pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake_38;
  988. if (xTimeToWake_38 < xConstTickCount_26)
  989. goto <bb 7>; [INV]
  990. else
  991. goto <bb 8>; [INV]
  992. <bb 7> :
  993. pxOverflowDelayedTaskList.160_17 ={v} pxOverflowDelayedTaskList;
  994. pxCurrentTCB.161_18 ={v} pxCurrentTCB;
  995. _19 = &pxCurrentTCB.161_18->xStateListItem;
  996. vListInsert (pxOverflowDelayedTaskList.160_17, _19);
  997. goto <bb 10>; [INV]
  998. <bb 8> :
  999. pxDelayedTaskList.162_20 ={v} pxDelayedTaskList;
  1000. pxCurrentTCB.163_21 ={v} pxCurrentTCB;
  1001. _22 = &pxCurrentTCB.163_21->xStateListItem;
  1002. vListInsert (pxDelayedTaskList.162_20, _22);
  1003. xNextTaskUnblockTime.164_23 ={v} xNextTaskUnblockTime;
  1004. if (xTimeToWake_38 < xNextTaskUnblockTime.164_23)
  1005. goto <bb 9>; [INV]
  1006. else
  1007. goto <bb 10>; [INV]
  1008. <bb 9> :
  1009. xNextTaskUnblockTime ={v} xTimeToWake_38;
  1010. <bb 10> :
  1011. return;
  1012. }
  1013. ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear)
  1014. {
  1015. uint32_t ulReturn;
  1016. struct TCB_t * pxTCB;
  1017. uint32_t D.8224;
  1018. struct TCB_t * iftmp.151;
  1019. long unsigned int _1;
  1020. long unsigned int _2;
  1021. long unsigned int _3;
  1022. struct TCB_t * iftmp.151_4;
  1023. struct TCB_t * iftmp.151_6;
  1024. struct TCB_t * iftmp.151_8;
  1025. uint32_t _16;
  1026. <bb 2> :
  1027. if (xTask_5(D) == 0B)
  1028. goto <bb 3>; [INV]
  1029. else
  1030. goto <bb 4>; [INV]
  1031. <bb 3> :
  1032. iftmp.151_8 ={v} pxCurrentTCB;
  1033. goto <bb 5>; [INV]
  1034. <bb 4> :
  1035. iftmp.151_6 = xTask_5(D);
  1036. <bb 5> :
  1037. # iftmp.151_4 = PHI <iftmp.151_8(3), iftmp.151_6(4)>
  1038. pxTCB_9 = iftmp.151_4;
  1039. vPortEnterCritical ();
  1040. ulReturn_12 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)];
  1041. _1 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)];
  1042. _2 = ~ulBitsToClear_13(D);
  1043. _3 = _1 & _2;
  1044. pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)] ={v} _3;
  1045. vPortExitCritical ();
  1046. _16 = ulReturn_12;
  1047. <bb 6> :
  1048. <L3>:
  1049. return _16;
  1050. }
  1051. xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear)
  1052. {
  1053. uint32_t ulNewBASEPRI;
  1054. BaseType_t xReturn;
  1055. struct TCB_t * pxTCB;
  1056. BaseType_t D.8218;
  1057. struct TCB_t * iftmp.150;
  1058. unsigned char _1;
  1059. struct TCB_t * iftmp.150_3;
  1060. struct TCB_t * iftmp.150_7;
  1061. struct TCB_t * iftmp.150_9;
  1062. BaseType_t _16;
  1063. <bb 2> :
  1064. if (uxIndexToClear_5(D) != 0)
  1065. goto <bb 3>; [INV]
  1066. else
  1067. goto <bb 6>; [INV]
  1068. <bb 3> :
  1069. __asm__ __volatile__(" mov %0, %1
  1070. msr basepri, %0
  1071. isb
  1072. dsb
  1073. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  1074. <bb 4> :
  1075. <bb 5> :
  1076. goto <bb 5>; [INV]
  1077. <bb 6> :
  1078. if (xTask_6(D) == 0B)
  1079. goto <bb 7>; [INV]
  1080. else
  1081. goto <bb 8>; [INV]
  1082. <bb 7> :
  1083. iftmp.150_9 ={v} pxCurrentTCB;
  1084. goto <bb 9>; [INV]
  1085. <bb 8> :
  1086. iftmp.150_7 = xTask_6(D);
  1087. <bb 9> :
  1088. # iftmp.150_3 = PHI <iftmp.150_9(7), iftmp.150_7(8)>
  1089. pxTCB_10 = iftmp.150_3;
  1090. vPortEnterCritical ();
  1091. _1 ={v} pxTCB_10->ucNotifyState[uxIndexToClear_5(D)];
  1092. if (_1 == 2)
  1093. goto <bb 10>; [INV]
  1094. else
  1095. goto <bb 11>; [INV]
  1096. <bb 10> :
  1097. pxTCB_10->ucNotifyState[uxIndexToClear_5(D)] ={v} 0;
  1098. xReturn_14 = 1;
  1099. goto <bb 12>; [INV]
  1100. <bb 11> :
  1101. xReturn_12 = 0;
  1102. <bb 12> :
  1103. # xReturn_2 = PHI <xReturn_14(10), xReturn_12(11)>
  1104. vPortExitCritical ();
  1105. _16 = xReturn_2;
  1106. <bb 13> :
  1107. <L9>:
  1108. return _16;
  1109. }
  1110. vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken)
  1111. {
  1112. uint32_t ulNewMaskValue;
  1113. uint32_t ulNewBASEPRI;
  1114. uint32_t D.8368;
  1115. uint32_t ulOriginalBASEPRI;
  1116. uint32_t ulNewBASEPRI;
  1117. uint32_t D.8367;
  1118. uint32_t ulNewBASEPRI;
  1119. uint32_t ulNewBASEPRI;
  1120. struct ListItem_t * const pxIndex;
  1121. struct ListItem_t * const pxIndex;
  1122. struct List_t * const pxList;
  1123. UBaseType_t uxSavedInterruptStatus;
  1124. uint8_t ucOriginalNotifyState;
  1125. struct TCB_t * pxTCB;
  1126. long unsigned int _1;
  1127. long unsigned int _2;
  1128. struct xLIST * _3;
  1129. long unsigned int uxSchedulerSuspended.147_4;
  1130. struct xLIST_ITEM * _5;
  1131. struct xLIST_ITEM * _6;
  1132. struct xLIST_ITEM * _7;
  1133. struct xLIST_ITEM * _8;
  1134. struct ListItem_t * _9;
  1135. struct ListItem_t * _10;
  1136. struct xLIST_ITEM * _11;
  1137. long unsigned int _12;
  1138. long unsigned int _13;
  1139. long unsigned int _14;
  1140. long unsigned int uxTopReadyPriority.148_15;
  1141. long unsigned int _16;
  1142. long unsigned int _17;
  1143. struct xLIST_ITEM * _18;
  1144. struct xLIST_ITEM * _19;
  1145. struct ListItem_t * _20;
  1146. struct ListItem_t * _21;
  1147. long unsigned int _22;
  1148. struct List_t * _23;
  1149. long unsigned int _24;
  1150. long unsigned int _25;
  1151. long unsigned int _26;
  1152. struct xLIST_ITEM * _27;
  1153. struct xLIST_ITEM * _28;
  1154. struct ListItem_t * _29;
  1155. struct ListItem_t * _30;
  1156. long unsigned int _31;
  1157. long unsigned int _32;
  1158. long unsigned int _33;
  1159. struct TCB_t * pxCurrentTCB.149_34;
  1160. long unsigned int _35;
  1161. long unsigned int _78;
  1162. <bb 2> :
  1163. if (xTaskToNotify_41(D) == 0B)
  1164. goto <bb 3>; [INV]
  1165. else
  1166. goto <bb 6>; [INV]
  1167. <bb 3> :
  1168. __asm__ __volatile__(" mov %0, %1
  1169. msr basepri, %0
  1170. isb
  1171. dsb
  1172. " : "=r" ulNewBASEPRI_74 : "i" 16 : "memory");
  1173. <bb 4> :
  1174. <bb 5> :
  1175. goto <bb 5>; [INV]
  1176. <bb 6> :
  1177. if (uxIndexToNotify_42(D) != 0)
  1178. goto <bb 7>; [INV]
  1179. else
  1180. goto <bb 10>; [INV]
  1181. <bb 7> :
  1182. __asm__ __volatile__(" mov %0, %1
  1183. msr basepri, %0
  1184. isb
  1185. dsb
  1186. " : "=r" ulNewBASEPRI_75 : "i" 16 : "memory");
  1187. <bb 8> :
  1188. <bb 9> :
  1189. goto <bb 9>; [INV]
  1190. <bb 10> :
  1191. vPortValidateInterruptPriority ();
  1192. pxTCB_45 = xTaskToNotify_41(D);
  1193. __asm__ __volatile__(" mrs %0, basepri
  1194. mov %1, %2
  1195. msr basepri, %1
  1196. isb
  1197. dsb
  1198. " : "=r" ulOriginalBASEPRI_76, "=r" ulNewBASEPRI_77 : "i" 16 : "memory");
  1199. _78 = ulOriginalBASEPRI_76;
  1200. <bb 11> :
  1201. <L23>:
  1202. _82 = _78;
  1203. <bb 12> :
  1204. uxSavedInterruptStatus_46 = _82;
  1205. ucOriginalNotifyState_47 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)];
  1206. pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)] ={v} 2;
  1207. _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)];
  1208. _2 = _1 + 1;
  1209. pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)] ={v} _2;
  1210. if (ucOriginalNotifyState_47 == 1)
  1211. goto <bb 13>; [INV]
  1212. else
  1213. goto <bb 28>; [INV]
  1214. <bb 13> :
  1215. _3 = pxTCB_45->xEventListItem.pvContainer;
  1216. if (_3 != 0B)
  1217. goto <bb 14>; [INV]
  1218. else
  1219. goto <bb 17>; [INV]
  1220. <bb 14> :
  1221. __asm__ __volatile__(" mov %0, %1
  1222. msr basepri, %0
  1223. isb
  1224. dsb
  1225. " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory");
  1226. <bb 15> :
  1227. <bb 16> :
  1228. goto <bb 16>; [INV]
  1229. <bb 17> :
  1230. uxSchedulerSuspended.147_4 ={v} uxSchedulerSuspended;
  1231. if (uxSchedulerSuspended.147_4 == 0)
  1232. goto <bb 18>; [INV]
  1233. else
  1234. goto <bb 23>; [INV]
  1235. <bb 18> :
  1236. pxList_57 = pxTCB_45->xStateListItem.pvContainer;
  1237. _5 = pxTCB_45->xStateListItem.pxNext;
  1238. _6 = pxTCB_45->xStateListItem.pxPrevious;
  1239. _5->pxPrevious = _6;
  1240. _7 = pxTCB_45->xStateListItem.pxPrevious;
  1241. _8 = pxTCB_45->xStateListItem.pxNext;
  1242. _7->pxNext = _8;
  1243. _9 = pxList_57->pxIndex;
  1244. _10 = &pxTCB_45->xStateListItem;
  1245. if (_9 == _10)
  1246. goto <bb 19>; [INV]
  1247. else
  1248. goto <bb 20>; [INV]
  1249. <bb 19> :
  1250. _11 = pxTCB_45->xStateListItem.pxPrevious;
  1251. pxList_57->pxIndex = _11;
  1252. <bb 20> :
  1253. pxTCB_45->xStateListItem.pvContainer = 0B;
  1254. _12 ={v} pxList_57->uxNumberOfItems;
  1255. _13 = _12 + 4294967295;
  1256. pxList_57->uxNumberOfItems ={v} _13;
  1257. _14 = pxTCB_45->uxPriority;
  1258. uxTopReadyPriority.148_15 ={v} uxTopReadyPriority;
  1259. if (_14 > uxTopReadyPriority.148_15)
  1260. goto <bb 21>; [INV]
  1261. else
  1262. goto <bb 22>; [INV]
  1263. <bb 21> :
  1264. _16 = pxTCB_45->uxPriority;
  1265. uxTopReadyPriority ={v} _16;
  1266. <bb 22> :
  1267. _17 = pxTCB_45->uxPriority;
  1268. pxIndex_64 = pxReadyTasksLists[_17].pxIndex;
  1269. pxTCB_45->xStateListItem.pxNext = pxIndex_64;
  1270. _18 = pxIndex_64->pxPrevious;
  1271. pxTCB_45->xStateListItem.pxPrevious = _18;
  1272. _19 = pxIndex_64->pxPrevious;
  1273. _20 = &pxTCB_45->xStateListItem;
  1274. _19->pxNext = _20;
  1275. _21 = &pxTCB_45->xStateListItem;
  1276. pxIndex_64->pxPrevious = _21;
  1277. _22 = pxTCB_45->uxPriority;
  1278. _23 = &pxReadyTasksLists[_22];
  1279. pxTCB_45->xStateListItem.pvContainer = _23;
  1280. _24 = pxTCB_45->uxPriority;
  1281. _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems;
  1282. _26 = _25 + 1;
  1283. pxReadyTasksLists[_24].uxNumberOfItems ={v} _26;
  1284. goto <bb 24>; [INV]
  1285. <bb 23> :
  1286. pxIndex_50 = xPendingReadyList.pxIndex;
  1287. pxTCB_45->xEventListItem.pxNext = pxIndex_50;
  1288. _27 = pxIndex_50->pxPrevious;
  1289. pxTCB_45->xEventListItem.pxPrevious = _27;
  1290. _28 = pxIndex_50->pxPrevious;
  1291. _29 = &pxTCB_45->xEventListItem;
  1292. _28->pxNext = _29;
  1293. _30 = &pxTCB_45->xEventListItem;
  1294. pxIndex_50->pxPrevious = _30;
  1295. pxTCB_45->xEventListItem.pvContainer = &xPendingReadyList;
  1296. _31 ={v} xPendingReadyList.uxNumberOfItems;
  1297. _32 = _31 + 1;
  1298. xPendingReadyList.uxNumberOfItems ={v} _32;
  1299. <bb 24> :
  1300. _33 = pxTCB_45->uxPriority;
  1301. pxCurrentTCB.149_34 ={v} pxCurrentTCB;
  1302. _35 = pxCurrentTCB.149_34->uxPriority;
  1303. if (_33 > _35)
  1304. goto <bb 25>; [INV]
  1305. else
  1306. goto <bb 28>; [INV]
  1307. <bb 25> :
  1308. if (pxHigherPriorityTaskWoken_71(D) != 0B)
  1309. goto <bb 26>; [INV]
  1310. else
  1311. goto <bb 27>; [INV]
  1312. <bb 26> :
  1313. *pxHigherPriorityTaskWoken_71(D) = 1;
  1314. <bb 27> :
  1315. xYieldPending ={v} 1;
  1316. <bb 28> :
  1317. ulNewMaskValue_80 = uxSavedInterruptStatus_46;
  1318. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_80 : "memory");
  1319. <bb 29> :
  1320. return;
  1321. }
  1322. xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken)
  1323. {
  1324. uint32_t ulNewMaskValue;
  1325. uint32_t ulNewBASEPRI;
  1326. uint32_t ulNewBASEPRI;
  1327. uint32_t D.8358;
  1328. uint32_t ulOriginalBASEPRI;
  1329. uint32_t ulNewBASEPRI;
  1330. uint32_t D.8357;
  1331. uint32_t ulNewBASEPRI;
  1332. uint32_t ulNewBASEPRI;
  1333. struct ListItem_t * const pxIndex;
  1334. struct ListItem_t * const pxIndex;
  1335. struct List_t * const pxList;
  1336. UBaseType_t uxSavedInterruptStatus;
  1337. BaseType_t xReturn;
  1338. uint8_t ucOriginalNotifyState;
  1339. struct TCB_t * pxTCB;
  1340. BaseType_t D.8187;
  1341. long unsigned int _1;
  1342. long unsigned int _2;
  1343. long unsigned int _3;
  1344. long unsigned int _4;
  1345. long unsigned int _5;
  1346. long unsigned int xTickCount.143_6;
  1347. struct xLIST * _7;
  1348. long unsigned int uxSchedulerSuspended.144_8;
  1349. struct xLIST_ITEM * _9;
  1350. struct xLIST_ITEM * _10;
  1351. struct xLIST_ITEM * _11;
  1352. struct xLIST_ITEM * _12;
  1353. struct ListItem_t * _13;
  1354. struct ListItem_t * _14;
  1355. struct xLIST_ITEM * _15;
  1356. long unsigned int _16;
  1357. long unsigned int _17;
  1358. long unsigned int _18;
  1359. long unsigned int uxTopReadyPriority.145_19;
  1360. long unsigned int _20;
  1361. long unsigned int _21;
  1362. struct xLIST_ITEM * _22;
  1363. struct xLIST_ITEM * _23;
  1364. struct ListItem_t * _24;
  1365. struct ListItem_t * _25;
  1366. long unsigned int _26;
  1367. struct List_t * _27;
  1368. long unsigned int _28;
  1369. long unsigned int _29;
  1370. long unsigned int _30;
  1371. struct xLIST_ITEM * _31;
  1372. struct xLIST_ITEM * _32;
  1373. struct ListItem_t * _33;
  1374. struct ListItem_t * _34;
  1375. long unsigned int _35;
  1376. long unsigned int _36;
  1377. long unsigned int _37;
  1378. struct TCB_t * pxCurrentTCB.146_38;
  1379. long unsigned int _39;
  1380. BaseType_t _92;
  1381. long unsigned int _97;
  1382. <bb 2> :
  1383. xReturn_50 = 1;
  1384. if (xTaskToNotify_51(D) == 0B)
  1385. goto <bb 3>; [INV]
  1386. else
  1387. goto <bb 6>; [INV]
  1388. <bb 3> :
  1389. __asm__ __volatile__(" mov %0, %1
  1390. msr basepri, %0
  1391. isb
  1392. dsb
  1393. " : "=r" ulNewBASEPRI_93 : "i" 16 : "memory");
  1394. <bb 4> :
  1395. <bb 5> :
  1396. goto <bb 5>; [INV]
  1397. <bb 6> :
  1398. if (uxIndexToNotify_52(D) != 0)
  1399. goto <bb 7>; [INV]
  1400. else
  1401. goto <bb 10>; [INV]
  1402. <bb 7> :
  1403. __asm__ __volatile__(" mov %0, %1
  1404. msr basepri, %0
  1405. isb
  1406. dsb
  1407. " : "=r" ulNewBASEPRI_94 : "i" 16 : "memory");
  1408. <bb 8> :
  1409. <bb 9> :
  1410. goto <bb 9>; [INV]
  1411. <bb 10> :
  1412. vPortValidateInterruptPriority ();
  1413. pxTCB_55 = xTaskToNotify_51(D);
  1414. __asm__ __volatile__(" mrs %0, basepri
  1415. mov %1, %2
  1416. msr basepri, %1
  1417. isb
  1418. dsb
  1419. " : "=r" ulOriginalBASEPRI_95, "=r" ulNewBASEPRI_96 : "i" 16 : "memory");
  1420. _97 = ulOriginalBASEPRI_95;
  1421. <bb 11> :
  1422. <L39>:
  1423. _102 = _97;
  1424. <bb 12> :
  1425. uxSavedInterruptStatus_56 = _102;
  1426. if (pulPreviousNotificationValue_57(D) != 0B)
  1427. goto <bb 13>; [INV]
  1428. else
  1429. goto <bb 14>; [INV]
  1430. <bb 13> :
  1431. _1 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
  1432. *pulPreviousNotificationValue_57(D) = _1;
  1433. <bb 14> :
  1434. ucOriginalNotifyState_59 ={v} pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)];
  1435. pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)] ={v} 2;
  1436. switch (eAction_61(D)) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
  1437. <bb 15> :
  1438. <L8>:
  1439. _2 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
  1440. _3 = ulValue_63(D) | _2;
  1441. pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _3;
  1442. goto <bb 28>; [INV]
  1443. <bb 16> :
  1444. <L9>:
  1445. _4 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
  1446. _5 = _4 + 1;
  1447. pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _5;
  1448. goto <bb 28>; [INV]
  1449. <bb 17> :
  1450. <L10>:
  1451. pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D);
  1452. goto <bb 28>; [INV]
  1453. <bb 18> :
  1454. <L11>:
  1455. if (ucOriginalNotifyState_59 != 2)
  1456. goto <bb 19>; [INV]
  1457. else
  1458. goto <bb 20>; [INV]
  1459. <bb 19> :
  1460. pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D);
  1461. goto <bb 21>; [INV]
  1462. <bb 20> :
  1463. xReturn_62 = 0;
  1464. <bb 21> :
  1465. # xReturn_40 = PHI <xReturn_50(19), xReturn_62(20)>
  1466. goto <bb 28>; [INV]
  1467. <bb 22> :
  1468. <L15>:
  1469. goto <bb 28>; [INV]
  1470. <bb 23> :
  1471. <L16>:
  1472. xTickCount.143_6 ={v} xTickCount;
  1473. if (xTickCount.143_6 != 0)
  1474. goto <bb 24>; [INV]
  1475. else
  1476. goto <bb 27>; [INV]
  1477. <bb 24> :
  1478. __asm__ __volatile__(" mov %0, %1
  1479. msr basepri, %0
  1480. isb
  1481. dsb
  1482. " : "=r" ulNewBASEPRI_98 : "i" 16 : "memory");
  1483. <bb 25> :
  1484. <bb 26> :
  1485. goto <bb 26>; [INV]
  1486. <bb 27> :
  1487. <bb 28> :
  1488. # xReturn_41 = PHI <xReturn_50(15), xReturn_50(16), xReturn_50(17), xReturn_40(21), xReturn_50(22), xReturn_50(27)>
  1489. if (ucOriginalNotifyState_59 == 1)
  1490. goto <bb 29>; [INV]
  1491. else
  1492. goto <bb 44>; [INV]
  1493. <bb 29> :
  1494. _7 = pxTCB_55->xEventListItem.pvContainer;
  1495. if (_7 != 0B)
  1496. goto <bb 30>; [INV]
  1497. else
  1498. goto <bb 33>; [INV]
  1499. <bb 30> :
  1500. __asm__ __volatile__(" mov %0, %1
  1501. msr basepri, %0
  1502. isb
  1503. dsb
  1504. " : "=r" ulNewBASEPRI_99 : "i" 16 : "memory");
  1505. <bb 31> :
  1506. <bb 32> :
  1507. goto <bb 32>; [INV]
  1508. <bb 33> :
  1509. uxSchedulerSuspended.144_8 ={v} uxSchedulerSuspended;
  1510. if (uxSchedulerSuspended.144_8 == 0)
  1511. goto <bb 34>; [INV]
  1512. else
  1513. goto <bb 39>; [INV]
  1514. <bb 34> :
  1515. pxList_75 = pxTCB_55->xStateListItem.pvContainer;
  1516. _9 = pxTCB_55->xStateListItem.pxNext;
  1517. _10 = pxTCB_55->xStateListItem.pxPrevious;
  1518. _9->pxPrevious = _10;
  1519. _11 = pxTCB_55->xStateListItem.pxPrevious;
  1520. _12 = pxTCB_55->xStateListItem.pxNext;
  1521. _11->pxNext = _12;
  1522. _13 = pxList_75->pxIndex;
  1523. _14 = &pxTCB_55->xStateListItem;
  1524. if (_13 == _14)
  1525. goto <bb 35>; [INV]
  1526. else
  1527. goto <bb 36>; [INV]
  1528. <bb 35> :
  1529. _15 = pxTCB_55->xStateListItem.pxPrevious;
  1530. pxList_75->pxIndex = _15;
  1531. <bb 36> :
  1532. pxTCB_55->xStateListItem.pvContainer = 0B;
  1533. _16 ={v} pxList_75->uxNumberOfItems;
  1534. _17 = _16 + 4294967295;
  1535. pxList_75->uxNumberOfItems ={v} _17;
  1536. _18 = pxTCB_55->uxPriority;
  1537. uxTopReadyPriority.145_19 ={v} uxTopReadyPriority;
  1538. if (_18 > uxTopReadyPriority.145_19)
  1539. goto <bb 37>; [INV]
  1540. else
  1541. goto <bb 38>; [INV]
  1542. <bb 37> :
  1543. _20 = pxTCB_55->uxPriority;
  1544. uxTopReadyPriority ={v} _20;
  1545. <bb 38> :
  1546. _21 = pxTCB_55->uxPriority;
  1547. pxIndex_82 = pxReadyTasksLists[_21].pxIndex;
  1548. pxTCB_55->xStateListItem.pxNext = pxIndex_82;
  1549. _22 = pxIndex_82->pxPrevious;
  1550. pxTCB_55->xStateListItem.pxPrevious = _22;
  1551. _23 = pxIndex_82->pxPrevious;
  1552. _24 = &pxTCB_55->xStateListItem;
  1553. _23->pxNext = _24;
  1554. _25 = &pxTCB_55->xStateListItem;
  1555. pxIndex_82->pxPrevious = _25;
  1556. _26 = pxTCB_55->uxPriority;
  1557. _27 = &pxReadyTasksLists[_26];
  1558. pxTCB_55->xStateListItem.pvContainer = _27;
  1559. _28 = pxTCB_55->uxPriority;
  1560. _29 ={v} pxReadyTasksLists[_28].uxNumberOfItems;
  1561. _30 = _29 + 1;
  1562. pxReadyTasksLists[_28].uxNumberOfItems ={v} _30;
  1563. goto <bb 40>; [INV]
  1564. <bb 39> :
  1565. pxIndex_68 = xPendingReadyList.pxIndex;
  1566. pxTCB_55->xEventListItem.pxNext = pxIndex_68;
  1567. _31 = pxIndex_68->pxPrevious;
  1568. pxTCB_55->xEventListItem.pxPrevious = _31;
  1569. _32 = pxIndex_68->pxPrevious;
  1570. _33 = &pxTCB_55->xEventListItem;
  1571. _32->pxNext = _33;
  1572. _34 = &pxTCB_55->xEventListItem;
  1573. pxIndex_68->pxPrevious = _34;
  1574. pxTCB_55->xEventListItem.pvContainer = &xPendingReadyList;
  1575. _35 ={v} xPendingReadyList.uxNumberOfItems;
  1576. _36 = _35 + 1;
  1577. xPendingReadyList.uxNumberOfItems ={v} _36;
  1578. <bb 40> :
  1579. _37 = pxTCB_55->uxPriority;
  1580. pxCurrentTCB.146_38 ={v} pxCurrentTCB;
  1581. _39 = pxCurrentTCB.146_38->uxPriority;
  1582. if (_37 > _39)
  1583. goto <bb 41>; [INV]
  1584. else
  1585. goto <bb 44>; [INV]
  1586. <bb 41> :
  1587. if (pxHigherPriorityTaskWoken_89(D) != 0B)
  1588. goto <bb 42>; [INV]
  1589. else
  1590. goto <bb 43>; [INV]
  1591. <bb 42> :
  1592. *pxHigherPriorityTaskWoken_89(D) = 1;
  1593. <bb 43> :
  1594. xYieldPending ={v} 1;
  1595. <bb 44> :
  1596. ulNewMaskValue_100 = uxSavedInterruptStatus_56;
  1597. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_100 : "memory");
  1598. <bb 45> :
  1599. _92 = xReturn_41;
  1600. <bb 46> :
  1601. <L38>:
  1602. return _92;
  1603. }
  1604. xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue)
  1605. {
  1606. uint32_t ulNewBASEPRI;
  1607. uint32_t ulNewBASEPRI;
  1608. uint32_t ulNewBASEPRI;
  1609. uint32_t ulNewBASEPRI;
  1610. struct ListItem_t * const pxIndex;
  1611. struct List_t * const pxList;
  1612. uint8_t ucOriginalNotifyState;
  1613. BaseType_t xReturn;
  1614. struct TCB_t * pxTCB;
  1615. BaseType_t D.8158;
  1616. long unsigned int _1;
  1617. long unsigned int _2;
  1618. long unsigned int _3;
  1619. long unsigned int _4;
  1620. long unsigned int _5;
  1621. long unsigned int xTickCount.140_6;
  1622. struct xLIST_ITEM * _7;
  1623. struct xLIST_ITEM * _8;
  1624. struct xLIST_ITEM * _9;
  1625. struct xLIST_ITEM * _10;
  1626. struct ListItem_t * _11;
  1627. struct ListItem_t * _12;
  1628. struct xLIST_ITEM * _13;
  1629. long unsigned int _14;
  1630. long unsigned int _15;
  1631. long unsigned int _16;
  1632. long unsigned int uxTopReadyPriority.141_17;
  1633. long unsigned int _18;
  1634. long unsigned int _19;
  1635. struct xLIST_ITEM * _20;
  1636. struct xLIST_ITEM * _21;
  1637. struct ListItem_t * _22;
  1638. struct ListItem_t * _23;
  1639. long unsigned int _24;
  1640. struct List_t * _25;
  1641. long unsigned int _26;
  1642. long unsigned int _27;
  1643. long unsigned int _28;
  1644. struct xLIST * _29;
  1645. long unsigned int _30;
  1646. struct TCB_t * pxCurrentTCB.142_31;
  1647. long unsigned int _32;
  1648. volatile uint32_t * _33;
  1649. BaseType_t _77;
  1650. <bb 2> :
  1651. xReturn_42 = 1;
  1652. if (uxIndexToNotify_43(D) != 0)
  1653. goto <bb 3>; [INV]
  1654. else
  1655. goto <bb 6>; [INV]
  1656. <bb 3> :
  1657. __asm__ __volatile__(" mov %0, %1
  1658. msr basepri, %0
  1659. isb
  1660. dsb
  1661. " : "=r" ulNewBASEPRI_78 : "i" 16 : "memory");
  1662. <bb 4> :
  1663. <bb 5> :
  1664. goto <bb 5>; [INV]
  1665. <bb 6> :
  1666. if (xTaskToNotify_44(D) == 0B)
  1667. goto <bb 7>; [INV]
  1668. else
  1669. goto <bb 10>; [INV]
  1670. <bb 7> :
  1671. __asm__ __volatile__(" mov %0, %1
  1672. msr basepri, %0
  1673. isb
  1674. dsb
  1675. " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory");
  1676. <bb 8> :
  1677. <bb 9> :
  1678. goto <bb 9>; [INV]
  1679. <bb 10> :
  1680. pxTCB_45 = xTaskToNotify_44(D);
  1681. vPortEnterCritical ();
  1682. if (pulPreviousNotificationValue_48(D) != 0B)
  1683. goto <bb 11>; [INV]
  1684. else
  1685. goto <bb 12>; [INV]
  1686. <bb 11> :
  1687. _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
  1688. *pulPreviousNotificationValue_48(D) = _1;
  1689. <bb 12> :
  1690. ucOriginalNotifyState_50 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)];
  1691. pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)] ={v} 2;
  1692. switch (eAction_52(D)) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
  1693. <bb 13> :
  1694. <L8>:
  1695. _2 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
  1696. _3 = ulValue_54(D) | _2;
  1697. pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _3;
  1698. goto <bb 26>; [INV]
  1699. <bb 14> :
  1700. <L9>:
  1701. _4 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
  1702. _5 = _4 + 1;
  1703. pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _5;
  1704. goto <bb 26>; [INV]
  1705. <bb 15> :
  1706. <L10>:
  1707. pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D);
  1708. goto <bb 26>; [INV]
  1709. <bb 16> :
  1710. <L11>:
  1711. if (ucOriginalNotifyState_50 != 2)
  1712. goto <bb 17>; [INV]
  1713. else
  1714. goto <bb 18>; [INV]
  1715. <bb 17> :
  1716. pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D);
  1717. goto <bb 19>; [INV]
  1718. <bb 18> :
  1719. xReturn_53 = 0;
  1720. <bb 19> :
  1721. # xReturn_34 = PHI <xReturn_42(17), xReturn_53(18)>
  1722. goto <bb 26>; [INV]
  1723. <bb 20> :
  1724. <L15>:
  1725. goto <bb 26>; [INV]
  1726. <bb 21> :
  1727. <L16>:
  1728. xTickCount.140_6 ={v} xTickCount;
  1729. if (xTickCount.140_6 != 0)
  1730. goto <bb 22>; [INV]
  1731. else
  1732. goto <bb 25>; [INV]
  1733. <bb 22> :
  1734. __asm__ __volatile__(" mov %0, %1
  1735. msr basepri, %0
  1736. isb
  1737. dsb
  1738. " : "=r" ulNewBASEPRI_80 : "i" 16 : "memory");
  1739. <bb 23> :
  1740. <bb 24> :
  1741. goto <bb 24>; [INV]
  1742. <bb 25> :
  1743. <bb 26> :
  1744. # xReturn_35 = PHI <xReturn_42(13), xReturn_42(14), xReturn_42(15), xReturn_34(19), xReturn_42(20), xReturn_42(25)>
  1745. if (ucOriginalNotifyState_50 == 1)
  1746. goto <bb 27>; [INV]
  1747. else
  1748. goto <bb 37>; [INV]
  1749. <bb 27> :
  1750. pxList_59 = pxTCB_45->xStateListItem.pvContainer;
  1751. _7 = pxTCB_45->xStateListItem.pxNext;
  1752. _8 = pxTCB_45->xStateListItem.pxPrevious;
  1753. _7->pxPrevious = _8;
  1754. _9 = pxTCB_45->xStateListItem.pxPrevious;
  1755. _10 = pxTCB_45->xStateListItem.pxNext;
  1756. _9->pxNext = _10;
  1757. _11 = pxList_59->pxIndex;
  1758. _12 = &pxTCB_45->xStateListItem;
  1759. if (_11 == _12)
  1760. goto <bb 28>; [INV]
  1761. else
  1762. goto <bb 29>; [INV]
  1763. <bb 28> :
  1764. _13 = pxTCB_45->xStateListItem.pxPrevious;
  1765. pxList_59->pxIndex = _13;
  1766. <bb 29> :
  1767. pxTCB_45->xStateListItem.pvContainer = 0B;
  1768. _14 ={v} pxList_59->uxNumberOfItems;
  1769. _15 = _14 + 4294967295;
  1770. pxList_59->uxNumberOfItems ={v} _15;
  1771. _16 = pxTCB_45->uxPriority;
  1772. uxTopReadyPriority.141_17 ={v} uxTopReadyPriority;
  1773. if (_16 > uxTopReadyPriority.141_17)
  1774. goto <bb 30>; [INV]
  1775. else
  1776. goto <bb 31>; [INV]
  1777. <bb 30> :
  1778. _18 = pxTCB_45->uxPriority;
  1779. uxTopReadyPriority ={v} _18;
  1780. <bb 31> :
  1781. _19 = pxTCB_45->uxPriority;
  1782. pxIndex_66 = pxReadyTasksLists[_19].pxIndex;
  1783. pxTCB_45->xStateListItem.pxNext = pxIndex_66;
  1784. _20 = pxIndex_66->pxPrevious;
  1785. pxTCB_45->xStateListItem.pxPrevious = _20;
  1786. _21 = pxIndex_66->pxPrevious;
  1787. _22 = &pxTCB_45->xStateListItem;
  1788. _21->pxNext = _22;
  1789. _23 = &pxTCB_45->xStateListItem;
  1790. pxIndex_66->pxPrevious = _23;
  1791. _24 = pxTCB_45->uxPriority;
  1792. _25 = &pxReadyTasksLists[_24];
  1793. pxTCB_45->xStateListItem.pvContainer = _25;
  1794. _26 = pxTCB_45->uxPriority;
  1795. _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems;
  1796. _28 = _27 + 1;
  1797. pxReadyTasksLists[_26].uxNumberOfItems ={v} _28;
  1798. _29 = pxTCB_45->xEventListItem.pvContainer;
  1799. if (_29 != 0B)
  1800. goto <bb 32>; [INV]
  1801. else
  1802. goto <bb 35>; [INV]
  1803. <bb 32> :
  1804. __asm__ __volatile__(" mov %0, %1
  1805. msr basepri, %0
  1806. isb
  1807. dsb
  1808. " : "=r" ulNewBASEPRI_81 : "i" 16 : "memory");
  1809. <bb 33> :
  1810. <bb 34> :
  1811. goto <bb 34>; [INV]
  1812. <bb 35> :
  1813. _30 = pxTCB_45->uxPriority;
  1814. pxCurrentTCB.142_31 ={v} pxCurrentTCB;
  1815. _32 = pxCurrentTCB.142_31->uxPriority;
  1816. if (_30 > _32)
  1817. goto <bb 36>; [INV]
  1818. else
  1819. goto <bb 37>; [INV]
  1820. <bb 36> :
  1821. _33 = 3758157060B;
  1822. *_33 ={v} 268435456;
  1823. __asm__ __volatile__("dsb" : : : "memory");
  1824. __asm__ __volatile__("isb");
  1825. <bb 37> :
  1826. vPortExitCritical ();
  1827. _77 = xReturn_35;
  1828. <bb 38> :
  1829. <L34>:
  1830. return _77;
  1831. }
  1832. xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait)
  1833. {
  1834. uint32_t ulNewBASEPRI;
  1835. BaseType_t xReturn;
  1836. BaseType_t D.8133;
  1837. struct TCB_t * pxCurrentTCB.138;
  1838. struct TCB_t * pxCurrentTCB.134;
  1839. struct TCB_t * pxCurrentTCB.133_1;
  1840. unsigned char _2;
  1841. long unsigned int _3;
  1842. long unsigned int _4;
  1843. long unsigned int _5;
  1844. struct TCB_t * pxCurrentTCB.135_6;
  1845. volatile uint32_t * _7;
  1846. struct TCB_t * pxCurrentTCB.136_8;
  1847. long unsigned int _9;
  1848. struct TCB_t * pxCurrentTCB.137_10;
  1849. unsigned char _11;
  1850. long unsigned int _12;
  1851. long unsigned int _13;
  1852. long unsigned int _14;
  1853. struct TCB_t * pxCurrentTCB.139_15;
  1854. struct TCB_t * pxCurrentTCB.134_23;
  1855. struct TCB_t * pxCurrentTCB.138_36;
  1856. BaseType_t _43;
  1857. <bb 2> :
  1858. if (uxIndexToWait_20(D) != 0)
  1859. goto <bb 3>; [INV]
  1860. else
  1861. goto <bb 6>; [INV]
  1862. <bb 3> :
  1863. __asm__ __volatile__(" mov %0, %1
  1864. msr basepri, %0
  1865. isb
  1866. dsb
  1867. " : "=r" ulNewBASEPRI_44 : "i" 16 : "memory");
  1868. <bb 4> :
  1869. <bb 5> :
  1870. goto <bb 5>; [INV]
  1871. <bb 6> :
  1872. vPortEnterCritical ();
  1873. pxCurrentTCB.133_1 ={v} pxCurrentTCB;
  1874. _2 ={v} pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait_20(D)];
  1875. if (_2 != 2)
  1876. goto <bb 7>; [INV]
  1877. else
  1878. goto <bb 9>; [INV]
  1879. <bb 7> :
  1880. pxCurrentTCB.134_23 ={v} pxCurrentTCB;
  1881. _3 ={v} pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)];
  1882. _4 = ~ulBitsToClearOnEntry_24(D);
  1883. _5 = _3 & _4;
  1884. pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _5;
  1885. pxCurrentTCB.135_6 ={v} pxCurrentTCB;
  1886. pxCurrentTCB.135_6->ucNotifyState[uxIndexToWait_20(D)] ={v} 1;
  1887. if (xTicksToWait_27(D) != 0)
  1888. goto <bb 8>; [INV]
  1889. else
  1890. goto <bb 9>; [INV]
  1891. <bb 8> :
  1892. prvAddCurrentTaskToDelayedList (xTicksToWait_27(D), 1);
  1893. _7 = 3758157060B;
  1894. *_7 ={v} 268435456;
  1895. __asm__ __volatile__("dsb" : : : "memory");
  1896. __asm__ __volatile__("isb");
  1897. <bb 9> :
  1898. vPortExitCritical ();
  1899. vPortEnterCritical ();
  1900. if (pulNotificationValue_34(D) != 0B)
  1901. goto <bb 10>; [INV]
  1902. else
  1903. goto <bb 11>; [INV]
  1904. <bb 10> :
  1905. pxCurrentTCB.136_8 ={v} pxCurrentTCB;
  1906. _9 ={v} pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait_20(D)];
  1907. *pulNotificationValue_34(D) = _9;
  1908. <bb 11> :
  1909. pxCurrentTCB.137_10 ={v} pxCurrentTCB;
  1910. _11 ={v} pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait_20(D)];
  1911. if (_11 != 2)
  1912. goto <bb 12>; [INV]
  1913. else
  1914. goto <bb 13>; [INV]
  1915. <bb 12> :
  1916. xReturn_40 = 0;
  1917. goto <bb 14>; [INV]
  1918. <bb 13> :
  1919. pxCurrentTCB.138_36 ={v} pxCurrentTCB;
  1920. _12 ={v} pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)];
  1921. _13 = ~ulBitsToClearOnExit_37(D);
  1922. _14 = _12 & _13;
  1923. pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _14;
  1924. xReturn_39 = 1;
  1925. <bb 14> :
  1926. # xReturn_16 = PHI <xReturn_40(12), xReturn_39(13)>
  1927. pxCurrentTCB.139_15 ={v} pxCurrentTCB;
  1928. pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait_20(D)] ={v} 0;
  1929. vPortExitCritical ();
  1930. _43 = xReturn_16;
  1931. <bb 15> :
  1932. <L14>:
  1933. return _43;
  1934. }
  1935. ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
  1936. {
  1937. uint32_t ulNewBASEPRI;
  1938. uint32_t ulReturn;
  1939. uint32_t D.8116;
  1940. struct TCB_t * pxCurrentTCB.127_1;
  1941. long unsigned int _2;
  1942. struct TCB_t * pxCurrentTCB.128_3;
  1943. volatile uint32_t * _4;
  1944. struct TCB_t * pxCurrentTCB.129_5;
  1945. struct TCB_t * pxCurrentTCB.130_6;
  1946. struct TCB_t * pxCurrentTCB.131_7;
  1947. long unsigned int _8;
  1948. struct TCB_t * pxCurrentTCB.132_9;
  1949. uint32_t _29;
  1950. <bb 2> :
  1951. if (uxIndexToWait_12(D) != 0)
  1952. goto <bb 3>; [INV]
  1953. else
  1954. goto <bb 6>; [INV]
  1955. <bb 3> :
  1956. __asm__ __volatile__(" mov %0, %1
  1957. msr basepri, %0
  1958. isb
  1959. dsb
  1960. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  1961. <bb 4> :
  1962. <bb 5> :
  1963. goto <bb 5>; [INV]
  1964. <bb 6> :
  1965. vPortEnterCritical ();
  1966. pxCurrentTCB.127_1 ={v} pxCurrentTCB;
  1967. _2 ={v} pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait_12(D)];
  1968. if (_2 == 0)
  1969. goto <bb 7>; [INV]
  1970. else
  1971. goto <bb 9>; [INV]
  1972. <bb 7> :
  1973. pxCurrentTCB.128_3 ={v} pxCurrentTCB;
  1974. pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait_12(D)] ={v} 1;
  1975. if (xTicksToWait_16(D) != 0)
  1976. goto <bb 8>; [INV]
  1977. else
  1978. goto <bb 9>; [INV]
  1979. <bb 8> :
  1980. prvAddCurrentTaskToDelayedList (xTicksToWait_16(D), 1);
  1981. _4 = 3758157060B;
  1982. *_4 ={v} 268435456;
  1983. __asm__ __volatile__("dsb" : : : "memory");
  1984. __asm__ __volatile__("isb");
  1985. <bb 9> :
  1986. vPortExitCritical ();
  1987. vPortEnterCritical ();
  1988. pxCurrentTCB.129_5 ={v} pxCurrentTCB;
  1989. ulReturn_23 ={v} pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait_12(D)];
  1990. if (ulReturn_23 != 0)
  1991. goto <bb 10>; [INV]
  1992. else
  1993. goto <bb 13>; [INV]
  1994. <bb 10> :
  1995. if (xClearCountOnExit_24(D) != 0)
  1996. goto <bb 11>; [INV]
  1997. else
  1998. goto <bb 12>; [INV]
  1999. <bb 11> :
  2000. pxCurrentTCB.130_6 ={v} pxCurrentTCB;
  2001. pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait_12(D)] ={v} 0;
  2002. goto <bb 13>; [INV]
  2003. <bb 12> :
  2004. pxCurrentTCB.131_7 ={v} pxCurrentTCB;
  2005. _8 = ulReturn_23 + 4294967295;
  2006. pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait_12(D)] ={v} _8;
  2007. <bb 13> :
  2008. pxCurrentTCB.132_9 ={v} pxCurrentTCB;
  2009. pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait_12(D)] ={v} 0;
  2010. vPortExitCritical ();
  2011. _29 = ulReturn_23;
  2012. <bb 14> :
  2013. <L15>:
  2014. return _29;
  2015. }
  2016. pvTaskIncrementMutexHeldCount ()
  2017. {
  2018. struct tskTaskControlBlock * D.8100;
  2019. struct TCB_t * pxCurrentTCB.125_1;
  2020. struct TCB_t * pxCurrentTCB.126_2;
  2021. long unsigned int _3;
  2022. long unsigned int _4;
  2023. struct tskTaskControlBlock * _8;
  2024. <bb 2> :
  2025. pxCurrentTCB.125_1 ={v} pxCurrentTCB;
  2026. if (pxCurrentTCB.125_1 != 0B)
  2027. goto <bb 3>; [INV]
  2028. else
  2029. goto <bb 4>; [INV]
  2030. <bb 3> :
  2031. pxCurrentTCB.126_2 ={v} pxCurrentTCB;
  2032. _3 = pxCurrentTCB.126_2->uxMutexesHeld;
  2033. _4 = _3 + 1;
  2034. pxCurrentTCB.126_2->uxMutexesHeld = _4;
  2035. <bb 4> :
  2036. _8 ={v} pxCurrentTCB;
  2037. <bb 5> :
  2038. <L2>:
  2039. return _8;
  2040. }
  2041. uxTaskResetEventItemValue ()
  2042. {
  2043. TickType_t uxReturn;
  2044. TickType_t D.8096;
  2045. struct TCB_t * pxCurrentTCB.122_1;
  2046. struct TCB_t * pxCurrentTCB.123_2;
  2047. long unsigned int _3;
  2048. struct TCB_t * pxCurrentTCB.124_4;
  2049. long unsigned int _5;
  2050. TickType_t _9;
  2051. <bb 2> :
  2052. pxCurrentTCB.122_1 ={v} pxCurrentTCB;
  2053. uxReturn_7 = pxCurrentTCB.122_1->xEventListItem.xItemValue;
  2054. pxCurrentTCB.123_2 ={v} pxCurrentTCB;
  2055. _3 = pxCurrentTCB.123_2->uxPriority;
  2056. pxCurrentTCB.124_4 ={v} pxCurrentTCB;
  2057. _5 = 5 - _3;
  2058. pxCurrentTCB.124_4->xEventListItem.xItemValue = _5;
  2059. _9 = uxReturn_7;
  2060. <bb 3> :
  2061. <L0>:
  2062. return _9;
  2063. }
  2064. vTaskList (char * pcWriteBuffer)
  2065. {
  2066. char cStatus;
  2067. UBaseType_t x;
  2068. UBaseType_t uxArraySize;
  2069. struct TaskStatus_t * pxTaskStatusArray;
  2070. long unsigned int uxCurrentNumberOfTasks.121_1;
  2071. long unsigned int _2;
  2072. long unsigned int _3;
  2073. struct TaskStatus_t * _4;
  2074. <unnamed type> _5;
  2075. long unsigned int _6;
  2076. struct TaskStatus_t * _7;
  2077. const char * _8;
  2078. int _9;
  2079. long unsigned int _10;
  2080. struct TaskStatus_t * _11;
  2081. long unsigned int _12;
  2082. long unsigned int _13;
  2083. struct TaskStatus_t * _14;
  2084. short unsigned int _15;
  2085. unsigned int _16;
  2086. long unsigned int _17;
  2087. struct TaskStatus_t * _18;
  2088. long unsigned int _19;
  2089. unsigned int _20;
  2090. <bb 2> :
  2091. *pcWriteBuffer_27(D) = 0;
  2092. uxArraySize_29 ={v} uxCurrentNumberOfTasks;
  2093. uxCurrentNumberOfTasks.121_1 ={v} uxCurrentNumberOfTasks;
  2094. _2 = uxCurrentNumberOfTasks.121_1 * 36;
  2095. pxTaskStatusArray_31 = pvPortMalloc (_2);
  2096. if (pxTaskStatusArray_31 != 0B)
  2097. goto <bb 3>; [INV]
  2098. else
  2099. goto <bb 14>; [INV]
  2100. <bb 3> :
  2101. uxArraySize_33 = uxTaskGetSystemState (pxTaskStatusArray_31, uxArraySize_29, 0B);
  2102. x_34 = 0;
  2103. goto <bb 12>; [INV]
  2104. <bb 4> :
  2105. _3 = x_22 * 36;
  2106. _4 = pxTaskStatusArray_31 + _3;
  2107. _5 = _4->eCurrentState;
  2108. switch (_5) <default: <L7> [INV], case 0: <L2> [INV], case 1: <L3> [INV], case 2: <L4> [INV], case 3: <L5> [INV], case 4: <L6> [INV]>
  2109. <bb 5> :
  2110. <L2>:
  2111. cStatus_40 = 88;
  2112. goto <bb 11>; [INV]
  2113. <bb 6> :
  2114. <L3>:
  2115. cStatus_39 = 82;
  2116. goto <bb 11>; [INV]
  2117. <bb 7> :
  2118. <L4>:
  2119. cStatus_38 = 66;
  2120. goto <bb 11>; [INV]
  2121. <bb 8> :
  2122. <L5>:
  2123. cStatus_37 = 83;
  2124. goto <bb 11>; [INV]
  2125. <bb 9> :
  2126. <L6>:
  2127. cStatus_36 = 68;
  2128. goto <bb 11>; [INV]
  2129. <bb 10> :
  2130. <L7>:
  2131. cStatus_41 = 0;
  2132. <bb 11> :
  2133. # cStatus_23 = PHI <cStatus_40(5), cStatus_39(6), cStatus_38(7), cStatus_37(8), cStatus_36(9), cStatus_41(10)>
  2134. _6 = x_22 * 36;
  2135. _7 = pxTaskStatusArray_31 + _6;
  2136. _8 = _7->pcTaskName;
  2137. pcWriteBuffer_43 = prvWriteNameToBuffer (pcWriteBuffer_21, _8);
  2138. _9 = (int) cStatus_23;
  2139. _10 = x_22 * 36;
  2140. _11 = pxTaskStatusArray_31 + _10;
  2141. _12 = _11->uxCurrentPriority;
  2142. _13 = x_22 * 36;
  2143. _14 = pxTaskStatusArray_31 + _13;
  2144. _15 = _14->usStackHighWaterMark;
  2145. _16 = (unsigned int) _15;
  2146. _17 = x_22 * 36;
  2147. _18 = pxTaskStatusArray_31 + _17;
  2148. _19 = _18->xTaskNumber;
  2149. sprintf (pcWriteBuffer_43, "\t%c\t%u\t%u\t%u\r\n", _9, _12, _16, _19);
  2150. _20 = strlen (pcWriteBuffer_43);
  2151. pcWriteBuffer_45 = pcWriteBuffer_43 + _20;
  2152. x_46 = x_22 + 1;
  2153. <bb 12> :
  2154. # pcWriteBuffer_21 = PHI <pcWriteBuffer_27(D)(3), pcWriteBuffer_45(11)>
  2155. # x_22 = PHI <x_34(3), x_46(11)>
  2156. if (x_22 < uxArraySize_33)
  2157. goto <bb 4>; [INV]
  2158. else
  2159. goto <bb 13>; [INV]
  2160. <bb 13> :
  2161. vPortFree (pxTaskStatusArray_31);
  2162. <bb 14> :
  2163. return;
  2164. }
  2165. prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName)
  2166. {
  2167. size_t x;
  2168. char * D.8091;
  2169. char * _1;
  2170. char * _2;
  2171. char * _11;
  2172. <bb 2> :
  2173. strcpy (pcBuffer_6(D), pcTaskName_7(D));
  2174. x_9 = strlen (pcBuffer_6(D));
  2175. goto <bb 4>; [INV]
  2176. <bb 3> :
  2177. _1 = pcBuffer_6(D) + x_3;
  2178. *_1 = 32;
  2179. x_13 = x_3 + 1;
  2180. <bb 4> :
  2181. # x_3 = PHI <x_9(2), x_13(3)>
  2182. if (x_3 <= 8)
  2183. goto <bb 3>; [INV]
  2184. else
  2185. goto <bb 5>; [INV]
  2186. <bb 5> :
  2187. _2 = pcBuffer_6(D) + x_3;
  2188. *_2 = 0;
  2189. _11 = pcBuffer_6(D) + x_3;
  2190. <bb 6> :
  2191. <L3>:
  2192. return _11;
  2193. }
  2194. vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask)
  2195. {
  2196. uint32_t ulNewBASEPRI;
  2197. uint32_t ulNewBASEPRI;
  2198. struct ListItem_t * const pxIndex;
  2199. const UBaseType_t uxOnlyOneMutexHeld;
  2200. UBaseType_t uxPriorityToUse;
  2201. UBaseType_t uxPriorityUsedOnEntry;
  2202. struct TCB_t * const pxTCB;
  2203. long unsigned int _1;
  2204. long unsigned int _2;
  2205. long unsigned int _3;
  2206. long unsigned int _4;
  2207. struct TCB_t * pxCurrentTCB.119_5;
  2208. long unsigned int _6;
  2209. signed int _7;
  2210. long unsigned int _8;
  2211. struct xLIST * _9;
  2212. struct List_t * _10;
  2213. struct ListItem_t * _11;
  2214. long unsigned int _12;
  2215. long unsigned int _13;
  2216. long unsigned int uxTopReadyPriority.120_14;
  2217. long unsigned int _15;
  2218. long unsigned int _16;
  2219. struct xLIST_ITEM * _17;
  2220. struct xLIST_ITEM * _18;
  2221. struct ListItem_t * _19;
  2222. struct ListItem_t * _20;
  2223. long unsigned int _21;
  2224. struct List_t * _22;
  2225. long unsigned int _23;
  2226. long unsigned int _24;
  2227. long unsigned int _25;
  2228. <bb 2> :
  2229. pxTCB_31 = pxMutexHolder_30(D);
  2230. uxOnlyOneMutexHeld_32 = 1;
  2231. if (pxMutexHolder_30(D) != 0B)
  2232. goto <bb 3>; [INV]
  2233. else
  2234. goto <bb 23>; [INV]
  2235. <bb 3> :
  2236. _1 = pxTCB_31->uxMutexesHeld;
  2237. if (_1 == 0)
  2238. goto <bb 4>; [INV]
  2239. else
  2240. goto <bb 7>; [INV]
  2241. <bb 4> :
  2242. __asm__ __volatile__(" mov %0, %1
  2243. msr basepri, %0
  2244. isb
  2245. dsb
  2246. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  2247. <bb 5> :
  2248. <bb 6> :
  2249. goto <bb 6>; [INV]
  2250. <bb 7> :
  2251. _2 = pxTCB_31->uxBasePriority;
  2252. if (uxHighestPriorityWaitingTask_34(D) > _2)
  2253. goto <bb 8>; [INV]
  2254. else
  2255. goto <bb 9>; [INV]
  2256. <bb 8> :
  2257. uxPriorityToUse_36 = uxHighestPriorityWaitingTask_34(D);
  2258. goto <bb 10>; [INV]
  2259. <bb 9> :
  2260. uxPriorityToUse_35 = pxTCB_31->uxBasePriority;
  2261. <bb 10> :
  2262. # uxPriorityToUse_26 = PHI <uxPriorityToUse_36(8), uxPriorityToUse_35(9)>
  2263. _3 = pxTCB_31->uxPriority;
  2264. if (uxPriorityToUse_26 != _3)
  2265. goto <bb 11>; [INV]
  2266. else
  2267. goto <bb 23>; [INV]
  2268. <bb 11> :
  2269. _4 = pxTCB_31->uxMutexesHeld;
  2270. if (uxOnlyOneMutexHeld_32 == _4)
  2271. goto <bb 12>; [INV]
  2272. else
  2273. goto <bb 23>; [INV]
  2274. <bb 12> :
  2275. pxCurrentTCB.119_5 ={v} pxCurrentTCB;
  2276. if (pxTCB_31 == pxCurrentTCB.119_5)
  2277. goto <bb 13>; [INV]
  2278. else
  2279. goto <bb 16>; [INV]
  2280. <bb 13> :
  2281. __asm__ __volatile__(" mov %0, %1
  2282. msr basepri, %0
  2283. isb
  2284. dsb
  2285. " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
  2286. <bb 14> :
  2287. <bb 15> :
  2288. goto <bb 15>; [INV]
  2289. <bb 16> :
  2290. uxPriorityUsedOnEntry_37 = pxTCB_31->uxPriority;
  2291. pxTCB_31->uxPriority = uxPriorityToUse_26;
  2292. _6 = pxTCB_31->xEventListItem.xItemValue;
  2293. _7 = (signed int) _6;
  2294. if (_7 >= 0)
  2295. goto <bb 17>; [INV]
  2296. else
  2297. goto <bb 18>; [INV]
  2298. <bb 17> :
  2299. _8 = 5 - uxPriorityToUse_26;
  2300. pxTCB_31->xEventListItem.xItemValue = _8;
  2301. <bb 18> :
  2302. _9 = pxTCB_31->xStateListItem.pvContainer;
  2303. _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry_37];
  2304. if (_9 == _10)
  2305. goto <bb 19>; [INV]
  2306. else
  2307. goto <bb 23>; [INV]
  2308. <bb 19> :
  2309. _11 = &pxTCB_31->xStateListItem;
  2310. _12 = uxListRemove (_11);
  2311. <bb 20> :
  2312. _13 = pxTCB_31->uxPriority;
  2313. uxTopReadyPriority.120_14 ={v} uxTopReadyPriority;
  2314. if (_13 > uxTopReadyPriority.120_14)
  2315. goto <bb 21>; [INV]
  2316. else
  2317. goto <bb 22>; [INV]
  2318. <bb 21> :
  2319. _15 = pxTCB_31->uxPriority;
  2320. uxTopReadyPriority ={v} _15;
  2321. <bb 22> :
  2322. _16 = pxTCB_31->uxPriority;
  2323. pxIndex_42 = pxReadyTasksLists[_16].pxIndex;
  2324. pxTCB_31->xStateListItem.pxNext = pxIndex_42;
  2325. _17 = pxIndex_42->pxPrevious;
  2326. pxTCB_31->xStateListItem.pxPrevious = _17;
  2327. _18 = pxIndex_42->pxPrevious;
  2328. _19 = &pxTCB_31->xStateListItem;
  2329. _18->pxNext = _19;
  2330. _20 = &pxTCB_31->xStateListItem;
  2331. pxIndex_42->pxPrevious = _20;
  2332. _21 = pxTCB_31->uxPriority;
  2333. _22 = &pxReadyTasksLists[_21];
  2334. pxTCB_31->xStateListItem.pvContainer = _22;
  2335. _23 = pxTCB_31->uxPriority;
  2336. _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems;
  2337. _25 = _24 + 1;
  2338. pxReadyTasksLists[_23].uxNumberOfItems ={v} _25;
  2339. <bb 23> :
  2340. return;
  2341. }
  2342. xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder)
  2343. {
  2344. uint32_t ulNewBASEPRI;
  2345. uint32_t ulNewBASEPRI;
  2346. struct ListItem_t * const pxIndex;
  2347. BaseType_t xReturn;
  2348. struct TCB_t * const pxTCB;
  2349. BaseType_t D.8062;
  2350. struct TCB_t * pxCurrentTCB.117_1;
  2351. long unsigned int _2;
  2352. long unsigned int _3;
  2353. long unsigned int _4;
  2354. long unsigned int _5;
  2355. long unsigned int _6;
  2356. long unsigned int _7;
  2357. struct ListItem_t * _8;
  2358. long unsigned int _9;
  2359. long unsigned int _10;
  2360. long unsigned int _11;
  2361. long unsigned int _12;
  2362. long unsigned int _13;
  2363. long unsigned int uxTopReadyPriority.118_14;
  2364. long unsigned int _15;
  2365. long unsigned int _16;
  2366. struct xLIST_ITEM * _17;
  2367. struct xLIST_ITEM * _18;
  2368. struct ListItem_t * _19;
  2369. struct ListItem_t * _20;
  2370. long unsigned int _21;
  2371. struct List_t * _22;
  2372. long unsigned int _23;
  2373. long unsigned int _24;
  2374. long unsigned int _25;
  2375. BaseType_t _46;
  2376. <bb 2> :
  2377. pxTCB_30 = pxMutexHolder_29(D);
  2378. xReturn_31 = 0;
  2379. if (pxMutexHolder_29(D) != 0B)
  2380. goto <bb 3>; [INV]
  2381. else
  2382. goto <bb 17>; [INV]
  2383. <bb 3> :
  2384. pxCurrentTCB.117_1 ={v} pxCurrentTCB;
  2385. if (pxTCB_30 != pxCurrentTCB.117_1)
  2386. goto <bb 4>; [INV]
  2387. else
  2388. goto <bb 7>; [INV]
  2389. <bb 4> :
  2390. __asm__ __volatile__(" mov %0, %1
  2391. msr basepri, %0
  2392. isb
  2393. dsb
  2394. " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
  2395. <bb 5> :
  2396. <bb 6> :
  2397. goto <bb 6>; [INV]
  2398. <bb 7> :
  2399. _2 = pxTCB_30->uxMutexesHeld;
  2400. if (_2 == 0)
  2401. goto <bb 8>; [INV]
  2402. else
  2403. goto <bb 11>; [INV]
  2404. <bb 8> :
  2405. __asm__ __volatile__(" mov %0, %1
  2406. msr basepri, %0
  2407. isb
  2408. dsb
  2409. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  2410. <bb 9> :
  2411. <bb 10> :
  2412. goto <bb 10>; [INV]
  2413. <bb 11> :
  2414. _3 = pxTCB_30->uxMutexesHeld;
  2415. _4 = _3 + 4294967295;
  2416. pxTCB_30->uxMutexesHeld = _4;
  2417. _5 = pxTCB_30->uxPriority;
  2418. _6 = pxTCB_30->uxBasePriority;
  2419. if (_5 != _6)
  2420. goto <bb 12>; [INV]
  2421. else
  2422. goto <bb 17>; [INV]
  2423. <bb 12> :
  2424. _7 = pxTCB_30->uxMutexesHeld;
  2425. if (_7 == 0)
  2426. goto <bb 13>; [INV]
  2427. else
  2428. goto <bb 17>; [INV]
  2429. <bb 13> :
  2430. _8 = &pxTCB_30->xStateListItem;
  2431. _9 = uxListRemove (_8);
  2432. <bb 14> :
  2433. _10 = pxTCB_30->uxBasePriority;
  2434. pxTCB_30->uxPriority = _10;
  2435. _11 = pxTCB_30->uxPriority;
  2436. _12 = 5 - _11;
  2437. pxTCB_30->xEventListItem.xItemValue = _12;
  2438. _13 = pxTCB_30->uxPriority;
  2439. uxTopReadyPriority.118_14 ={v} uxTopReadyPriority;
  2440. if (_13 > uxTopReadyPriority.118_14)
  2441. goto <bb 15>; [INV]
  2442. else
  2443. goto <bb 16>; [INV]
  2444. <bb 15> :
  2445. _15 = pxTCB_30->uxPriority;
  2446. uxTopReadyPriority ={v} _15;
  2447. <bb 16> :
  2448. _16 = pxTCB_30->uxPriority;
  2449. pxIndex_38 = pxReadyTasksLists[_16].pxIndex;
  2450. pxTCB_30->xStateListItem.pxNext = pxIndex_38;
  2451. _17 = pxIndex_38->pxPrevious;
  2452. pxTCB_30->xStateListItem.pxPrevious = _17;
  2453. _18 = pxIndex_38->pxPrevious;
  2454. _19 = &pxTCB_30->xStateListItem;
  2455. _18->pxNext = _19;
  2456. _20 = &pxTCB_30->xStateListItem;
  2457. pxIndex_38->pxPrevious = _20;
  2458. _21 = pxTCB_30->uxPriority;
  2459. _22 = &pxReadyTasksLists[_21];
  2460. pxTCB_30->xStateListItem.pvContainer = _22;
  2461. _23 = pxTCB_30->uxPriority;
  2462. _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems;
  2463. _25 = _24 + 1;
  2464. pxReadyTasksLists[_23].uxNumberOfItems ={v} _25;
  2465. xReturn_45 = 1;
  2466. <bb 17> :
  2467. # xReturn_26 = PHI <xReturn_31(2), xReturn_45(16), xReturn_31(11), xReturn_31(12)>
  2468. _46 = xReturn_26;
  2469. <bb 18> :
  2470. <L20>:
  2471. return _46;
  2472. }
  2473. xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder)
  2474. {
  2475. struct ListItem_t * const pxIndex;
  2476. BaseType_t xReturn;
  2477. struct TCB_t * const pxMutexHolderTCB;
  2478. BaseType_t D.8042;
  2479. long unsigned int _1;
  2480. struct TCB_t * pxCurrentTCB.111_2;
  2481. long unsigned int _3;
  2482. long unsigned int _4;
  2483. signed int _5;
  2484. struct TCB_t * pxCurrentTCB.112_6;
  2485. long unsigned int _7;
  2486. long unsigned int _8;
  2487. struct xLIST * _9;
  2488. long unsigned int _10;
  2489. struct List_t * _11;
  2490. struct ListItem_t * _12;
  2491. long unsigned int _13;
  2492. struct TCB_t * pxCurrentTCB.113_14;
  2493. long unsigned int _15;
  2494. long unsigned int _16;
  2495. long unsigned int uxTopReadyPriority.114_17;
  2496. long unsigned int _18;
  2497. long unsigned int _19;
  2498. struct xLIST_ITEM * _20;
  2499. struct xLIST_ITEM * _21;
  2500. struct ListItem_t * _22;
  2501. struct ListItem_t * _23;
  2502. long unsigned int _24;
  2503. struct List_t * _25;
  2504. long unsigned int _26;
  2505. long unsigned int _27;
  2506. long unsigned int _28;
  2507. struct TCB_t * pxCurrentTCB.115_29;
  2508. long unsigned int _30;
  2509. long unsigned int _31;
  2510. struct TCB_t * pxCurrentTCB.116_32;
  2511. long unsigned int _33;
  2512. BaseType_t _57;
  2513. <bb 2> :
  2514. pxMutexHolderTCB_40 = pxMutexHolder_39(D);
  2515. xReturn_41 = 0;
  2516. if (pxMutexHolder_39(D) != 0B)
  2517. goto <bb 3>; [INV]
  2518. else
  2519. goto <bb 15>; [INV]
  2520. <bb 3> :
  2521. _1 = pxMutexHolderTCB_40->uxPriority;
  2522. pxCurrentTCB.111_2 ={v} pxCurrentTCB;
  2523. _3 = pxCurrentTCB.111_2->uxPriority;
  2524. if (_1 < _3)
  2525. goto <bb 4>; [INV]
  2526. else
  2527. goto <bb 13>; [INV]
  2528. <bb 4> :
  2529. _4 = pxMutexHolderTCB_40->xEventListItem.xItemValue;
  2530. _5 = (signed int) _4;
  2531. if (_5 >= 0)
  2532. goto <bb 5>; [INV]
  2533. else
  2534. goto <bb 6>; [INV]
  2535. <bb 5> :
  2536. pxCurrentTCB.112_6 ={v} pxCurrentTCB;
  2537. _7 = pxCurrentTCB.112_6->uxPriority;
  2538. _8 = 5 - _7;
  2539. pxMutexHolderTCB_40->xEventListItem.xItemValue = _8;
  2540. <bb 6> :
  2541. _9 = pxMutexHolderTCB_40->xStateListItem.pvContainer;
  2542. _10 = pxMutexHolderTCB_40->uxPriority;
  2543. _11 = &pxReadyTasksLists[_10];
  2544. if (_9 == _11)
  2545. goto <bb 7>; [INV]
  2546. else
  2547. goto <bb 11>; [INV]
  2548. <bb 7> :
  2549. _12 = &pxMutexHolderTCB_40->xStateListItem;
  2550. _13 = uxListRemove (_12);
  2551. <bb 8> :
  2552. pxCurrentTCB.113_14 ={v} pxCurrentTCB;
  2553. _15 = pxCurrentTCB.113_14->uxPriority;
  2554. pxMutexHolderTCB_40->uxPriority = _15;
  2555. _16 = pxMutexHolderTCB_40->uxPriority;
  2556. uxTopReadyPriority.114_17 ={v} uxTopReadyPriority;
  2557. if (_16 > uxTopReadyPriority.114_17)
  2558. goto <bb 9>; [INV]
  2559. else
  2560. goto <bb 10>; [INV]
  2561. <bb 9> :
  2562. _18 = pxMutexHolderTCB_40->uxPriority;
  2563. uxTopReadyPriority ={v} _18;
  2564. <bb 10> :
  2565. _19 = pxMutexHolderTCB_40->uxPriority;
  2566. pxIndex_49 = pxReadyTasksLists[_19].pxIndex;
  2567. pxMutexHolderTCB_40->xStateListItem.pxNext = pxIndex_49;
  2568. _20 = pxIndex_49->pxPrevious;
  2569. pxMutexHolderTCB_40->xStateListItem.pxPrevious = _20;
  2570. _21 = pxIndex_49->pxPrevious;
  2571. _22 = &pxMutexHolderTCB_40->xStateListItem;
  2572. _21->pxNext = _22;
  2573. _23 = &pxMutexHolderTCB_40->xStateListItem;
  2574. pxIndex_49->pxPrevious = _23;
  2575. _24 = pxMutexHolderTCB_40->uxPriority;
  2576. _25 = &pxReadyTasksLists[_24];
  2577. pxMutexHolderTCB_40->xStateListItem.pvContainer = _25;
  2578. _26 = pxMutexHolderTCB_40->uxPriority;
  2579. _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems;
  2580. _28 = _27 + 1;
  2581. pxReadyTasksLists[_26].uxNumberOfItems ={v} _28;
  2582. goto <bb 12>; [INV]
  2583. <bb 11> :
  2584. pxCurrentTCB.115_29 ={v} pxCurrentTCB;
  2585. _30 = pxCurrentTCB.115_29->uxPriority;
  2586. pxMutexHolderTCB_40->uxPriority = _30;
  2587. <bb 12> :
  2588. xReturn_56 = 1;
  2589. goto <bb 15>; [INV]
  2590. <bb 13> :
  2591. _31 = pxMutexHolderTCB_40->uxBasePriority;
  2592. pxCurrentTCB.116_32 ={v} pxCurrentTCB;
  2593. _33 = pxCurrentTCB.116_32->uxPriority;
  2594. if (_31 < _33)
  2595. goto <bb 14>; [INV]
  2596. else
  2597. goto <bb 15>; [INV]
  2598. <bb 14> :
  2599. xReturn_43 = 1;
  2600. <bb 15> :
  2601. # xReturn_34 = PHI <xReturn_41(2), xReturn_41(13), xReturn_56(12), xReturn_43(14)>
  2602. _57 = xReturn_34;
  2603. <bb 16> :
  2604. <L20>:
  2605. return _57;
  2606. }
  2607. xTaskGetSchedulerState ()
  2608. {
  2609. BaseType_t xReturn;
  2610. BaseType_t D.8020;
  2611. long int xSchedulerRunning.109_1;
  2612. long unsigned int uxSchedulerSuspended.110_2;
  2613. BaseType_t _8;
  2614. <bb 2> :
  2615. xSchedulerRunning.109_1 ={v} xSchedulerRunning;
  2616. if (xSchedulerRunning.109_1 == 0)
  2617. goto <bb 3>; [INV]
  2618. else
  2619. goto <bb 4>; [INV]
  2620. <bb 3> :
  2621. xReturn_7 = 1;
  2622. goto <bb 7>; [INV]
  2623. <bb 4> :
  2624. uxSchedulerSuspended.110_2 ={v} uxSchedulerSuspended;
  2625. if (uxSchedulerSuspended.110_2 == 0)
  2626. goto <bb 5>; [INV]
  2627. else
  2628. goto <bb 6>; [INV]
  2629. <bb 5> :
  2630. xReturn_6 = 2;
  2631. goto <bb 7>; [INV]
  2632. <bb 6> :
  2633. xReturn_5 = 0;
  2634. <bb 7> :
  2635. # xReturn_3 = PHI <xReturn_7(3), xReturn_6(5), xReturn_5(6)>
  2636. _8 = xReturn_3;
  2637. <bb 8> :
  2638. <L6>:
  2639. return _8;
  2640. }
  2641. xTaskGetCurrentTaskHandle ()
  2642. {
  2643. struct tskTaskControlBlock * xReturn;
  2644. struct tskTaskControlBlock * D.8012;
  2645. struct tskTaskControlBlock * _3;
  2646. <bb 2> :
  2647. xReturn_2 ={v} pxCurrentTCB;
  2648. _3 = xReturn_2;
  2649. <bb 3> :
  2650. <L0>:
  2651. return _3;
  2652. }
  2653. prvResetNextTaskUnblockTime ()
  2654. {
  2655. struct List_t * pxDelayedTaskList.107_1;
  2656. long unsigned int _2;
  2657. struct List_t * pxDelayedTaskList.108_3;
  2658. struct xLIST_ITEM * _4;
  2659. long unsigned int _5;
  2660. <bb 2> :
  2661. pxDelayedTaskList.107_1 ={v} pxDelayedTaskList;
  2662. _2 ={v} pxDelayedTaskList.107_1->uxNumberOfItems;
  2663. if (_2 == 0)
  2664. goto <bb 3>; [INV]
  2665. else
  2666. goto <bb 4>; [INV]
  2667. <bb 3> :
  2668. xNextTaskUnblockTime ={v} 4294967295;
  2669. goto <bb 5>; [INV]
  2670. <bb 4> :
  2671. pxDelayedTaskList.108_3 ={v} pxDelayedTaskList;
  2672. _4 = pxDelayedTaskList.108_3->xListEnd.pxNext;
  2673. _5 = _4->xItemValue;
  2674. xNextTaskUnblockTime ={v} _5;
  2675. <bb 5> :
  2676. return;
  2677. }
  2678. prvDeleteTCB (struct TCB_t * pxTCB)
  2679. {
  2680. StackType_t * _1;
  2681. <bb 2> :
  2682. _1 = pxTCB_3(D)->pxStack;
  2683. vPortFree (_1);
  2684. vPortFree (pxTCB_3(D));
  2685. return;
  2686. }
  2687. uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask)
  2688. {
  2689. UBaseType_t uxReturn;
  2690. uint8_t * pucEndOfStack;
  2691. struct TCB_t * pxTCB;
  2692. UBaseType_t D.8007;
  2693. struct TCB_t * iftmp.106;
  2694. short unsigned int _1;
  2695. struct TCB_t * iftmp.106_2;
  2696. struct TCB_t * iftmp.106_4;
  2697. struct TCB_t * iftmp.106_6;
  2698. UBaseType_t _11;
  2699. <bb 2> :
  2700. if (xTask_3(D) == 0B)
  2701. goto <bb 3>; [INV]
  2702. else
  2703. goto <bb 4>; [INV]
  2704. <bb 3> :
  2705. iftmp.106_6 ={v} pxCurrentTCB;
  2706. goto <bb 5>; [INV]
  2707. <bb 4> :
  2708. iftmp.106_4 = xTask_3(D);
  2709. <bb 5> :
  2710. # iftmp.106_2 = PHI <iftmp.106_6(3), iftmp.106_4(4)>
  2711. pxTCB_7 = iftmp.106_2;
  2712. pucEndOfStack_8 = pxTCB_7->pxStack;
  2713. _1 = prvTaskCheckFreeStackSpace (pucEndOfStack_8);
  2714. uxReturn_10 = (UBaseType_t) _1;
  2715. _11 = uxReturn_10;
  2716. <bb 6> :
  2717. <L3>:
  2718. return _11;
  2719. }
  2720. prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte)
  2721. {
  2722. uint32_t ulCount;
  2723. uint16_t D.8001;
  2724. unsigned char _1;
  2725. uint16_t _8;
  2726. <bb 2> :
  2727. ulCount_4 = 0;
  2728. goto <bb 4>; [INV]
  2729. <bb 3> :
  2730. pucStackByte_9 = pucStackByte_2 + 1;
  2731. ulCount_10 = ulCount_3 + 1;
  2732. <bb 4> :
  2733. # pucStackByte_2 = PHI <pucStackByte_5(D)(2), pucStackByte_9(3)>
  2734. # ulCount_3 = PHI <ulCount_4(2), ulCount_10(3)>
  2735. _1 = *pucStackByte_2;
  2736. if (_1 == 165)
  2737. goto <bb 3>; [INV]
  2738. else
  2739. goto <bb 5>; [INV]
  2740. <bb 5> :
  2741. ulCount_7 = ulCount_3 / 4;
  2742. _8 = (uint16_t) ulCount_7;
  2743. <bb 6> :
  2744. <L3>:
  2745. return _8;
  2746. }
  2747. prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState)
  2748. {
  2749. struct List_t * const pxConstList;
  2750. struct List_t * const pxConstList;
  2751. UBaseType_t uxTask;
  2752. struct TCB_t * pxFirstTCB;
  2753. struct TCB_t * pxNextTCB;
  2754. UBaseType_t D.7999;
  2755. long unsigned int _1;
  2756. struct ListItem_t * _2;
  2757. struct xLIST_ITEM * _3;
  2758. struct ListItem_t * _4;
  2759. struct MiniListItem_t * _5;
  2760. struct ListItem_t * _6;
  2761. struct xLIST_ITEM * _7;
  2762. struct ListItem_t * _8;
  2763. struct ListItem_t * _9;
  2764. struct xLIST_ITEM * _10;
  2765. struct ListItem_t * _11;
  2766. struct MiniListItem_t * _12;
  2767. struct ListItem_t * _13;
  2768. struct xLIST_ITEM * _14;
  2769. struct ListItem_t * _15;
  2770. long unsigned int _16;
  2771. struct TaskStatus_t * _17;
  2772. UBaseType_t _39;
  2773. <bb 2> :
  2774. uxTask_24 = 0;
  2775. _1 ={v} pxList_26(D)->uxNumberOfItems;
  2776. if (_1 != 0)
  2777. goto <bb 3>; [INV]
  2778. else
  2779. goto <bb 9>; [INV]
  2780. <bb 3> :
  2781. pxConstList_27 = pxList_26(D);
  2782. _2 = pxConstList_27->pxIndex;
  2783. _3 = _2->pxNext;
  2784. pxConstList_27->pxIndex = _3;
  2785. _4 = pxConstList_27->pxIndex;
  2786. _5 = &pxConstList_27->xListEnd;
  2787. if (_4 == _5)
  2788. goto <bb 4>; [INV]
  2789. else
  2790. goto <bb 5>; [INV]
  2791. <bb 4> :
  2792. _6 = pxConstList_27->pxIndex;
  2793. _7 = _6->pxNext;
  2794. pxConstList_27->pxIndex = _7;
  2795. <bb 5> :
  2796. _8 = pxConstList_27->pxIndex;
  2797. pxFirstTCB_30 = _8->pvOwner;
  2798. <bb 6> :
  2799. # uxTask_18 = PHI <uxTask_24(5), uxTask_38(8)>
  2800. pxConstList_31 = pxList_26(D);
  2801. _9 = pxConstList_31->pxIndex;
  2802. _10 = _9->pxNext;
  2803. pxConstList_31->pxIndex = _10;
  2804. _11 = pxConstList_31->pxIndex;
  2805. _12 = &pxConstList_31->xListEnd;
  2806. if (_11 == _12)
  2807. goto <bb 7>; [INV]
  2808. else
  2809. goto <bb 8>; [INV]
  2810. <bb 7> :
  2811. _13 = pxConstList_31->pxIndex;
  2812. _14 = _13->pxNext;
  2813. pxConstList_31->pxIndex = _14;
  2814. <bb 8> :
  2815. _15 = pxConstList_31->pxIndex;
  2816. pxNextTCB_34 = _15->pvOwner;
  2817. _16 = uxTask_18 * 36;
  2818. _17 = pxTaskStatusArray_35(D) + _16;
  2819. vTaskGetInfo (pxNextTCB_34, _17, 1, eState_36(D));
  2820. uxTask_38 = uxTask_18 + 1;
  2821. if (pxNextTCB_34 != pxFirstTCB_30)
  2822. goto <bb 6>; [INV]
  2823. else
  2824. goto <bb 9>; [INV]
  2825. <bb 9> :
  2826. # uxTask_19 = PHI <uxTask_24(2), uxTask_38(8)>
  2827. _39 = uxTask_19;
  2828. <bb 10> :
  2829. <L9>:
  2830. return _39;
  2831. }
  2832. vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState)
  2833. {
  2834. struct TCB_t * pxTCB;
  2835. struct TCB_t * iftmp.104;
  2836. char * _1;
  2837. long unsigned int _2;
  2838. StackType_t * _3;
  2839. long unsigned int _4;
  2840. long unsigned int _5;
  2841. struct TCB_t * pxCurrentTCB.105_6;
  2842. struct xLIST * _7;
  2843. <unnamed type> _8;
  2844. StackType_t * _9;
  2845. short unsigned int _10;
  2846. struct TCB_t * iftmp.104_11;
  2847. struct TCB_t * iftmp.104_16;
  2848. struct TCB_t * iftmp.104_18;
  2849. <bb 2> :
  2850. if (xTask_15(D) == 0B)
  2851. goto <bb 3>; [INV]
  2852. else
  2853. goto <bb 4>; [INV]
  2854. <bb 3> :
  2855. iftmp.104_18 ={v} pxCurrentTCB;
  2856. goto <bb 5>; [INV]
  2857. <bb 4> :
  2858. iftmp.104_16 = xTask_15(D);
  2859. <bb 5> :
  2860. # iftmp.104_11 = PHI <iftmp.104_18(3), iftmp.104_16(4)>
  2861. pxTCB_19 = iftmp.104_11;
  2862. pxTaskStatus_20(D)->xHandle = pxTCB_19;
  2863. _1 = &pxTCB_19->pcTaskName[0];
  2864. pxTaskStatus_20(D)->pcTaskName = _1;
  2865. _2 = pxTCB_19->uxPriority;
  2866. pxTaskStatus_20(D)->uxCurrentPriority = _2;
  2867. _3 = pxTCB_19->pxStack;
  2868. pxTaskStatus_20(D)->pxStackBase = _3;
  2869. _4 = pxTCB_19->uxTCBNumber;
  2870. pxTaskStatus_20(D)->xTaskNumber = _4;
  2871. _5 = pxTCB_19->uxBasePriority;
  2872. pxTaskStatus_20(D)->uxBasePriority = _5;
  2873. pxTaskStatus_20(D)->ulRunTimeCounter = 0;
  2874. if (eState_28(D) != 5)
  2875. goto <bb 6>; [INV]
  2876. else
  2877. goto <bb 12>; [INV]
  2878. <bb 6> :
  2879. pxCurrentTCB.105_6 ={v} pxCurrentTCB;
  2880. if (pxTCB_19 == pxCurrentTCB.105_6)
  2881. goto <bb 7>; [INV]
  2882. else
  2883. goto <bb 8>; [INV]
  2884. <bb 7> :
  2885. pxTaskStatus_20(D)->eCurrentState = 0;
  2886. goto <bb 13>; [INV]
  2887. <bb 8> :
  2888. pxTaskStatus_20(D)->eCurrentState = eState_28(D);
  2889. if (eState_28(D) == 3)
  2890. goto <bb 9>; [INV]
  2891. else
  2892. goto <bb 13>; [INV]
  2893. <bb 9> :
  2894. vTaskSuspendAll ();
  2895. _7 = pxTCB_19->xEventListItem.pvContainer;
  2896. if (_7 != 0B)
  2897. goto <bb 10>; [INV]
  2898. else
  2899. goto <bb 11>; [INV]
  2900. <bb 10> :
  2901. pxTaskStatus_20(D)->eCurrentState = 2;
  2902. <bb 11> :
  2903. xTaskResumeAll ();
  2904. goto <bb 13>; [INV]
  2905. <bb 12> :
  2906. _8 = eTaskGetState (pxTCB_19);
  2907. pxTaskStatus_20(D)->eCurrentState = _8;
  2908. <bb 13> :
  2909. if (xGetFreeStackSpace_36(D) != 0)
  2910. goto <bb 14>; [INV]
  2911. else
  2912. goto <bb 15>; [INV]
  2913. <bb 14> :
  2914. _9 = pxTCB_19->pxStack;
  2915. _10 = prvTaskCheckFreeStackSpace (_9);
  2916. pxTaskStatus_20(D)->usStackHighWaterMark = _10;
  2917. goto <bb 16>; [INV]
  2918. <bb 15> :
  2919. pxTaskStatus_20(D)->usStackHighWaterMark = 0;
  2920. <bb 16> :
  2921. return;
  2922. }
  2923. prvCheckTasksWaitingTermination ()
  2924. {
  2925. struct TCB_t * pxTCB;
  2926. struct xLIST_ITEM * _1;
  2927. struct ListItem_t * _2;
  2928. long unsigned int uxCurrentNumberOfTasks.101_3;
  2929. long unsigned int _4;
  2930. long unsigned int uxDeletedTasksWaitingCleanUp.102_5;
  2931. long unsigned int _6;
  2932. long unsigned int uxDeletedTasksWaitingCleanUp.103_7;
  2933. <bb 2> :
  2934. goto <bb 4>; [INV]
  2935. <bb 3> :
  2936. vPortEnterCritical ();
  2937. _1 = xTasksWaitingTermination.xListEnd.pxNext;
  2938. pxTCB_11 = _1->pvOwner;
  2939. _2 = &pxTCB_11->xStateListItem;
  2940. uxListRemove (_2);
  2941. uxCurrentNumberOfTasks.101_3 ={v} uxCurrentNumberOfTasks;
  2942. _4 = uxCurrentNumberOfTasks.101_3 + 4294967295;
  2943. uxCurrentNumberOfTasks ={v} _4;
  2944. uxDeletedTasksWaitingCleanUp.102_5 ={v} uxDeletedTasksWaitingCleanUp;
  2945. _6 = uxDeletedTasksWaitingCleanUp.102_5 + 4294967295;
  2946. uxDeletedTasksWaitingCleanUp ={v} _6;
  2947. vPortExitCritical ();
  2948. prvDeleteTCB (pxTCB_11);
  2949. <bb 4> :
  2950. uxDeletedTasksWaitingCleanUp.103_7 ={v} uxDeletedTasksWaitingCleanUp;
  2951. if (uxDeletedTasksWaitingCleanUp.103_7 != 0)
  2952. goto <bb 3>; [INV]
  2953. else
  2954. goto <bb 5>; [INV]
  2955. <bb 5> :
  2956. return;
  2957. }
  2958. prvInitialiseTaskLists ()
  2959. {
  2960. UBaseType_t uxPriority;
  2961. struct List_t * _1;
  2962. <bb 2> :
  2963. uxPriority_4 = 0;
  2964. goto <bb 4>; [INV]
  2965. <bb 3> :
  2966. _1 = &pxReadyTasksLists[uxPriority_2];
  2967. vListInitialise (_1);
  2968. uxPriority_14 = uxPriority_2 + 1;
  2969. <bb 4> :
  2970. # uxPriority_2 = PHI <uxPriority_4(2), uxPriority_14(3)>
  2971. if (uxPriority_2 <= 4)
  2972. goto <bb 3>; [INV]
  2973. else
  2974. goto <bb 5>; [INV]
  2975. <bb 5> :
  2976. vListInitialise (&xDelayedTaskList1);
  2977. vListInitialise (&xDelayedTaskList2);
  2978. vListInitialise (&xPendingReadyList);
  2979. vListInitialise (&xTasksWaitingTermination);
  2980. vListInitialise (&xSuspendedTaskList);
  2981. pxDelayedTaskList ={v} &xDelayedTaskList1;
  2982. pxOverflowDelayedTaskList ={v} &xDelayedTaskList2;
  2983. return;
  2984. }
  2985. prvIdleTask (void * pvParameters)
  2986. {
  2987. long unsigned int _1;
  2988. volatile uint32_t * _2;
  2989. <bb 2> :
  2990. prvCheckTasksWaitingTermination ();
  2991. _1 ={v} pxReadyTasksLists[0].uxNumberOfItems;
  2992. if (_1 > 1)
  2993. goto <bb 3>; [INV]
  2994. else
  2995. goto <bb 4>; [INV]
  2996. <bb 3> :
  2997. _2 = 3758157060B;
  2998. *_2 ={v} 268435456;
  2999. __asm__ __volatile__("dsb" : : : "memory");
  3000. __asm__ __volatile__("isb");
  3001. <bb 4> :
  3002. goto <bb 2>; [INV]
  3003. }
  3004. vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle)
  3005. {
  3006. struct TCB_t * pxTCB;
  3007. <bb 2> :
  3008. if (xTask_2(D) != 0B)
  3009. goto <bb 3>; [INV]
  3010. else
  3011. goto <bb 4>; [INV]
  3012. <bb 3> :
  3013. pxTCB_4 = xTask_2(D);
  3014. pxTCB_4->uxTaskNumber = uxHandle_5(D);
  3015. <bb 4> :
  3016. return;
  3017. }
  3018. uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask)
  3019. {
  3020. const struct TCB_t * pxTCB;
  3021. UBaseType_t uxReturn;
  3022. UBaseType_t D.7968;
  3023. UBaseType_t _7;
  3024. <bb 2> :
  3025. if (xTask_2(D) != 0B)
  3026. goto <bb 3>; [INV]
  3027. else
  3028. goto <bb 4>; [INV]
  3029. <bb 3> :
  3030. pxTCB_4 = xTask_2(D);
  3031. uxReturn_6 = pxTCB_4->uxTaskNumber;
  3032. goto <bb 5>; [INV]
  3033. <bb 4> :
  3034. uxReturn_3 = 0;
  3035. <bb 5> :
  3036. # uxReturn_1 = PHI <uxReturn_6(3), uxReturn_3(4)>
  3037. _7 = uxReturn_1;
  3038. <bb 6> :
  3039. <L3>:
  3040. return _7;
  3041. }
  3042. vTaskMissedYield ()
  3043. {
  3044. <bb 2> :
  3045. xYieldPending ={v} 1;
  3046. return;
  3047. }
  3048. xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait)
  3049. {
  3050. uint32_t ulNewBASEPRI;
  3051. uint32_t ulNewBASEPRI;
  3052. const TickType_t xElapsedTime;
  3053. const TickType_t xConstTickCount;
  3054. BaseType_t xReturn;
  3055. BaseType_t D.7963;
  3056. long unsigned int _1;
  3057. struct TCB_t * pxCurrentTCB.98_2;
  3058. unsigned char _3;
  3059. struct TCB_t * pxCurrentTCB.99_4;
  3060. long unsigned int _5;
  3061. long int _6;
  3062. long int xNumOfOverflows.100_7;
  3063. long unsigned int _8;
  3064. long unsigned int _9;
  3065. long unsigned int _10;
  3066. long unsigned int _11;
  3067. BaseType_t _31;
  3068. <bb 2> :
  3069. if (pxTimeOut_14(D) == 0B)
  3070. goto <bb 3>; [INV]
  3071. else
  3072. goto <bb 6>; [INV]
  3073. <bb 3> :
  3074. __asm__ __volatile__(" mov %0, %1
  3075. msr basepri, %0
  3076. isb
  3077. dsb
  3078. " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory");
  3079. <bb 4> :
  3080. <bb 5> :
  3081. goto <bb 5>; [INV]
  3082. <bb 6> :
  3083. if (pxTicksToWait_15(D) == 0B)
  3084. goto <bb 7>; [INV]
  3085. else
  3086. goto <bb 10>; [INV]
  3087. <bb 7> :
  3088. __asm__ __volatile__(" mov %0, %1
  3089. msr basepri, %0
  3090. isb
  3091. dsb
  3092. " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory");
  3093. <bb 8> :
  3094. <bb 9> :
  3095. goto <bb 9>; [INV]
  3096. <bb 10> :
  3097. vPortEnterCritical ();
  3098. xConstTickCount_18 ={v} xTickCount;
  3099. _1 = pxTimeOut_14(D)->xTimeOnEntering;
  3100. xElapsedTime_19 = xConstTickCount_18 - _1;
  3101. pxCurrentTCB.98_2 ={v} pxCurrentTCB;
  3102. _3 = pxCurrentTCB.98_2->ucDelayAborted;
  3103. if (_3 != 0)
  3104. goto <bb 11>; [INV]
  3105. else
  3106. goto <bb 12>; [INV]
  3107. <bb 11> :
  3108. pxCurrentTCB.99_4 ={v} pxCurrentTCB;
  3109. pxCurrentTCB.99_4->ucDelayAborted = 0;
  3110. xReturn_29 = 1;
  3111. goto <bb 20>; [INV]
  3112. <bb 12> :
  3113. _5 = *pxTicksToWait_15(D);
  3114. if (_5 == 4294967295)
  3115. goto <bb 13>; [INV]
  3116. else
  3117. goto <bb 14>; [INV]
  3118. <bb 13> :
  3119. xReturn_27 = 0;
  3120. goto <bb 20>; [INV]
  3121. <bb 14> :
  3122. _6 = pxTimeOut_14(D)->xOverflowCount;
  3123. xNumOfOverflows.100_7 ={v} xNumOfOverflows;
  3124. if (_6 != xNumOfOverflows.100_7)
  3125. goto <bb 15>; [INV]
  3126. else
  3127. goto <bb 17>; [INV]
  3128. <bb 15> :
  3129. _8 = pxTimeOut_14(D)->xTimeOnEntering;
  3130. if (xConstTickCount_18 >= _8)
  3131. goto <bb 16>; [INV]
  3132. else
  3133. goto <bb 17>; [INV]
  3134. <bb 16> :
  3135. xReturn_20 = 1;
  3136. *pxTicksToWait_15(D) = 0;
  3137. goto <bb 20>; [INV]
  3138. <bb 17> :
  3139. _9 = *pxTicksToWait_15(D);
  3140. if (xElapsedTime_19 < _9)
  3141. goto <bb 18>; [INV]
  3142. else
  3143. goto <bb 19>; [INV]
  3144. <bb 18> :
  3145. _10 = *pxTicksToWait_15(D);
  3146. _11 = _10 - xElapsedTime_19;
  3147. *pxTicksToWait_15(D) = _11;
  3148. vTaskInternalSetTimeOutState (pxTimeOut_14(D));
  3149. xReturn_26 = 0;
  3150. goto <bb 20>; [INV]
  3151. <bb 19> :
  3152. *pxTicksToWait_15(D) = 0;
  3153. xReturn_23 = 1;
  3154. <bb 20> :
  3155. # xReturn_12 = PHI <xReturn_29(11), xReturn_27(13), xReturn_20(16), xReturn_26(18), xReturn_23(19)>
  3156. vPortExitCritical ();
  3157. _31 = xReturn_12;
  3158. <bb 21> :
  3159. <L19>:
  3160. return _31;
  3161. }
  3162. vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  3163. {
  3164. long int xNumOfOverflows.96_1;
  3165. long unsigned int xTickCount.97_2;
  3166. <bb 2> :
  3167. xNumOfOverflows.96_1 ={v} xNumOfOverflows;
  3168. pxTimeOut_4(D)->xOverflowCount = xNumOfOverflows.96_1;
  3169. xTickCount.97_2 ={v} xTickCount;
  3170. pxTimeOut_4(D)->xTimeOnEntering = xTickCount.97_2;
  3171. return;
  3172. }
  3173. vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  3174. {
  3175. uint32_t ulNewBASEPRI;
  3176. long int xNumOfOverflows.94_1;
  3177. long unsigned int xTickCount.95_2;
  3178. <bb 2> :
  3179. if (pxTimeOut_3(D) == 0B)
  3180. goto <bb 3>; [INV]
  3181. else
  3182. goto <bb 6>; [INV]
  3183. <bb 3> :
  3184. __asm__ __volatile__(" mov %0, %1
  3185. msr basepri, %0
  3186. isb
  3187. dsb
  3188. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  3189. <bb 4> :
  3190. <bb 5> :
  3191. goto <bb 5>; [INV]
  3192. <bb 6> :
  3193. vPortEnterCritical ();
  3194. xNumOfOverflows.94_1 ={v} xNumOfOverflows;
  3195. pxTimeOut_3(D)->xOverflowCount = xNumOfOverflows.94_1;
  3196. xTickCount.95_2 ={v} xTickCount;
  3197. pxTimeOut_3(D)->xTimeOnEntering = xTickCount.95_2;
  3198. vPortExitCritical ();
  3199. return;
  3200. }
  3201. vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue)
  3202. {
  3203. uint32_t ulNewBASEPRI;
  3204. uint32_t ulNewBASEPRI;
  3205. struct ListItem_t * const pxIndex;
  3206. struct List_t * const pxList;
  3207. struct List_t * const pxList;
  3208. struct TCB_t * pxUnblockedTCB;
  3209. long unsigned int uxSchedulerSuspended.91_1;
  3210. long unsigned int _2;
  3211. struct xLIST_ITEM * _3;
  3212. struct xLIST_ITEM * _4;
  3213. struct xLIST_ITEM * _5;
  3214. struct xLIST_ITEM * _6;
  3215. struct ListItem_t * _7;
  3216. struct xLIST_ITEM * _8;
  3217. long unsigned int _9;
  3218. long unsigned int _10;
  3219. struct xLIST_ITEM * _11;
  3220. struct xLIST_ITEM * _12;
  3221. struct xLIST_ITEM * _13;
  3222. struct xLIST_ITEM * _14;
  3223. struct ListItem_t * _15;
  3224. struct ListItem_t * _16;
  3225. struct xLIST_ITEM * _17;
  3226. long unsigned int _18;
  3227. long unsigned int _19;
  3228. long unsigned int _20;
  3229. long unsigned int uxTopReadyPriority.92_21;
  3230. long unsigned int _22;
  3231. long unsigned int _23;
  3232. struct xLIST_ITEM * _24;
  3233. struct xLIST_ITEM * _25;
  3234. struct ListItem_t * _26;
  3235. struct ListItem_t * _27;
  3236. long unsigned int _28;
  3237. struct List_t * _29;
  3238. long unsigned int _30;
  3239. long unsigned int _31;
  3240. long unsigned int _32;
  3241. long unsigned int _33;
  3242. struct TCB_t * pxCurrentTCB.93_34;
  3243. long unsigned int _35;
  3244. <bb 2> :
  3245. uxSchedulerSuspended.91_1 ={v} uxSchedulerSuspended;
  3246. if (uxSchedulerSuspended.91_1 == 0)
  3247. goto <bb 3>; [INV]
  3248. else
  3249. goto <bb 6>; [INV]
  3250. <bb 3> :
  3251. __asm__ __volatile__(" mov %0, %1
  3252. msr basepri, %0
  3253. isb
  3254. dsb
  3255. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  3256. <bb 4> :
  3257. <bb 5> :
  3258. goto <bb 5>; [INV]
  3259. <bb 6> :
  3260. _2 = xItemValue_41(D) | 2147483648;
  3261. pxEventListItem_42(D)->xItemValue = _2;
  3262. pxUnblockedTCB_44 = pxEventListItem_42(D)->pvOwner;
  3263. if (pxUnblockedTCB_44 == 0B)
  3264. goto <bb 7>; [INV]
  3265. else
  3266. goto <bb 10>; [INV]
  3267. <bb 7> :
  3268. __asm__ __volatile__(" mov %0, %1
  3269. msr basepri, %0
  3270. isb
  3271. dsb
  3272. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  3273. <bb 8> :
  3274. <bb 9> :
  3275. goto <bb 9>; [INV]
  3276. <bb 10> :
  3277. pxList_45 = pxEventListItem_42(D)->pvContainer;
  3278. _3 = pxEventListItem_42(D)->pxNext;
  3279. _4 = pxEventListItem_42(D)->pxPrevious;
  3280. _3->pxPrevious = _4;
  3281. _5 = pxEventListItem_42(D)->pxPrevious;
  3282. _6 = pxEventListItem_42(D)->pxNext;
  3283. _5->pxNext = _6;
  3284. _7 = pxList_45->pxIndex;
  3285. if (pxEventListItem_42(D) == _7)
  3286. goto <bb 11>; [INV]
  3287. else
  3288. goto <bb 12>; [INV]
  3289. <bb 11> :
  3290. _8 = pxEventListItem_42(D)->pxPrevious;
  3291. pxList_45->pxIndex = _8;
  3292. <bb 12> :
  3293. pxEventListItem_42(D)->pvContainer = 0B;
  3294. _9 ={v} pxList_45->uxNumberOfItems;
  3295. _10 = _9 + 4294967295;
  3296. pxList_45->uxNumberOfItems ={v} _10;
  3297. pxList_51 = pxUnblockedTCB_44->xStateListItem.pvContainer;
  3298. _11 = pxUnblockedTCB_44->xStateListItem.pxNext;
  3299. _12 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
  3300. _11->pxPrevious = _12;
  3301. _13 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
  3302. _14 = pxUnblockedTCB_44->xStateListItem.pxNext;
  3303. _13->pxNext = _14;
  3304. _15 = pxList_51->pxIndex;
  3305. _16 = &pxUnblockedTCB_44->xStateListItem;
  3306. if (_15 == _16)
  3307. goto <bb 13>; [INV]
  3308. else
  3309. goto <bb 14>; [INV]
  3310. <bb 13> :
  3311. _17 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
  3312. pxList_51->pxIndex = _17;
  3313. <bb 14> :
  3314. pxUnblockedTCB_44->xStateListItem.pvContainer = 0B;
  3315. _18 ={v} pxList_51->uxNumberOfItems;
  3316. _19 = _18 + 4294967295;
  3317. pxList_51->uxNumberOfItems ={v} _19;
  3318. _20 = pxUnblockedTCB_44->uxPriority;
  3319. uxTopReadyPriority.92_21 ={v} uxTopReadyPriority;
  3320. if (_20 > uxTopReadyPriority.92_21)
  3321. goto <bb 15>; [INV]
  3322. else
  3323. goto <bb 16>; [INV]
  3324. <bb 15> :
  3325. _22 = pxUnblockedTCB_44->uxPriority;
  3326. uxTopReadyPriority ={v} _22;
  3327. <bb 16> :
  3328. _23 = pxUnblockedTCB_44->uxPriority;
  3329. pxIndex_58 = pxReadyTasksLists[_23].pxIndex;
  3330. pxUnblockedTCB_44->xStateListItem.pxNext = pxIndex_58;
  3331. _24 = pxIndex_58->pxPrevious;
  3332. pxUnblockedTCB_44->xStateListItem.pxPrevious = _24;
  3333. _25 = pxIndex_58->pxPrevious;
  3334. _26 = &pxUnblockedTCB_44->xStateListItem;
  3335. _25->pxNext = _26;
  3336. _27 = &pxUnblockedTCB_44->xStateListItem;
  3337. pxIndex_58->pxPrevious = _27;
  3338. _28 = pxUnblockedTCB_44->uxPriority;
  3339. _29 = &pxReadyTasksLists[_28];
  3340. pxUnblockedTCB_44->xStateListItem.pvContainer = _29;
  3341. _30 = pxUnblockedTCB_44->uxPriority;
  3342. _31 ={v} pxReadyTasksLists[_30].uxNumberOfItems;
  3343. _32 = _31 + 1;
  3344. pxReadyTasksLists[_30].uxNumberOfItems ={v} _32;
  3345. _33 = pxUnblockedTCB_44->uxPriority;
  3346. pxCurrentTCB.93_34 ={v} pxCurrentTCB;
  3347. _35 = pxCurrentTCB.93_34->uxPriority;
  3348. if (_33 > _35)
  3349. goto <bb 17>; [INV]
  3350. else
  3351. goto <bb 18>; [INV]
  3352. <bb 17> :
  3353. xYieldPending ={v} 1;
  3354. <bb 18> :
  3355. return;
  3356. }
  3357. xTaskRemoveFromEventList (const struct List_t * const pxEventList)
  3358. {
  3359. uint32_t ulNewBASEPRI;
  3360. struct ListItem_t * const pxIndex;
  3361. struct ListItem_t * const pxIndex;
  3362. struct List_t * const pxList;
  3363. struct List_t * const pxList;
  3364. BaseType_t xReturn;
  3365. struct TCB_t * pxUnblockedTCB;
  3366. BaseType_t D.7930;
  3367. struct xLIST_ITEM * _1;
  3368. struct xLIST_ITEM * _2;
  3369. struct xLIST_ITEM * _3;
  3370. struct xLIST_ITEM * _4;
  3371. struct xLIST_ITEM * _5;
  3372. struct ListItem_t * _6;
  3373. struct ListItem_t * _7;
  3374. struct xLIST_ITEM * _8;
  3375. long unsigned int _9;
  3376. long unsigned int _10;
  3377. long unsigned int uxSchedulerSuspended.88_11;
  3378. struct xLIST_ITEM * _12;
  3379. struct xLIST_ITEM * _13;
  3380. struct xLIST_ITEM * _14;
  3381. struct xLIST_ITEM * _15;
  3382. struct ListItem_t * _16;
  3383. struct ListItem_t * _17;
  3384. struct xLIST_ITEM * _18;
  3385. long unsigned int _19;
  3386. long unsigned int _20;
  3387. long unsigned int _21;
  3388. long unsigned int uxTopReadyPriority.89_22;
  3389. long unsigned int _23;
  3390. long unsigned int _24;
  3391. struct xLIST_ITEM * _25;
  3392. struct xLIST_ITEM * _26;
  3393. struct ListItem_t * _27;
  3394. struct ListItem_t * _28;
  3395. long unsigned int _29;
  3396. struct List_t * _30;
  3397. long unsigned int _31;
  3398. long unsigned int _32;
  3399. long unsigned int _33;
  3400. struct xLIST_ITEM * _34;
  3401. struct xLIST_ITEM * _35;
  3402. struct ListItem_t * _36;
  3403. struct ListItem_t * _37;
  3404. long unsigned int _38;
  3405. long unsigned int _39;
  3406. long unsigned int _40;
  3407. struct TCB_t * pxCurrentTCB.90_41;
  3408. long unsigned int _42;
  3409. BaseType_t _82;
  3410. <bb 2> :
  3411. _1 = pxEventList_50(D)->xListEnd.pxNext;
  3412. pxUnblockedTCB_51 = _1->pvOwner;
  3413. if (pxUnblockedTCB_51 == 0B)
  3414. goto <bb 3>; [INV]
  3415. else
  3416. goto <bb 6>; [INV]
  3417. <bb 3> :
  3418. __asm__ __volatile__(" mov %0, %1
  3419. msr basepri, %0
  3420. isb
  3421. dsb
  3422. " : "=r" ulNewBASEPRI_83 : "i" 16 : "memory");
  3423. <bb 4> :
  3424. <bb 5> :
  3425. goto <bb 5>; [INV]
  3426. <bb 6> :
  3427. pxList_52 = pxUnblockedTCB_51->xEventListItem.pvContainer;
  3428. _2 = pxUnblockedTCB_51->xEventListItem.pxNext;
  3429. _3 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
  3430. _2->pxPrevious = _3;
  3431. _4 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
  3432. _5 = pxUnblockedTCB_51->xEventListItem.pxNext;
  3433. _4->pxNext = _5;
  3434. _6 = pxList_52->pxIndex;
  3435. _7 = &pxUnblockedTCB_51->xEventListItem;
  3436. if (_6 == _7)
  3437. goto <bb 7>; [INV]
  3438. else
  3439. goto <bb 8>; [INV]
  3440. <bb 7> :
  3441. _8 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
  3442. pxList_52->pxIndex = _8;
  3443. <bb 8> :
  3444. pxUnblockedTCB_51->xEventListItem.pvContainer = 0B;
  3445. _9 ={v} pxList_52->uxNumberOfItems;
  3446. _10 = _9 + 4294967295;
  3447. pxList_52->uxNumberOfItems ={v} _10;
  3448. uxSchedulerSuspended.88_11 ={v} uxSchedulerSuspended;
  3449. if (uxSchedulerSuspended.88_11 == 0)
  3450. goto <bb 9>; [INV]
  3451. else
  3452. goto <bb 14>; [INV]
  3453. <bb 9> :
  3454. pxList_65 = pxUnblockedTCB_51->xStateListItem.pvContainer;
  3455. _12 = pxUnblockedTCB_51->xStateListItem.pxNext;
  3456. _13 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
  3457. _12->pxPrevious = _13;
  3458. _14 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
  3459. _15 = pxUnblockedTCB_51->xStateListItem.pxNext;
  3460. _14->pxNext = _15;
  3461. _16 = pxList_65->pxIndex;
  3462. _17 = &pxUnblockedTCB_51->xStateListItem;
  3463. if (_16 == _17)
  3464. goto <bb 10>; [INV]
  3465. else
  3466. goto <bb 11>; [INV]
  3467. <bb 10> :
  3468. _18 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
  3469. pxList_65->pxIndex = _18;
  3470. <bb 11> :
  3471. pxUnblockedTCB_51->xStateListItem.pvContainer = 0B;
  3472. _19 ={v} pxList_65->uxNumberOfItems;
  3473. _20 = _19 + 4294967295;
  3474. pxList_65->uxNumberOfItems ={v} _20;
  3475. _21 = pxUnblockedTCB_51->uxPriority;
  3476. uxTopReadyPriority.89_22 ={v} uxTopReadyPriority;
  3477. if (_21 > uxTopReadyPriority.89_22)
  3478. goto <bb 12>; [INV]
  3479. else
  3480. goto <bb 13>; [INV]
  3481. <bb 12> :
  3482. _23 = pxUnblockedTCB_51->uxPriority;
  3483. uxTopReadyPriority ={v} _23;
  3484. <bb 13> :
  3485. _24 = pxUnblockedTCB_51->uxPriority;
  3486. pxIndex_72 = pxReadyTasksLists[_24].pxIndex;
  3487. pxUnblockedTCB_51->xStateListItem.pxNext = pxIndex_72;
  3488. _25 = pxIndex_72->pxPrevious;
  3489. pxUnblockedTCB_51->xStateListItem.pxPrevious = _25;
  3490. _26 = pxIndex_72->pxPrevious;
  3491. _27 = &pxUnblockedTCB_51->xStateListItem;
  3492. _26->pxNext = _27;
  3493. _28 = &pxUnblockedTCB_51->xStateListItem;
  3494. pxIndex_72->pxPrevious = _28;
  3495. _29 = pxUnblockedTCB_51->uxPriority;
  3496. _30 = &pxReadyTasksLists[_29];
  3497. pxUnblockedTCB_51->xStateListItem.pvContainer = _30;
  3498. _31 = pxUnblockedTCB_51->uxPriority;
  3499. _32 ={v} pxReadyTasksLists[_31].uxNumberOfItems;
  3500. _33 = _32 + 1;
  3501. pxReadyTasksLists[_31].uxNumberOfItems ={v} _33;
  3502. goto <bb 15>; [INV]
  3503. <bb 14> :
  3504. pxIndex_58 = xPendingReadyList.pxIndex;
  3505. pxUnblockedTCB_51->xEventListItem.pxNext = pxIndex_58;
  3506. _34 = pxIndex_58->pxPrevious;
  3507. pxUnblockedTCB_51->xEventListItem.pxPrevious = _34;
  3508. _35 = pxIndex_58->pxPrevious;
  3509. _36 = &pxUnblockedTCB_51->xEventListItem;
  3510. _35->pxNext = _36;
  3511. _37 = &pxUnblockedTCB_51->xEventListItem;
  3512. pxIndex_58->pxPrevious = _37;
  3513. pxUnblockedTCB_51->xEventListItem.pvContainer = &xPendingReadyList;
  3514. _38 ={v} xPendingReadyList.uxNumberOfItems;
  3515. _39 = _38 + 1;
  3516. xPendingReadyList.uxNumberOfItems ={v} _39;
  3517. <bb 15> :
  3518. _40 = pxUnblockedTCB_51->uxPriority;
  3519. pxCurrentTCB.90_41 ={v} pxCurrentTCB;
  3520. _42 = pxCurrentTCB.90_41->uxPriority;
  3521. if (_40 > _42)
  3522. goto <bb 16>; [INV]
  3523. else
  3524. goto <bb 17>; [INV]
  3525. <bb 16> :
  3526. xReturn_80 = 1;
  3527. xYieldPending ={v} 1;
  3528. goto <bb 18>; [INV]
  3529. <bb 17> :
  3530. xReturn_79 = 0;
  3531. <bb 18> :
  3532. # xReturn_43 = PHI <xReturn_80(16), xReturn_79(17)>
  3533. _82 = xReturn_43;
  3534. <bb 19> :
  3535. <L15>:
  3536. return _82;
  3537. }
  3538. vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  3539. {
  3540. uint32_t ulNewBASEPRI;
  3541. struct ListItem_t * const pxIndex;
  3542. struct TCB_t * pxCurrentTCB.83_1;
  3543. struct TCB_t * pxCurrentTCB.84_2;
  3544. struct xLIST_ITEM * _3;
  3545. struct TCB_t * pxCurrentTCB.85_4;
  3546. struct xLIST_ITEM * _5;
  3547. struct ListItem_t * _6;
  3548. struct TCB_t * pxCurrentTCB.86_7;
  3549. struct ListItem_t * _8;
  3550. struct TCB_t * pxCurrentTCB.87_9;
  3551. long unsigned int _10;
  3552. long unsigned int _11;
  3553. <bb 2> :
  3554. if (pxEventList_13(D) == 0B)
  3555. goto <bb 3>; [INV]
  3556. else
  3557. goto <bb 6>; [INV]
  3558. <bb 3> :
  3559. __asm__ __volatile__(" mov %0, %1
  3560. msr basepri, %0
  3561. isb
  3562. dsb
  3563. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  3564. <bb 4> :
  3565. <bb 5> :
  3566. goto <bb 5>; [INV]
  3567. <bb 6> :
  3568. pxIndex_15 = pxEventList_13(D)->pxIndex;
  3569. pxCurrentTCB.83_1 ={v} pxCurrentTCB;
  3570. pxCurrentTCB.83_1->xEventListItem.pxNext = pxIndex_15;
  3571. pxCurrentTCB.84_2 ={v} pxCurrentTCB;
  3572. _3 = pxIndex_15->pxPrevious;
  3573. pxCurrentTCB.84_2->xEventListItem.pxPrevious = _3;
  3574. pxCurrentTCB.85_4 ={v} pxCurrentTCB;
  3575. _5 = pxIndex_15->pxPrevious;
  3576. _6 = &pxCurrentTCB.85_4->xEventListItem;
  3577. _5->pxNext = _6;
  3578. pxCurrentTCB.86_7 ={v} pxCurrentTCB;
  3579. _8 = &pxCurrentTCB.86_7->xEventListItem;
  3580. pxIndex_15->pxPrevious = _8;
  3581. pxCurrentTCB.87_9 ={v} pxCurrentTCB;
  3582. pxCurrentTCB.87_9->xEventListItem.pvContainer = pxEventList_13(D);
  3583. _10 ={v} pxEventList_13(D)->uxNumberOfItems;
  3584. _11 = _10 + 1;
  3585. pxEventList_13(D)->uxNumberOfItems ={v} _11;
  3586. if (xWaitIndefinitely_22(D) != 0)
  3587. goto <bb 7>; [INV]
  3588. else
  3589. goto <bb 8>; [INV]
  3590. <bb 7> :
  3591. xTicksToWait_24 = 4294967295;
  3592. <bb 8> :
  3593. # xTicksToWait_12 = PHI <xTicksToWait_23(D)(6), xTicksToWait_24(7)>
  3594. prvAddCurrentTaskToDelayedList (xTicksToWait_12, xWaitIndefinitely_22(D));
  3595. return;
  3596. }
  3597. vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
  3598. {
  3599. uint32_t ulNewBASEPRI;
  3600. uint32_t ulNewBASEPRI;
  3601. struct ListItem_t * const pxIndex;
  3602. long unsigned int uxSchedulerSuspended.76_1;
  3603. struct TCB_t * pxCurrentTCB.77_2;
  3604. long unsigned int _3;
  3605. struct TCB_t * pxCurrentTCB.78_4;
  3606. struct TCB_t * pxCurrentTCB.79_5;
  3607. struct xLIST_ITEM * _6;
  3608. struct TCB_t * pxCurrentTCB.80_7;
  3609. struct xLIST_ITEM * _8;
  3610. struct ListItem_t * _9;
  3611. struct TCB_t * pxCurrentTCB.81_10;
  3612. struct ListItem_t * _11;
  3613. struct TCB_t * pxCurrentTCB.82_12;
  3614. long unsigned int _13;
  3615. long unsigned int _14;
  3616. <bb 2> :
  3617. if (pxEventList_15(D) == 0B)
  3618. goto <bb 3>; [INV]
  3619. else
  3620. goto <bb 6>; [INV]
  3621. <bb 3> :
  3622. __asm__ __volatile__(" mov %0, %1
  3623. msr basepri, %0
  3624. isb
  3625. dsb
  3626. " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  3627. <bb 4> :
  3628. <bb 5> :
  3629. goto <bb 5>; [INV]
  3630. <bb 6> :
  3631. uxSchedulerSuspended.76_1 ={v} uxSchedulerSuspended;
  3632. if (uxSchedulerSuspended.76_1 == 0)
  3633. goto <bb 7>; [INV]
  3634. else
  3635. goto <bb 10>; [INV]
  3636. <bb 7> :
  3637. __asm__ __volatile__(" mov %0, %1
  3638. msr basepri, %0
  3639. isb
  3640. dsb
  3641. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  3642. <bb 8> :
  3643. <bb 9> :
  3644. goto <bb 9>; [INV]
  3645. <bb 10> :
  3646. pxCurrentTCB.77_2 ={v} pxCurrentTCB;
  3647. _3 = xItemValue_17(D) | 2147483648;
  3648. pxCurrentTCB.77_2->xEventListItem.xItemValue = _3;
  3649. pxIndex_19 = pxEventList_15(D)->pxIndex;
  3650. pxCurrentTCB.78_4 ={v} pxCurrentTCB;
  3651. pxCurrentTCB.78_4->xEventListItem.pxNext = pxIndex_19;
  3652. pxCurrentTCB.79_5 ={v} pxCurrentTCB;
  3653. _6 = pxIndex_19->pxPrevious;
  3654. pxCurrentTCB.79_5->xEventListItem.pxPrevious = _6;
  3655. pxCurrentTCB.80_7 ={v} pxCurrentTCB;
  3656. _8 = pxIndex_19->pxPrevious;
  3657. _9 = &pxCurrentTCB.80_7->xEventListItem;
  3658. _8->pxNext = _9;
  3659. pxCurrentTCB.81_10 ={v} pxCurrentTCB;
  3660. _11 = &pxCurrentTCB.81_10->xEventListItem;
  3661. pxIndex_19->pxPrevious = _11;
  3662. pxCurrentTCB.82_12 ={v} pxCurrentTCB;
  3663. pxCurrentTCB.82_12->xEventListItem.pvContainer = pxEventList_15(D);
  3664. _13 ={v} pxEventList_15(D)->uxNumberOfItems;
  3665. _14 = _13 + 1;
  3666. pxEventList_15(D)->uxNumberOfItems ={v} _14;
  3667. prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1);
  3668. return;
  3669. }
  3670. vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait)
  3671. {
  3672. uint32_t ulNewBASEPRI;
  3673. struct TCB_t * pxCurrentTCB.75_1;
  3674. struct ListItem_t * _2;
  3675. <bb 2> :
  3676. if (pxEventList_3(D) == 0B)
  3677. goto <bb 3>; [INV]
  3678. else
  3679. goto <bb 6>; [INV]
  3680. <bb 3> :
  3681. __asm__ __volatile__(" mov %0, %1
  3682. msr basepri, %0
  3683. isb
  3684. dsb
  3685. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3686. <bb 4> :
  3687. <bb 5> :
  3688. goto <bb 5>; [INV]
  3689. <bb 6> :
  3690. pxCurrentTCB.75_1 ={v} pxCurrentTCB;
  3691. _2 = &pxCurrentTCB.75_1->xEventListItem;
  3692. vListInsert (pxEventList_3(D), _2);
  3693. prvAddCurrentTaskToDelayedList (xTicksToWait_6(D), 1);
  3694. return;
  3695. }
  3696. __attribute__((used))
  3697. vTaskSwitchContext ()
  3698. {
  3699. uint32_t ulNewBASEPRI;
  3700. struct List_t * const pxConstList;
  3701. UBaseType_t uxTopPriority;
  3702. long unsigned int uxSchedulerSuspended.74_1;
  3703. long unsigned int _2;
  3704. struct ListItem_t * _3;
  3705. struct xLIST_ITEM * _4;
  3706. struct ListItem_t * _5;
  3707. struct MiniListItem_t * _6;
  3708. struct ListItem_t * _7;
  3709. struct xLIST_ITEM * _8;
  3710. struct ListItem_t * _9;
  3711. void * _10;
  3712. <bb 2> :
  3713. uxSchedulerSuspended.74_1 ={v} uxSchedulerSuspended;
  3714. if (uxSchedulerSuspended.74_1 != 0)
  3715. goto <bb 3>; [INV]
  3716. else
  3717. goto <bb 4>; [INV]
  3718. <bb 3> :
  3719. xYieldPending ={v} 1;
  3720. goto <bb 14>; [INV]
  3721. <bb 4> :
  3722. xYieldPending ={v} 0;
  3723. uxTopPriority_16 ={v} uxTopReadyPriority;
  3724. goto <bb 10>; [INV]
  3725. <bb 5> :
  3726. if (uxTopPriority_11 == 0)
  3727. goto <bb 6>; [INV]
  3728. else
  3729. goto <bb 9>; [INV]
  3730. <bb 6> :
  3731. __asm__ __volatile__(" mov %0, %1
  3732. msr basepri, %0
  3733. isb
  3734. dsb
  3735. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  3736. <bb 7> :
  3737. <bb 8> :
  3738. goto <bb 8>; [INV]
  3739. <bb 9> :
  3740. uxTopPriority_22 = uxTopPriority_11 + 4294967295;
  3741. <bb 10> :
  3742. # uxTopPriority_11 = PHI <uxTopPriority_16(4), uxTopPriority_22(9)>
  3743. _2 ={v} pxReadyTasksLists[uxTopPriority_11].uxNumberOfItems;
  3744. if (_2 == 0)
  3745. goto <bb 5>; [INV]
  3746. else
  3747. goto <bb 11>; [INV]
  3748. <bb 11> :
  3749. pxConstList_17 = &pxReadyTasksLists[uxTopPriority_11];
  3750. _3 = pxConstList_17->pxIndex;
  3751. _4 = _3->pxNext;
  3752. pxConstList_17->pxIndex = _4;
  3753. _5 = pxConstList_17->pxIndex;
  3754. _6 = &pxConstList_17->xListEnd;
  3755. if (_5 == _6)
  3756. goto <bb 12>; [INV]
  3757. else
  3758. goto <bb 13>; [INV]
  3759. <bb 12> :
  3760. _7 = pxConstList_17->pxIndex;
  3761. _8 = _7->pxNext;
  3762. pxConstList_17->pxIndex = _8;
  3763. <bb 13> :
  3764. _9 = pxConstList_17->pxIndex;
  3765. _10 = _9->pvOwner;
  3766. pxCurrentTCB ={v} _10;
  3767. uxTopReadyPriority ={v} uxTopPriority_11;
  3768. <bb 14> :
  3769. return;
  3770. }
  3771. xTaskIncrementTick ()
  3772. {
  3773. uint32_t ulNewBASEPRI;
  3774. struct ListItem_t * const pxIndex;
  3775. struct List_t * const pxList;
  3776. struct List_t * const pxList;
  3777. struct List_t * pxTemp;
  3778. const TickType_t xConstTickCount;
  3779. BaseType_t xSwitchRequired;
  3780. TickType_t xItemValue;
  3781. struct TCB_t * pxTCB;
  3782. BaseType_t D.7897;
  3783. long unsigned int uxSchedulerSuspended.61_1;
  3784. long unsigned int xTickCount.62_2;
  3785. struct List_t * pxDelayedTaskList.63_3;
  3786. long unsigned int _4;
  3787. struct List_t * pxOverflowDelayedTaskList.64_5;
  3788. long int xNumOfOverflows.65_6;
  3789. long int _7;
  3790. long unsigned int xNextTaskUnblockTime.66_8;
  3791. struct List_t * pxDelayedTaskList.67_9;
  3792. long unsigned int _10;
  3793. struct List_t * pxDelayedTaskList.68_11;
  3794. struct xLIST_ITEM * _12;
  3795. struct xLIST_ITEM * _13;
  3796. struct xLIST_ITEM * _14;
  3797. struct xLIST_ITEM * _15;
  3798. struct xLIST_ITEM * _16;
  3799. struct ListItem_t * _17;
  3800. struct ListItem_t * _18;
  3801. struct xLIST_ITEM * _19;
  3802. long unsigned int _20;
  3803. long unsigned int _21;
  3804. struct xLIST * _22;
  3805. struct xLIST_ITEM * _23;
  3806. struct xLIST_ITEM * _24;
  3807. struct xLIST_ITEM * _25;
  3808. struct xLIST_ITEM * _26;
  3809. struct ListItem_t * _27;
  3810. struct ListItem_t * _28;
  3811. struct xLIST_ITEM * _29;
  3812. long unsigned int _30;
  3813. long unsigned int _31;
  3814. long unsigned int _32;
  3815. long unsigned int uxTopReadyPriority.69_33;
  3816. long unsigned int _34;
  3817. long unsigned int _35;
  3818. struct xLIST_ITEM * _36;
  3819. struct xLIST_ITEM * _37;
  3820. struct ListItem_t * _38;
  3821. struct ListItem_t * _39;
  3822. long unsigned int _40;
  3823. struct List_t * _41;
  3824. long unsigned int _42;
  3825. long unsigned int _43;
  3826. long unsigned int _44;
  3827. long unsigned int _45;
  3828. struct TCB_t * pxCurrentTCB.70_46;
  3829. long unsigned int _47;
  3830. struct TCB_t * pxCurrentTCB.71_48;
  3831. long unsigned int _49;
  3832. long unsigned int _50;
  3833. long int xYieldPending.72_51;
  3834. long unsigned int xPendedTicks.73_52;
  3835. long unsigned int _53;
  3836. BaseType_t _104;
  3837. <bb 2> :
  3838. xSwitchRequired_67 = 0;
  3839. uxSchedulerSuspended.61_1 ={v} uxSchedulerSuspended;
  3840. if (uxSchedulerSuspended.61_1 == 0)
  3841. goto <bb 3>; [INV]
  3842. else
  3843. goto <bb 29>; [INV]
  3844. <bb 3> :
  3845. xTickCount.62_2 ={v} xTickCount;
  3846. xConstTickCount_70 = xTickCount.62_2 + 1;
  3847. xTickCount ={v} xConstTickCount_70;
  3848. if (xConstTickCount_70 == 0)
  3849. goto <bb 4>; [INV]
  3850. else
  3851. goto <bb 9>; [INV]
  3852. <bb 4> :
  3853. pxDelayedTaskList.63_3 ={v} pxDelayedTaskList;
  3854. _4 ={v} pxDelayedTaskList.63_3->uxNumberOfItems;
  3855. if (_4 != 0)
  3856. goto <bb 5>; [INV]
  3857. else
  3858. goto <bb 8>; [INV]
  3859. <bb 5> :
  3860. __asm__ __volatile__(" mov %0, %1
  3861. msr basepri, %0
  3862. isb
  3863. dsb
  3864. " : "=r" ulNewBASEPRI_105 : "i" 16 : "memory");
  3865. <bb 6> :
  3866. <bb 7> :
  3867. goto <bb 7>; [INV]
  3868. <bb 8> :
  3869. pxTemp_72 ={v} pxDelayedTaskList;
  3870. pxOverflowDelayedTaskList.64_5 ={v} pxOverflowDelayedTaskList;
  3871. pxDelayedTaskList ={v} pxOverflowDelayedTaskList.64_5;
  3872. pxOverflowDelayedTaskList ={v} pxTemp_72;
  3873. xNumOfOverflows.65_6 ={v} xNumOfOverflows;
  3874. _7 = xNumOfOverflows.65_6 + 1;
  3875. xNumOfOverflows ={v} _7;
  3876. prvResetNextTaskUnblockTime ();
  3877. <bb 9> :
  3878. xNextTaskUnblockTime.66_8 ={v} xNextTaskUnblockTime;
  3879. if (xConstTickCount_70 >= xNextTaskUnblockTime.66_8)
  3880. goto <bb 10>; [INV]
  3881. else
  3882. goto <bb 25>; [INV]
  3883. <bb 10> :
  3884. # xSwitchRequired_54 = PHI <xSwitchRequired_67(9), xSwitchRequired_55(24)>
  3885. pxDelayedTaskList.67_9 ={v} pxDelayedTaskList;
  3886. _10 ={v} pxDelayedTaskList.67_9->uxNumberOfItems;
  3887. if (_10 == 0)
  3888. goto <bb 11>; [INV]
  3889. else
  3890. goto <bb 12>; [INV]
  3891. <bb 11> :
  3892. xNextTaskUnblockTime ={v} 4294967295;
  3893. goto <bb 25>; [INV]
  3894. <bb 12> :
  3895. pxDelayedTaskList.68_11 ={v} pxDelayedTaskList;
  3896. _12 = pxDelayedTaskList.68_11->xListEnd.pxNext;
  3897. pxTCB_77 = _12->pvOwner;
  3898. xItemValue_78 = pxTCB_77->xStateListItem.xItemValue;
  3899. if (xConstTickCount_70 < xItemValue_78)
  3900. goto <bb 13>; [INV]
  3901. else
  3902. goto <bb 14>; [INV]
  3903. <bb 13> :
  3904. xNextTaskUnblockTime ={v} xItemValue_78;
  3905. goto <bb 25>; [INV]
  3906. <bb 14> :
  3907. pxList_79 = pxTCB_77->xStateListItem.pvContainer;
  3908. _13 = pxTCB_77->xStateListItem.pxNext;
  3909. _14 = pxTCB_77->xStateListItem.pxPrevious;
  3910. _13->pxPrevious = _14;
  3911. _15 = pxTCB_77->xStateListItem.pxPrevious;
  3912. _16 = pxTCB_77->xStateListItem.pxNext;
  3913. _15->pxNext = _16;
  3914. _17 = pxList_79->pxIndex;
  3915. _18 = &pxTCB_77->xStateListItem;
  3916. if (_17 == _18)
  3917. goto <bb 15>; [INV]
  3918. else
  3919. goto <bb 16>; [INV]
  3920. <bb 15> :
  3921. _19 = pxTCB_77->xStateListItem.pxPrevious;
  3922. pxList_79->pxIndex = _19;
  3923. <bb 16> :
  3924. pxTCB_77->xStateListItem.pvContainer = 0B;
  3925. _20 ={v} pxList_79->uxNumberOfItems;
  3926. _21 = _20 + 4294967295;
  3927. pxList_79->uxNumberOfItems ={v} _21;
  3928. _22 = pxTCB_77->xEventListItem.pvContainer;
  3929. if (_22 != 0B)
  3930. goto <bb 17>; [INV]
  3931. else
  3932. goto <bb 20>; [INV]
  3933. <bb 17> :
  3934. pxList_85 = pxTCB_77->xEventListItem.pvContainer;
  3935. _23 = pxTCB_77->xEventListItem.pxNext;
  3936. _24 = pxTCB_77->xEventListItem.pxPrevious;
  3937. _23->pxPrevious = _24;
  3938. _25 = pxTCB_77->xEventListItem.pxPrevious;
  3939. _26 = pxTCB_77->xEventListItem.pxNext;
  3940. _25->pxNext = _26;
  3941. _27 = pxList_85->pxIndex;
  3942. _28 = &pxTCB_77->xEventListItem;
  3943. if (_27 == _28)
  3944. goto <bb 18>; [INV]
  3945. else
  3946. goto <bb 19>; [INV]
  3947. <bb 18> :
  3948. _29 = pxTCB_77->xEventListItem.pxPrevious;
  3949. pxList_85->pxIndex = _29;
  3950. <bb 19> :
  3951. pxTCB_77->xEventListItem.pvContainer = 0B;
  3952. _30 ={v} pxList_85->uxNumberOfItems;
  3953. _31 = _30 + 4294967295;
  3954. pxList_85->uxNumberOfItems ={v} _31;
  3955. <bb 20> :
  3956. _32 = pxTCB_77->uxPriority;
  3957. uxTopReadyPriority.69_33 ={v} uxTopReadyPriority;
  3958. if (_32 > uxTopReadyPriority.69_33)
  3959. goto <bb 21>; [INV]
  3960. else
  3961. goto <bb 22>; [INV]
  3962. <bb 21> :
  3963. _34 = pxTCB_77->uxPriority;
  3964. uxTopReadyPriority ={v} _34;
  3965. <bb 22> :
  3966. _35 = pxTCB_77->uxPriority;
  3967. pxIndex_92 = pxReadyTasksLists[_35].pxIndex;
  3968. pxTCB_77->xStateListItem.pxNext = pxIndex_92;
  3969. _36 = pxIndex_92->pxPrevious;
  3970. pxTCB_77->xStateListItem.pxPrevious = _36;
  3971. _37 = pxIndex_92->pxPrevious;
  3972. _38 = &pxTCB_77->xStateListItem;
  3973. _37->pxNext = _38;
  3974. _39 = &pxTCB_77->xStateListItem;
  3975. pxIndex_92->pxPrevious = _39;
  3976. _40 = pxTCB_77->uxPriority;
  3977. _41 = &pxReadyTasksLists[_40];
  3978. pxTCB_77->xStateListItem.pvContainer = _41;
  3979. _42 = pxTCB_77->uxPriority;
  3980. _43 ={v} pxReadyTasksLists[_42].uxNumberOfItems;
  3981. _44 = _43 + 1;
  3982. pxReadyTasksLists[_42].uxNumberOfItems ={v} _44;
  3983. _45 = pxTCB_77->uxPriority;
  3984. pxCurrentTCB.70_46 ={v} pxCurrentTCB;
  3985. _47 = pxCurrentTCB.70_46->uxPriority;
  3986. if (_45 >= _47)
  3987. goto <bb 23>; [INV]
  3988. else
  3989. goto <bb 24>; [INV]
  3990. <bb 23> :
  3991. xSwitchRequired_99 = 1;
  3992. <bb 24> :
  3993. # xSwitchRequired_55 = PHI <xSwitchRequired_54(22), xSwitchRequired_99(23)>
  3994. goto <bb 10>; [INV]
  3995. <bb 25> :
  3996. # xSwitchRequired_56 = PHI <xSwitchRequired_67(9), xSwitchRequired_54(11), xSwitchRequired_54(13)>
  3997. pxCurrentTCB.71_48 ={v} pxCurrentTCB;
  3998. _49 = pxCurrentTCB.71_48->uxPriority;
  3999. _50 ={v} pxReadyTasksLists[_49].uxNumberOfItems;
  4000. if (_50 > 1)
  4001. goto <bb 26>; [INV]
  4002. else
  4003. goto <bb 27>; [INV]
  4004. <bb 26> :
  4005. xSwitchRequired_102 = 1;
  4006. <bb 27> :
  4007. # xSwitchRequired_57 = PHI <xSwitchRequired_56(25), xSwitchRequired_102(26)>
  4008. xYieldPending.72_51 ={v} xYieldPending;
  4009. if (xYieldPending.72_51 != 0)
  4010. goto <bb 28>; [INV]
  4011. else
  4012. goto <bb 30>; [INV]
  4013. <bb 28> :
  4014. xSwitchRequired_103 = 1;
  4015. goto <bb 30>; [INV]
  4016. <bb 29> :
  4017. xPendedTicks.73_52 ={v} xPendedTicks;
  4018. _53 = xPendedTicks.73_52 + 1;
  4019. xPendedTicks ={v} _53;
  4020. <bb 30> :
  4021. # xSwitchRequired_58 = PHI <xSwitchRequired_103(28), xSwitchRequired_67(29), xSwitchRequired_57(27)>
  4022. _104 = xSwitchRequired_58;
  4023. <bb 31> :
  4024. <L35>:
  4025. return _104;
  4026. }
  4027. xTaskAbortDelay (struct tskTaskControlBlock * xTask)
  4028. {
  4029. uint32_t ulNewBASEPRI;
  4030. struct ListItem_t * const pxIndex;
  4031. BaseType_t xReturn;
  4032. struct TCB_t * pxTCB;
  4033. BaseType_t D.7863;
  4034. <unnamed type> _1;
  4035. struct ListItem_t * _2;
  4036. struct xLIST * _3;
  4037. struct ListItem_t * _4;
  4038. long unsigned int _5;
  4039. long unsigned int uxTopReadyPriority.59_6;
  4040. long unsigned int _7;
  4041. long unsigned int _8;
  4042. struct xLIST_ITEM * _9;
  4043. struct xLIST_ITEM * _10;
  4044. struct ListItem_t * _11;
  4045. struct ListItem_t * _12;
  4046. long unsigned int _13;
  4047. struct List_t * _14;
  4048. long unsigned int _15;
  4049. long unsigned int _16;
  4050. long unsigned int _17;
  4051. long unsigned int _18;
  4052. struct TCB_t * pxCurrentTCB.60_19;
  4053. long unsigned int _20;
  4054. BaseType_t _47;
  4055. <bb 2> :
  4056. pxTCB_26 = xTask_25(D);
  4057. if (pxTCB_26 == 0B)
  4058. goto <bb 3>; [INV]
  4059. else
  4060. goto <bb 6>; [INV]
  4061. <bb 3> :
  4062. __asm__ __volatile__(" mov %0, %1
  4063. msr basepri, %0
  4064. isb
  4065. dsb
  4066. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  4067. <bb 4> :
  4068. <bb 5> :
  4069. goto <bb 5>; [INV]
  4070. <bb 6> :
  4071. vTaskSuspendAll ();
  4072. _1 = eTaskGetState (xTask_25(D));
  4073. if (_1 == 2)
  4074. goto <bb 7>; [INV]
  4075. else
  4076. goto <bb 13>; [INV]
  4077. <bb 7> :
  4078. xReturn_31 = 1;
  4079. _2 = &pxTCB_26->xStateListItem;
  4080. uxListRemove (_2);
  4081. vPortEnterCritical ();
  4082. _3 = pxTCB_26->xEventListItem.pvContainer;
  4083. if (_3 != 0B)
  4084. goto <bb 8>; [INV]
  4085. else
  4086. goto <bb 9>; [INV]
  4087. <bb 8> :
  4088. _4 = &pxTCB_26->xEventListItem;
  4089. uxListRemove (_4);
  4090. pxTCB_26->ucDelayAborted = 1;
  4091. <bb 9> :
  4092. vPortExitCritical ();
  4093. _5 = pxTCB_26->uxPriority;
  4094. uxTopReadyPriority.59_6 ={v} uxTopReadyPriority;
  4095. if (_5 > uxTopReadyPriority.59_6)
  4096. goto <bb 10>; [INV]
  4097. else
  4098. goto <bb 11>; [INV]
  4099. <bb 10> :
  4100. _7 = pxTCB_26->uxPriority;
  4101. uxTopReadyPriority ={v} _7;
  4102. <bb 11> :
  4103. _8 = pxTCB_26->uxPriority;
  4104. pxIndex_38 = pxReadyTasksLists[_8].pxIndex;
  4105. pxTCB_26->xStateListItem.pxNext = pxIndex_38;
  4106. _9 = pxIndex_38->pxPrevious;
  4107. pxTCB_26->xStateListItem.pxPrevious = _9;
  4108. _10 = pxIndex_38->pxPrevious;
  4109. _11 = &pxTCB_26->xStateListItem;
  4110. _10->pxNext = _11;
  4111. _12 = &pxTCB_26->xStateListItem;
  4112. pxIndex_38->pxPrevious = _12;
  4113. _13 = pxTCB_26->uxPriority;
  4114. _14 = &pxReadyTasksLists[_13];
  4115. pxTCB_26->xStateListItem.pvContainer = _14;
  4116. _15 = pxTCB_26->uxPriority;
  4117. _16 ={v} pxReadyTasksLists[_15].uxNumberOfItems;
  4118. _17 = _16 + 1;
  4119. pxReadyTasksLists[_15].uxNumberOfItems ={v} _17;
  4120. _18 = pxTCB_26->uxPriority;
  4121. pxCurrentTCB.60_19 ={v} pxCurrentTCB;
  4122. _20 = pxCurrentTCB.60_19->uxPriority;
  4123. if (_18 > _20)
  4124. goto <bb 12>; [INV]
  4125. else
  4126. goto <bb 14>; [INV]
  4127. <bb 12> :
  4128. xYieldPending ={v} 1;
  4129. goto <bb 14>; [INV]
  4130. <bb 13> :
  4131. xReturn_30 = 0;
  4132. <bb 14> :
  4133. # xReturn_21 = PHI <xReturn_31(12), xReturn_30(13), xReturn_31(11)>
  4134. xTaskResumeAll ();
  4135. _47 = xReturn_21;
  4136. <bb 15> :
  4137. <L14>:
  4138. return _47;
  4139. }
  4140. xTaskCatchUpTicks (TickType_t xTicksToCatchUp)
  4141. {
  4142. uint32_t ulNewBASEPRI;
  4143. BaseType_t xYieldOccurred;
  4144. BaseType_t D.7848;
  4145. long unsigned int uxSchedulerSuspended.57_1;
  4146. long unsigned int xPendedTicks.58_2;
  4147. long unsigned int _3;
  4148. BaseType_t _10;
  4149. <bb 2> :
  4150. uxSchedulerSuspended.57_1 ={v} uxSchedulerSuspended;
  4151. if (uxSchedulerSuspended.57_1 != 0)
  4152. goto <bb 3>; [INV]
  4153. else
  4154. goto <bb 6>; [INV]
  4155. <bb 3> :
  4156. __asm__ __volatile__(" mov %0, %1
  4157. msr basepri, %0
  4158. isb
  4159. dsb
  4160. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  4161. <bb 4> :
  4162. <bb 5> :
  4163. goto <bb 5>; [INV]
  4164. <bb 6> :
  4165. vTaskSuspendAll ();
  4166. xPendedTicks.58_2 ={v} xPendedTicks;
  4167. _3 = xTicksToCatchUp_6(D) + xPendedTicks.58_2;
  4168. xPendedTicks ={v} _3;
  4169. xYieldOccurred_9 = xTaskResumeAll ();
  4170. _10 = xYieldOccurred_9;
  4171. <bb 7> :
  4172. <L3>:
  4173. return _10;
  4174. }
  4175. uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime)
  4176. {
  4177. UBaseType_t uxQueue;
  4178. UBaseType_t uxTask;
  4179. UBaseType_t D.7844;
  4180. long unsigned int D.7840;
  4181. long unsigned int D.7839;
  4182. long unsigned int D.7838;
  4183. long unsigned int D.7837;
  4184. long unsigned int D.7836;
  4185. long unsigned int uxCurrentNumberOfTasks.54_1;
  4186. long unsigned int _2;
  4187. struct TaskStatus_t * _3;
  4188. struct List_t * _4;
  4189. long unsigned int _5;
  4190. struct TaskStatus_t * _6;
  4191. struct List_t * pxDelayedTaskList.55_7;
  4192. long unsigned int _8;
  4193. struct TaskStatus_t * _9;
  4194. struct List_t * pxOverflowDelayedTaskList.56_10;
  4195. long unsigned int _11;
  4196. struct TaskStatus_t * _12;
  4197. long unsigned int _13;
  4198. struct TaskStatus_t * _14;
  4199. long unsigned int _28;
  4200. long unsigned int _31;
  4201. long unsigned int _34;
  4202. long unsigned int _37;
  4203. long unsigned int _40;
  4204. UBaseType_t _45;
  4205. <bb 2> :
  4206. uxTask_20 = 0;
  4207. uxQueue_21 = 5;
  4208. vTaskSuspendAll ();
  4209. uxCurrentNumberOfTasks.54_1 ={v} uxCurrentNumberOfTasks;
  4210. if (uxArraySize_24(D) >= uxCurrentNumberOfTasks.54_1)
  4211. goto <bb 3>; [INV]
  4212. else
  4213. goto <bb 6>; [INV]
  4214. <bb 3> :
  4215. # uxTask_15 = PHI <uxTask_20(2), uxTask_29(3)>
  4216. # uxQueue_17 = PHI <uxQueue_21(2), uxQueue_25(3)>
  4217. uxQueue_25 = uxQueue_17 + 4294967295;
  4218. _2 = uxTask_15 * 36;
  4219. _3 = pxTaskStatusArray_26(D) + _2;
  4220. _4 = &pxReadyTasksLists[uxQueue_25];
  4221. _28 = prvListTasksWithinSingleList (_3, _4, 1);
  4222. uxTask_29 = _28 + uxTask_15;
  4223. if (uxQueue_25 != 0)
  4224. goto <bb 3>; [INV]
  4225. else
  4226. goto <bb 4>; [INV]
  4227. <bb 4> :
  4228. _5 = uxTask_29 * 36;
  4229. _6 = pxTaskStatusArray_26(D) + _5;
  4230. pxDelayedTaskList.55_7 ={v} pxDelayedTaskList;
  4231. _31 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2);
  4232. uxTask_32 = _31 + uxTask_29;
  4233. _8 = uxTask_32 * 36;
  4234. _9 = pxTaskStatusArray_26(D) + _8;
  4235. pxOverflowDelayedTaskList.56_10 ={v} pxOverflowDelayedTaskList;
  4236. _34 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2);
  4237. uxTask_35 = _34 + uxTask_32;
  4238. _11 = uxTask_35 * 36;
  4239. _12 = pxTaskStatusArray_26(D) + _11;
  4240. _37 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4);
  4241. uxTask_38 = _37 + uxTask_35;
  4242. _13 = uxTask_38 * 36;
  4243. _14 = pxTaskStatusArray_26(D) + _13;
  4244. _40 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3);
  4245. uxTask_41 = _40 + uxTask_38;
  4246. if (pulTotalRunTime_42(D) != 0B)
  4247. goto <bb 5>; [INV]
  4248. else
  4249. goto <bb 6>; [INV]
  4250. <bb 5> :
  4251. *pulTotalRunTime_42(D) = 0;
  4252. <bb 6> :
  4253. # uxTask_16 = PHI <uxTask_20(2), uxTask_41(5), uxTask_41(4)>
  4254. xTaskResumeAll ();
  4255. _45 = uxTask_16;
  4256. <bb 7> :
  4257. <L7>:
  4258. return _45;
  4259. }
  4260. xTaskGetHandle (const char * pcNameToQuery)
  4261. {
  4262. uint32_t ulNewBASEPRI;
  4263. struct TCB_t * pxTCB;
  4264. UBaseType_t uxQueue;
  4265. struct tskTaskControlBlock * D.7832;
  4266. unsigned int _1;
  4267. struct List_t * _2;
  4268. struct List_t * pxDelayedTaskList.52_3;
  4269. struct List_t * pxOverflowDelayedTaskList.53_4;
  4270. struct tskTaskControlBlock * _31;
  4271. <bb 2> :
  4272. uxQueue_15 = 5;
  4273. _1 = strlen (pcNameToQuery_17(D));
  4274. if (_1 > 9)
  4275. goto <bb 3>; [INV]
  4276. else
  4277. goto <bb 6>; [INV]
  4278. <bb 3> :
  4279. __asm__ __volatile__(" mov %0, %1
  4280. msr basepri, %0
  4281. isb
  4282. dsb
  4283. " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory");
  4284. <bb 4> :
  4285. <bb 5> :
  4286. goto <bb 5>; [INV]
  4287. <bb 6> :
  4288. vTaskSuspendAll ();
  4289. <bb 7> :
  4290. # uxQueue_5 = PHI <uxQueue_15(6), uxQueue_19(9)>
  4291. uxQueue_19 = uxQueue_5 + 4294967295;
  4292. _2 = &pxReadyTasksLists[uxQueue_19];
  4293. pxTCB_21 = prvSearchForNameWithinSingleList (_2, pcNameToQuery_17(D));
  4294. if (pxTCB_21 != 0B)
  4295. goto <bb 8>; [INV]
  4296. else
  4297. goto <bb 9>; [INV]
  4298. <bb 8> :
  4299. goto <bb 10>; [INV]
  4300. <bb 9> :
  4301. if (uxQueue_19 != 0)
  4302. goto <bb 7>; [INV]
  4303. else
  4304. goto <bb 10>; [INV]
  4305. <bb 10> :
  4306. if (pxTCB_21 == 0B)
  4307. goto <bb 11>; [INV]
  4308. else
  4309. goto <bb 12>; [INV]
  4310. <bb 11> :
  4311. pxDelayedTaskList.52_3 ={v} pxDelayedTaskList;
  4312. pxTCB_23 = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery_17(D));
  4313. <bb 12> :
  4314. # pxTCB_6 = PHI <pxTCB_21(10), pxTCB_23(11)>
  4315. if (pxTCB_6 == 0B)
  4316. goto <bb 13>; [INV]
  4317. else
  4318. goto <bb 14>; [INV]
  4319. <bb 13> :
  4320. pxOverflowDelayedTaskList.53_4 ={v} pxOverflowDelayedTaskList;
  4321. pxTCB_25 = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery_17(D));
  4322. <bb 14> :
  4323. # pxTCB_7 = PHI <pxTCB_6(12), pxTCB_25(13)>
  4324. if (pxTCB_7 == 0B)
  4325. goto <bb 15>; [INV]
  4326. else
  4327. goto <bb 16>; [INV]
  4328. <bb 15> :
  4329. pxTCB_27 = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery_17(D));
  4330. <bb 16> :
  4331. # pxTCB_8 = PHI <pxTCB_7(14), pxTCB_27(15)>
  4332. if (pxTCB_8 == 0B)
  4333. goto <bb 17>; [INV]
  4334. else
  4335. goto <bb 18>; [INV]
  4336. <bb 17> :
  4337. pxTCB_29 = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery_17(D));
  4338. <bb 18> :
  4339. # pxTCB_9 = PHI <pxTCB_8(16), pxTCB_29(17)>
  4340. xTaskResumeAll ();
  4341. _31 = pxTCB_9;
  4342. <bb 19> :
  4343. <L15>:
  4344. return _31;
  4345. }
  4346. prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery)
  4347. {
  4348. struct List_t * const pxConstList;
  4349. struct List_t * const pxConstList;
  4350. BaseType_t xBreakLoop;
  4351. char cNextChar;
  4352. UBaseType_t x;
  4353. struct TCB_t * pxReturn;
  4354. struct TCB_t * pxFirstTCB;
  4355. struct TCB_t * pxNextTCB;
  4356. struct TCB_t * D.7818;
  4357. long unsigned int _1;
  4358. struct ListItem_t * _2;
  4359. struct xLIST_ITEM * _3;
  4360. struct ListItem_t * _4;
  4361. struct MiniListItem_t * _5;
  4362. struct ListItem_t * _6;
  4363. struct xLIST_ITEM * _7;
  4364. struct ListItem_t * _8;
  4365. struct ListItem_t * _9;
  4366. struct xLIST_ITEM * _10;
  4367. struct ListItem_t * _11;
  4368. struct MiniListItem_t * _12;
  4369. struct ListItem_t * _13;
  4370. struct xLIST_ITEM * _14;
  4371. struct ListItem_t * _15;
  4372. const char * _16;
  4373. char _17;
  4374. struct TCB_t * _49;
  4375. <bb 2> :
  4376. pxReturn_30 = 0B;
  4377. _1 ={v} pxList_32(D)->uxNumberOfItems;
  4378. if (_1 != 0)
  4379. goto <bb 3>; [INV]
  4380. else
  4381. goto <bb 21>; [INV]
  4382. <bb 3> :
  4383. pxConstList_33 = pxList_32(D);
  4384. _2 = pxConstList_33->pxIndex;
  4385. _3 = _2->pxNext;
  4386. pxConstList_33->pxIndex = _3;
  4387. _4 = pxConstList_33->pxIndex;
  4388. _5 = &pxConstList_33->xListEnd;
  4389. if (_4 == _5)
  4390. goto <bb 4>; [INV]
  4391. else
  4392. goto <bb 5>; [INV]
  4393. <bb 4> :
  4394. _6 = pxConstList_33->pxIndex;
  4395. _7 = _6->pxNext;
  4396. pxConstList_33->pxIndex = _7;
  4397. <bb 5> :
  4398. _8 = pxConstList_33->pxIndex;
  4399. pxFirstTCB_36 = _8->pvOwner;
  4400. <bb 6> :
  4401. # pxReturn_18 = PHI <pxReturn_30(5), pxReturn_21(19)>
  4402. pxConstList_37 = pxList_32(D);
  4403. _9 = pxConstList_37->pxIndex;
  4404. _10 = _9->pxNext;
  4405. pxConstList_37->pxIndex = _10;
  4406. _11 = pxConstList_37->pxIndex;
  4407. _12 = &pxConstList_37->xListEnd;
  4408. if (_11 == _12)
  4409. goto <bb 7>; [INV]
  4410. else
  4411. goto <bb 8>; [INV]
  4412. <bb 7> :
  4413. _13 = pxConstList_37->pxIndex;
  4414. _14 = _13->pxNext;
  4415. pxConstList_37->pxIndex = _14;
  4416. <bb 8> :
  4417. _15 = pxConstList_37->pxIndex;
  4418. pxNextTCB_40 = _15->pvOwner;
  4419. xBreakLoop_41 = 0;
  4420. x_42 = 0;
  4421. goto <bb 16>; [INV]
  4422. <bb 9> :
  4423. cNextChar_43 = pxNextTCB_40->pcTaskName[x_23];
  4424. _16 = pcNameToQuery_44(D) + x_23;
  4425. _17 = *_16;
  4426. if (cNextChar_43 != _17)
  4427. goto <bb 10>; [INV]
  4428. else
  4429. goto <bb 11>; [INV]
  4430. <bb 10> :
  4431. xBreakLoop_47 = 1;
  4432. goto <bb 13>; [INV]
  4433. <bb 11> :
  4434. if (cNextChar_43 == 0)
  4435. goto <bb 12>; [INV]
  4436. else
  4437. goto <bb 13>; [INV]
  4438. <bb 12> :
  4439. pxReturn_45 = pxNextTCB_40;
  4440. xBreakLoop_46 = 1;
  4441. <bb 13> :
  4442. # pxReturn_19 = PHI <pxReturn_20(10), pxReturn_20(11), pxReturn_45(12)>
  4443. # xBreakLoop_24 = PHI <xBreakLoop_47(10), xBreakLoop_25(11), xBreakLoop_46(12)>
  4444. if (xBreakLoop_24 != 0)
  4445. goto <bb 14>; [INV]
  4446. else
  4447. goto <bb 15>; [INV]
  4448. <bb 14> :
  4449. goto <bb 17>; [INV]
  4450. <bb 15> :
  4451. x_48 = x_23 + 1;
  4452. <bb 16> :
  4453. # pxReturn_20 = PHI <pxReturn_18(8), pxReturn_19(15)>
  4454. # x_23 = PHI <x_42(8), x_48(15)>
  4455. # xBreakLoop_25 = PHI <xBreakLoop_41(8), xBreakLoop_24(15)>
  4456. if (x_23 <= 9)
  4457. goto <bb 9>; [INV]
  4458. else
  4459. goto <bb 17>; [INV]
  4460. <bb 17> :
  4461. # pxReturn_21 = PHI <pxReturn_19(14), pxReturn_20(16)>
  4462. if (pxReturn_21 != 0B)
  4463. goto <bb 18>; [INV]
  4464. else
  4465. goto <bb 19>; [INV]
  4466. <bb 18> :
  4467. goto <bb 20>; [INV]
  4468. <bb 19> :
  4469. if (pxNextTCB_40 != pxFirstTCB_36)
  4470. goto <bb 6>; [INV]
  4471. else
  4472. goto <bb 20>; [INV]
  4473. <bb 20> :
  4474. <bb 21> :
  4475. # pxReturn_22 = PHI <pxReturn_30(2), pxReturn_21(20)>
  4476. _49 = pxReturn_22;
  4477. <bb 22> :
  4478. <L22>:
  4479. return _49;
  4480. }
  4481. pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery)
  4482. {
  4483. uint32_t ulNewBASEPRI;
  4484. struct TCB_t * pxTCB;
  4485. char * D.7799;
  4486. struct TCB_t * iftmp.51;
  4487. struct TCB_t * iftmp.51_1;
  4488. struct TCB_t * iftmp.51_3;
  4489. struct TCB_t * iftmp.51_5;
  4490. char * _7;
  4491. <bb 2> :
  4492. if (xTaskToQuery_2(D) == 0B)
  4493. goto <bb 3>; [INV]
  4494. else
  4495. goto <bb 4>; [INV]
  4496. <bb 3> :
  4497. iftmp.51_5 ={v} pxCurrentTCB;
  4498. goto <bb 5>; [INV]
  4499. <bb 4> :
  4500. iftmp.51_3 = xTaskToQuery_2(D);
  4501. <bb 5> :
  4502. # iftmp.51_1 = PHI <iftmp.51_5(3), iftmp.51_3(4)>
  4503. pxTCB_6 = iftmp.51_1;
  4504. if (pxTCB_6 == 0B)
  4505. goto <bb 6>; [INV]
  4506. else
  4507. goto <bb 9>; [INV]
  4508. <bb 6> :
  4509. __asm__ __volatile__(" mov %0, %1
  4510. msr basepri, %0
  4511. isb
  4512. dsb
  4513. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  4514. <bb 7> :
  4515. <bb 8> :
  4516. goto <bb 8>; [INV]
  4517. <bb 9> :
  4518. _7 = &pxTCB_6->pcTaskName[0];
  4519. <bb 10> :
  4520. <L6>:
  4521. return _7;
  4522. }
  4523. uxTaskGetNumberOfTasks ()
  4524. {
  4525. UBaseType_t D.7791;
  4526. UBaseType_t _2;
  4527. <bb 2> :
  4528. _2 ={v} uxCurrentNumberOfTasks;
  4529. <bb 3> :
  4530. <L0>:
  4531. return _2;
  4532. }
  4533. xTaskGetTickCountFromISR ()
  4534. {
  4535. UBaseType_t uxSavedInterruptStatus;
  4536. TickType_t xReturn;
  4537. TickType_t D.7789;
  4538. TickType_t _5;
  4539. <bb 2> :
  4540. vPortValidateInterruptPriority ();
  4541. uxSavedInterruptStatus_3 = 0;
  4542. xReturn_4 ={v} xTickCount;
  4543. _5 = xReturn_4;
  4544. <bb 3> :
  4545. <L0>:
  4546. return _5;
  4547. }
  4548. xTaskGetTickCount ()
  4549. {
  4550. TickType_t xTicks;
  4551. TickType_t D.7787;
  4552. TickType_t _3;
  4553. <bb 2> :
  4554. xTicks_2 ={v} xTickCount;
  4555. _3 = xTicks_2;
  4556. <bb 3> :
  4557. <L0>:
  4558. return _3;
  4559. }
  4560. xTaskResumeAll ()
  4561. {
  4562. uint32_t ulNewBASEPRI;
  4563. TickType_t xPendedCounts;
  4564. struct ListItem_t * const pxIndex;
  4565. struct List_t * const pxList;
  4566. struct List_t * const pxList;
  4567. BaseType_t xAlreadyYielded;
  4568. struct TCB_t * pxTCB;
  4569. BaseType_t D.7785;
  4570. long unsigned int uxSchedulerSuspended.44_1;
  4571. long unsigned int uxSchedulerSuspended.45_2;
  4572. long unsigned int _3;
  4573. long unsigned int uxSchedulerSuspended.46_4;
  4574. long unsigned int uxCurrentNumberOfTasks.47_5;
  4575. struct xLIST_ITEM * _6;
  4576. struct xLIST_ITEM * _7;
  4577. struct xLIST_ITEM * _8;
  4578. struct xLIST_ITEM * _9;
  4579. struct xLIST_ITEM * _10;
  4580. struct ListItem_t * _11;
  4581. struct ListItem_t * _12;
  4582. struct xLIST_ITEM * _13;
  4583. long unsigned int _14;
  4584. long unsigned int _15;
  4585. struct xLIST_ITEM * _16;
  4586. struct xLIST_ITEM * _17;
  4587. struct xLIST_ITEM * _18;
  4588. struct xLIST_ITEM * _19;
  4589. struct ListItem_t * _20;
  4590. struct ListItem_t * _21;
  4591. struct xLIST_ITEM * _22;
  4592. long unsigned int _23;
  4593. long unsigned int _24;
  4594. long unsigned int _25;
  4595. long unsigned int uxTopReadyPriority.48_26;
  4596. long unsigned int _27;
  4597. long unsigned int _28;
  4598. struct xLIST_ITEM * _29;
  4599. struct xLIST_ITEM * _30;
  4600. struct ListItem_t * _31;
  4601. struct ListItem_t * _32;
  4602. long unsigned int _33;
  4603. struct List_t * _34;
  4604. long unsigned int _35;
  4605. long unsigned int _36;
  4606. long unsigned int _37;
  4607. long unsigned int _38;
  4608. struct TCB_t * pxCurrentTCB.49_39;
  4609. long unsigned int _40;
  4610. long unsigned int _41;
  4611. long int _42;
  4612. long int xYieldPending.50_43;
  4613. volatile uint32_t * _44;
  4614. BaseType_t _96;
  4615. <bb 2> :
  4616. pxTCB_57 = 0B;
  4617. xAlreadyYielded_58 = 0;
  4618. uxSchedulerSuspended.44_1 ={v} uxSchedulerSuspended;
  4619. if (uxSchedulerSuspended.44_1 == 0)
  4620. goto <bb 3>; [INV]
  4621. else
  4622. goto <bb 6>; [INV]
  4623. <bb 3> :
  4624. __asm__ __volatile__(" mov %0, %1
  4625. msr basepri, %0
  4626. isb
  4627. dsb
  4628. " : "=r" ulNewBASEPRI_97 : "i" 16 : "memory");
  4629. <bb 4> :
  4630. <bb 5> :
  4631. goto <bb 5>; [INV]
  4632. <bb 6> :
  4633. vPortEnterCritical ();
  4634. uxSchedulerSuspended.45_2 ={v} uxSchedulerSuspended;
  4635. _3 = uxSchedulerSuspended.45_2 + 4294967295;
  4636. uxSchedulerSuspended ={v} _3;
  4637. uxSchedulerSuspended.46_4 ={v} uxSchedulerSuspended;
  4638. if (uxSchedulerSuspended.46_4 == 0)
  4639. goto <bb 7>; [INV]
  4640. else
  4641. goto <bb 27>; [INV]
  4642. <bb 7> :
  4643. uxCurrentNumberOfTasks.47_5 ={v} uxCurrentNumberOfTasks;
  4644. if (uxCurrentNumberOfTasks.47_5 != 0)
  4645. goto <bb 8>; [INV]
  4646. else
  4647. goto <bb 27>; [INV]
  4648. <bb 8> :
  4649. goto <bb 17>; [INV]
  4650. <bb 9> :
  4651. _6 = xPendingReadyList.xListEnd.pxNext;
  4652. pxTCB_72 = _6->pvOwner;
  4653. pxList_73 = pxTCB_72->xEventListItem.pvContainer;
  4654. _7 = pxTCB_72->xEventListItem.pxNext;
  4655. _8 = pxTCB_72->xEventListItem.pxPrevious;
  4656. _7->pxPrevious = _8;
  4657. _9 = pxTCB_72->xEventListItem.pxPrevious;
  4658. _10 = pxTCB_72->xEventListItem.pxNext;
  4659. _9->pxNext = _10;
  4660. _11 = pxList_73->pxIndex;
  4661. _12 = &pxTCB_72->xEventListItem;
  4662. if (_11 == _12)
  4663. goto <bb 10>; [INV]
  4664. else
  4665. goto <bb 11>; [INV]
  4666. <bb 10> :
  4667. _13 = pxTCB_72->xEventListItem.pxPrevious;
  4668. pxList_73->pxIndex = _13;
  4669. <bb 11> :
  4670. pxTCB_72->xEventListItem.pvContainer = 0B;
  4671. _14 ={v} pxList_73->uxNumberOfItems;
  4672. _15 = _14 + 4294967295;
  4673. pxList_73->uxNumberOfItems ={v} _15;
  4674. __asm__ __volatile__("" : : : "memory");
  4675. pxList_80 = pxTCB_72->xStateListItem.pvContainer;
  4676. _16 = pxTCB_72->xStateListItem.pxNext;
  4677. _17 = pxTCB_72->xStateListItem.pxPrevious;
  4678. _16->pxPrevious = _17;
  4679. _18 = pxTCB_72->xStateListItem.pxPrevious;
  4680. _19 = pxTCB_72->xStateListItem.pxNext;
  4681. _18->pxNext = _19;
  4682. _20 = pxList_80->pxIndex;
  4683. _21 = &pxTCB_72->xStateListItem;
  4684. if (_20 == _21)
  4685. goto <bb 12>; [INV]
  4686. else
  4687. goto <bb 13>; [INV]
  4688. <bb 12> :
  4689. _22 = pxTCB_72->xStateListItem.pxPrevious;
  4690. pxList_80->pxIndex = _22;
  4691. <bb 13> :
  4692. pxTCB_72->xStateListItem.pvContainer = 0B;
  4693. _23 ={v} pxList_80->uxNumberOfItems;
  4694. _24 = _23 + 4294967295;
  4695. pxList_80->uxNumberOfItems ={v} _24;
  4696. _25 = pxTCB_72->uxPriority;
  4697. uxTopReadyPriority.48_26 ={v} uxTopReadyPriority;
  4698. if (_25 > uxTopReadyPriority.48_26)
  4699. goto <bb 14>; [INV]
  4700. else
  4701. goto <bb 15>; [INV]
  4702. <bb 14> :
  4703. _27 = pxTCB_72->uxPriority;
  4704. uxTopReadyPriority ={v} _27;
  4705. <bb 15> :
  4706. _28 = pxTCB_72->uxPriority;
  4707. pxIndex_87 = pxReadyTasksLists[_28].pxIndex;
  4708. pxTCB_72->xStateListItem.pxNext = pxIndex_87;
  4709. _29 = pxIndex_87->pxPrevious;
  4710. pxTCB_72->xStateListItem.pxPrevious = _29;
  4711. _30 = pxIndex_87->pxPrevious;
  4712. _31 = &pxTCB_72->xStateListItem;
  4713. _30->pxNext = _31;
  4714. _32 = &pxTCB_72->xStateListItem;
  4715. pxIndex_87->pxPrevious = _32;
  4716. _33 = pxTCB_72->uxPriority;
  4717. _34 = &pxReadyTasksLists[_33];
  4718. pxTCB_72->xStateListItem.pvContainer = _34;
  4719. _35 = pxTCB_72->uxPriority;
  4720. _36 ={v} pxReadyTasksLists[_35].uxNumberOfItems;
  4721. _37 = _36 + 1;
  4722. pxReadyTasksLists[_35].uxNumberOfItems ={v} _37;
  4723. _38 = pxTCB_72->uxPriority;
  4724. pxCurrentTCB.49_39 ={v} pxCurrentTCB;
  4725. _40 = pxCurrentTCB.49_39->uxPriority;
  4726. if (_38 >= _40)
  4727. goto <bb 16>; [INV]
  4728. else
  4729. goto <bb 17>; [INV]
  4730. <bb 16> :
  4731. xYieldPending ={v} 1;
  4732. <bb 17> :
  4733. # pxTCB_45 = PHI <pxTCB_57(8), pxTCB_72(15), pxTCB_72(16)>
  4734. _41 ={v} xPendingReadyList.uxNumberOfItems;
  4735. if (_41 != 0)
  4736. goto <bb 9>; [INV]
  4737. else
  4738. goto <bb 18>; [INV]
  4739. <bb 18> :
  4740. if (pxTCB_45 != 0B)
  4741. goto <bb 19>; [INV]
  4742. else
  4743. goto <bb 20>; [INV]
  4744. <bb 19> :
  4745. prvResetNextTaskUnblockTime ();
  4746. <bb 20> :
  4747. xPendedCounts_63 ={v} xPendedTicks;
  4748. if (xPendedCounts_63 != 0)
  4749. goto <bb 21>; [INV]
  4750. else
  4751. goto <bb 25>; [INV]
  4752. <bb 21> :
  4753. # xPendedCounts_47 = PHI <xPendedCounts_63(20), xPendedCounts_66(23)>
  4754. _42 = xTaskIncrementTick ();
  4755. if (_42 != 0)
  4756. goto <bb 22>; [INV]
  4757. else
  4758. goto <bb 23>; [INV]
  4759. <bb 22> :
  4760. xYieldPending ={v} 1;
  4761. <bb 23> :
  4762. xPendedCounts_66 = xPendedCounts_47 + 4294967295;
  4763. if (xPendedCounts_66 != 0)
  4764. goto <bb 21>; [INV]
  4765. else
  4766. goto <bb 24>; [INV]
  4767. <bb 24> :
  4768. xPendedTicks ={v} 0;
  4769. <bb 25> :
  4770. xYieldPending.50_43 ={v} xYieldPending;
  4771. if (xYieldPending.50_43 != 0)
  4772. goto <bb 26>; [INV]
  4773. else
  4774. goto <bb 27>; [INV]
  4775. <bb 26> :
  4776. xAlreadyYielded_68 = 1;
  4777. _44 = 3758157060B;
  4778. *_44 ={v} 268435456;
  4779. __asm__ __volatile__("dsb" : : : "memory");
  4780. __asm__ __volatile__("isb");
  4781. <bb 27> :
  4782. # xAlreadyYielded_46 = PHI <xAlreadyYielded_58(6), xAlreadyYielded_58(25), xAlreadyYielded_58(7), xAlreadyYielded_68(26)>
  4783. vPortExitCritical ();
  4784. _96 = xAlreadyYielded_46;
  4785. <bb 28> :
  4786. <L33>:
  4787. return _96;
  4788. }
  4789. vTaskSuspendAll ()
  4790. {
  4791. long unsigned int uxSchedulerSuspended.43_1;
  4792. long unsigned int _2;
  4793. <bb 2> :
  4794. uxSchedulerSuspended.43_1 ={v} uxSchedulerSuspended;
  4795. _2 = uxSchedulerSuspended.43_1 + 1;
  4796. uxSchedulerSuspended ={v} _2;
  4797. __asm__ __volatile__("" : : : "memory");
  4798. return;
  4799. }
  4800. vTaskEndScheduler ()
  4801. {
  4802. uint32_t ulNewBASEPRI;
  4803. <bb 2> :
  4804. __asm__ __volatile__(" mov %0, %1
  4805. msr basepri, %0
  4806. isb
  4807. dsb
  4808. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  4809. <bb 3> :
  4810. xSchedulerRunning ={v} 0;
  4811. vPortEndScheduler ();
  4812. return;
  4813. }
  4814. vTaskStartScheduler ()
  4815. {
  4816. uint32_t ulNewBASEPRI;
  4817. uint32_t ulNewBASEPRI;
  4818. BaseType_t xReturn;
  4819. long unsigned int vol.42;
  4820. long int _1;
  4821. long unsigned int vol.42_14;
  4822. <bb 2> :
  4823. xReturn_7 = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle);
  4824. if (xReturn_7 == 1)
  4825. goto <bb 3>; [INV]
  4826. else
  4827. goto <bb 4>; [INV]
  4828. <bb 3> :
  4829. xReturn_9 = xTimerCreateTimerTask ();
  4830. <bb 4> :
  4831. # xReturn_2 = PHI <xReturn_7(2), xReturn_9(3)>
  4832. if (xReturn_2 == 1)
  4833. goto <bb 5>; [INV]
  4834. else
  4835. goto <bb 7>; [INV]
  4836. <bb 5> :
  4837. __asm__ __volatile__(" mov %0, %1
  4838. msr basepri, %0
  4839. isb
  4840. dsb
  4841. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  4842. <bb 6> :
  4843. xNextTaskUnblockTime ={v} 4294967295;
  4844. xSchedulerRunning ={v} 1;
  4845. xTickCount ={v} 0;
  4846. _1 = xPortStartScheduler ();
  4847. goto <bb 11>; [INV]
  4848. <bb 7> :
  4849. if (xReturn_2 == -1)
  4850. goto <bb 8>; [INV]
  4851. else
  4852. goto <bb 11>; [INV]
  4853. <bb 8> :
  4854. __asm__ __volatile__(" mov %0, %1
  4855. msr basepri, %0
  4856. isb
  4857. dsb
  4858. " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory");
  4859. <bb 9> :
  4860. <bb 10> :
  4861. goto <bb 10>; [INV]
  4862. <bb 11> :
  4863. vol.42_14 ={v} uxTopUsedPriority;
  4864. return;
  4865. }
  4866. xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume)
  4867. {
  4868. uint32_t ulNewMaskValue;
  4869. uint32_t D.8324;
  4870. uint32_t ulOriginalBASEPRI;
  4871. uint32_t ulNewBASEPRI;
  4872. uint32_t D.8323;
  4873. uint32_t ulNewBASEPRI;
  4874. struct ListItem_t * const pxIndex;
  4875. UBaseType_t uxSavedInterruptStatus;
  4876. struct TCB_t * const pxTCB;
  4877. BaseType_t xYieldRequired;
  4878. BaseType_t D.7744;
  4879. long int _1;
  4880. long unsigned int uxSchedulerSuspended.39_2;
  4881. long unsigned int _3;
  4882. struct TCB_t * pxCurrentTCB.40_4;
  4883. long unsigned int _5;
  4884. struct ListItem_t * _6;
  4885. long unsigned int _7;
  4886. long unsigned int uxTopReadyPriority.41_8;
  4887. long unsigned int _9;
  4888. long unsigned int _10;
  4889. struct xLIST_ITEM * _11;
  4890. struct xLIST_ITEM * _12;
  4891. struct ListItem_t * _13;
  4892. struct ListItem_t * _14;
  4893. long unsigned int _15;
  4894. struct List_t * _16;
  4895. long unsigned int _17;
  4896. long unsigned int _18;
  4897. long unsigned int _19;
  4898. struct ListItem_t * _20;
  4899. BaseType_t _45;
  4900. long unsigned int _49;
  4901. <bb 2> :
  4902. xYieldRequired_26 = 0;
  4903. pxTCB_28 = xTaskToResume_27(D);
  4904. if (xTaskToResume_27(D) == 0B)
  4905. goto <bb 3>; [INV]
  4906. else
  4907. goto <bb 6>; [INV]
  4908. <bb 3> :
  4909. __asm__ __volatile__(" mov %0, %1
  4910. msr basepri, %0
  4911. isb
  4912. dsb
  4913. " : "=r" ulNewBASEPRI_46 : "i" 16 : "memory");
  4914. <bb 4> :
  4915. <bb 5> :
  4916. goto <bb 5>; [INV]
  4917. <bb 6> :
  4918. vPortValidateInterruptPriority ();
  4919. __asm__ __volatile__(" mrs %0, basepri
  4920. mov %1, %2
  4921. msr basepri, %1
  4922. isb
  4923. dsb
  4924. " : "=r" ulOriginalBASEPRI_47, "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  4925. _49 = ulOriginalBASEPRI_47;
  4926. <bb 7> :
  4927. <L15>:
  4928. _52 = _49;
  4929. <bb 8> :
  4930. uxSavedInterruptStatus_31 = _52;
  4931. _1 = prvTaskIsTaskSuspended (pxTCB_28);
  4932. if (_1 != 0)
  4933. goto <bb 9>; [INV]
  4934. else
  4935. goto <bb 16>; [INV]
  4936. <bb 9> :
  4937. uxSchedulerSuspended.39_2 ={v} uxSchedulerSuspended;
  4938. if (uxSchedulerSuspended.39_2 == 0)
  4939. goto <bb 10>; [INV]
  4940. else
  4941. goto <bb 15>; [INV]
  4942. <bb 10> :
  4943. _3 = pxTCB_28->uxPriority;
  4944. pxCurrentTCB.40_4 ={v} pxCurrentTCB;
  4945. _5 = pxCurrentTCB.40_4->uxPriority;
  4946. if (_3 >= _5)
  4947. goto <bb 11>; [INV]
  4948. else
  4949. goto <bb 12>; [INV]
  4950. <bb 11> :
  4951. xYieldRequired_34 = 1;
  4952. xYieldPending ={v} 1;
  4953. <bb 12> :
  4954. # xYieldRequired_21 = PHI <xYieldRequired_26(10), xYieldRequired_34(11)>
  4955. _6 = &pxTCB_28->xStateListItem;
  4956. uxListRemove (_6);
  4957. _7 = pxTCB_28->uxPriority;
  4958. uxTopReadyPriority.41_8 ={v} uxTopReadyPriority;
  4959. if (_7 > uxTopReadyPriority.41_8)
  4960. goto <bb 13>; [INV]
  4961. else
  4962. goto <bb 14>; [INV]
  4963. <bb 13> :
  4964. _9 = pxTCB_28->uxPriority;
  4965. uxTopReadyPriority ={v} _9;
  4966. <bb 14> :
  4967. _10 = pxTCB_28->uxPriority;
  4968. pxIndex_38 = pxReadyTasksLists[_10].pxIndex;
  4969. pxTCB_28->xStateListItem.pxNext = pxIndex_38;
  4970. _11 = pxIndex_38->pxPrevious;
  4971. pxTCB_28->xStateListItem.pxPrevious = _11;
  4972. _12 = pxIndex_38->pxPrevious;
  4973. _13 = &pxTCB_28->xStateListItem;
  4974. _12->pxNext = _13;
  4975. _14 = &pxTCB_28->xStateListItem;
  4976. pxIndex_38->pxPrevious = _14;
  4977. _15 = pxTCB_28->uxPriority;
  4978. _16 = &pxReadyTasksLists[_15];
  4979. pxTCB_28->xStateListItem.pvContainer = _16;
  4980. _17 = pxTCB_28->uxPriority;
  4981. _18 ={v} pxReadyTasksLists[_17].uxNumberOfItems;
  4982. _19 = _18 + 1;
  4983. pxReadyTasksLists[_17].uxNumberOfItems ={v} _19;
  4984. goto <bb 16>; [INV]
  4985. <bb 15> :
  4986. _20 = &pxTCB_28->xEventListItem;
  4987. vListInsertEnd (&xPendingReadyList, _20);
  4988. <bb 16> :
  4989. # xYieldRequired_22 = PHI <xYieldRequired_26(8), xYieldRequired_26(15), xYieldRequired_21(14)>
  4990. ulNewMaskValue_50 = uxSavedInterruptStatus_31;
  4991. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_50 : "memory");
  4992. <bb 17> :
  4993. _45 = xYieldRequired_22;
  4994. <bb 18> :
  4995. <L14>:
  4996. return _45;
  4997. }
  4998. vTaskResume (struct tskTaskControlBlock * xTaskToResume)
  4999. {
  5000. uint32_t ulNewBASEPRI;
  5001. struct ListItem_t * const pxIndex;
  5002. struct TCB_t * const pxTCB;
  5003. struct TCB_t * pxCurrentTCB.36_1;
  5004. long int _2;
  5005. struct ListItem_t * _3;
  5006. long unsigned int _4;
  5007. long unsigned int uxTopReadyPriority.37_5;
  5008. long unsigned int _6;
  5009. long unsigned int _7;
  5010. struct xLIST_ITEM * _8;
  5011. struct xLIST_ITEM * _9;
  5012. struct ListItem_t * _10;
  5013. struct ListItem_t * _11;
  5014. long unsigned int _12;
  5015. struct List_t * _13;
  5016. long unsigned int _14;
  5017. long unsigned int _15;
  5018. long unsigned int _16;
  5019. long unsigned int _17;
  5020. struct TCB_t * pxCurrentTCB.38_18;
  5021. long unsigned int _19;
  5022. volatile uint32_t * _20;
  5023. <bb 2> :
  5024. pxTCB_25 = xTaskToResume_24(D);
  5025. if (xTaskToResume_24(D) == 0B)
  5026. goto <bb 3>; [INV]
  5027. else
  5028. goto <bb 6>; [INV]
  5029. <bb 3> :
  5030. __asm__ __volatile__(" mov %0, %1
  5031. msr basepri, %0
  5032. isb
  5033. dsb
  5034. " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory");
  5035. <bb 4> :
  5036. <bb 5> :
  5037. goto <bb 5>; [INV]
  5038. <bb 6> :
  5039. pxCurrentTCB.36_1 ={v} pxCurrentTCB;
  5040. if (pxTCB_25 != pxCurrentTCB.36_1)
  5041. goto <bb 7>; [INV]
  5042. else
  5043. goto <bb 14>; [INV]
  5044. <bb 7> :
  5045. if (pxTCB_25 != 0B)
  5046. goto <bb 8>; [INV]
  5047. else
  5048. goto <bb 14>; [INV]
  5049. <bb 8> :
  5050. vPortEnterCritical ();
  5051. _2 = prvTaskIsTaskSuspended (pxTCB_25);
  5052. if (_2 != 0)
  5053. goto <bb 9>; [INV]
  5054. else
  5055. goto <bb 13>; [INV]
  5056. <bb 9> :
  5057. _3 = &pxTCB_25->xStateListItem;
  5058. uxListRemove (_3);
  5059. _4 = pxTCB_25->uxPriority;
  5060. uxTopReadyPriority.37_5 ={v} uxTopReadyPriority;
  5061. if (_4 > uxTopReadyPriority.37_5)
  5062. goto <bb 10>; [INV]
  5063. else
  5064. goto <bb 11>; [INV]
  5065. <bb 10> :
  5066. _6 = pxTCB_25->uxPriority;
  5067. uxTopReadyPriority ={v} _6;
  5068. <bb 11> :
  5069. _7 = pxTCB_25->uxPriority;
  5070. pxIndex_31 = pxReadyTasksLists[_7].pxIndex;
  5071. pxTCB_25->xStateListItem.pxNext = pxIndex_31;
  5072. _8 = pxIndex_31->pxPrevious;
  5073. pxTCB_25->xStateListItem.pxPrevious = _8;
  5074. _9 = pxIndex_31->pxPrevious;
  5075. _10 = &pxTCB_25->xStateListItem;
  5076. _9->pxNext = _10;
  5077. _11 = &pxTCB_25->xStateListItem;
  5078. pxIndex_31->pxPrevious = _11;
  5079. _12 = pxTCB_25->uxPriority;
  5080. _13 = &pxReadyTasksLists[_12];
  5081. pxTCB_25->xStateListItem.pvContainer = _13;
  5082. _14 = pxTCB_25->uxPriority;
  5083. _15 ={v} pxReadyTasksLists[_14].uxNumberOfItems;
  5084. _16 = _15 + 1;
  5085. pxReadyTasksLists[_14].uxNumberOfItems ={v} _16;
  5086. _17 = pxTCB_25->uxPriority;
  5087. pxCurrentTCB.38_18 ={v} pxCurrentTCB;
  5088. _19 = pxCurrentTCB.38_18->uxPriority;
  5089. if (_17 >= _19)
  5090. goto <bb 12>; [INV]
  5091. else
  5092. goto <bb 13>; [INV]
  5093. <bb 12> :
  5094. _20 = 3758157060B;
  5095. *_20 ={v} 268435456;
  5096. __asm__ __volatile__("dsb" : : : "memory");
  5097. __asm__ __volatile__("isb");
  5098. <bb 13> :
  5099. vPortExitCritical ();
  5100. <bb 14> :
  5101. return;
  5102. }
  5103. prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask)
  5104. {
  5105. uint32_t ulNewBASEPRI;
  5106. const struct TCB_t * const pxTCB;
  5107. BaseType_t xReturn;
  5108. BaseType_t D.7714;
  5109. struct xLIST * _1;
  5110. struct xLIST * _2;
  5111. struct xLIST * _3;
  5112. BaseType_t _10;
  5113. <bb 2> :
  5114. xReturn_5 = 0;
  5115. pxTCB_7 = xTask_6(D);
  5116. if (xTask_6(D) == 0B)
  5117. goto <bb 3>; [INV]
  5118. else
  5119. goto <bb 6>; [INV]
  5120. <bb 3> :
  5121. __asm__ __volatile__(" mov %0, %1
  5122. msr basepri, %0
  5123. isb
  5124. dsb
  5125. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  5126. <bb 4> :
  5127. <bb 5> :
  5128. goto <bb 5>; [INV]
  5129. <bb 6> :
  5130. _1 = pxTCB_7->xStateListItem.pvContainer;
  5131. if (_1 == &xSuspendedTaskList)
  5132. goto <bb 7>; [INV]
  5133. else
  5134. goto <bb 10>; [INV]
  5135. <bb 7> :
  5136. _2 = pxTCB_7->xEventListItem.pvContainer;
  5137. if (_2 != &xPendingReadyList)
  5138. goto <bb 8>; [INV]
  5139. else
  5140. goto <bb 10>; [INV]
  5141. <bb 8> :
  5142. _3 = pxTCB_7->xEventListItem.pvContainer;
  5143. if (_3 == 0B)
  5144. goto <bb 9>; [INV]
  5145. else
  5146. goto <bb 10>; [INV]
  5147. <bb 9> :
  5148. xReturn_9 = 1;
  5149. <bb 10> :
  5150. # xReturn_4 = PHI <xReturn_5(6), xReturn_9(9), xReturn_5(7), xReturn_5(8)>
  5151. _10 = xReturn_4;
  5152. <bb 11> :
  5153. <L12>:
  5154. return _10;
  5155. }
  5156. vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend)
  5157. {
  5158. uint32_t ulNewBASEPRI;
  5159. BaseType_t x;
  5160. struct TCB_t * pxTCB;
  5161. struct TCB_t * iftmp.30;
  5162. struct ListItem_t * _1;
  5163. long unsigned int _2;
  5164. struct xLIST * _3;
  5165. struct ListItem_t * _4;
  5166. struct ListItem_t * _5;
  5167. unsigned char _6;
  5168. long int xSchedulerRunning.31_7;
  5169. struct TCB_t * pxCurrentTCB.32_8;
  5170. long int xSchedulerRunning.33_9;
  5171. long unsigned int uxSchedulerSuspended.34_10;
  5172. volatile uint32_t * _11;
  5173. long unsigned int _12;
  5174. long unsigned int uxCurrentNumberOfTasks.35_13;
  5175. struct TCB_t * iftmp.30_15;
  5176. struct TCB_t * iftmp.30_24;
  5177. struct TCB_t * iftmp.30_25;
  5178. <bb 2> :
  5179. vPortEnterCritical ();
  5180. if (xTaskToSuspend_23(D) == 0B)
  5181. goto <bb 3>; [INV]
  5182. else
  5183. goto <bb 4>; [INV]
  5184. <bb 3> :
  5185. iftmp.30_25 ={v} pxCurrentTCB;
  5186. goto <bb 5>; [INV]
  5187. <bb 4> :
  5188. iftmp.30_24 = xTaskToSuspend_23(D);
  5189. <bb 5> :
  5190. # iftmp.30_15 = PHI <iftmp.30_25(3), iftmp.30_24(4)>
  5191. pxTCB_26 = iftmp.30_15;
  5192. _1 = &pxTCB_26->xStateListItem;
  5193. _2 = uxListRemove (_1);
  5194. <bb 6> :
  5195. _3 = pxTCB_26->xEventListItem.pvContainer;
  5196. if (_3 != 0B)
  5197. goto <bb 7>; [INV]
  5198. else
  5199. goto <bb 8>; [INV]
  5200. <bb 7> :
  5201. _4 = &pxTCB_26->xEventListItem;
  5202. uxListRemove (_4);
  5203. <bb 8> :
  5204. _5 = &pxTCB_26->xStateListItem;
  5205. vListInsertEnd (&xSuspendedTaskList, _5);
  5206. x_30 = 0;
  5207. goto <bb 12>; [INV]
  5208. <bb 9> :
  5209. _6 ={v} pxTCB_26->ucNotifyState[x_14];
  5210. if (_6 == 1)
  5211. goto <bb 10>; [INV]
  5212. else
  5213. goto <bb 11>; [INV]
  5214. <bb 10> :
  5215. pxTCB_26->ucNotifyState[x_14] ={v} 0;
  5216. <bb 11> :
  5217. x_41 = x_14 + 1;
  5218. <bb 12> :
  5219. # x_14 = PHI <x_30(8), x_41(11)>
  5220. if (x_14 <= 0)
  5221. goto <bb 9>; [INV]
  5222. else
  5223. goto <bb 13>; [INV]
  5224. <bb 13> :
  5225. vPortExitCritical ();
  5226. xSchedulerRunning.31_7 ={v} xSchedulerRunning;
  5227. if (xSchedulerRunning.31_7 != 0)
  5228. goto <bb 14>; [INV]
  5229. else
  5230. goto <bb 15>; [INV]
  5231. <bb 14> :
  5232. vPortEnterCritical ();
  5233. prvResetNextTaskUnblockTime ();
  5234. vPortExitCritical ();
  5235. <bb 15> :
  5236. pxCurrentTCB.32_8 ={v} pxCurrentTCB;
  5237. if (pxTCB_26 == pxCurrentTCB.32_8)
  5238. goto <bb 16>; [INV]
  5239. else
  5240. goto <bb 25>; [INV]
  5241. <bb 16> :
  5242. xSchedulerRunning.33_9 ={v} xSchedulerRunning;
  5243. if (xSchedulerRunning.33_9 != 0)
  5244. goto <bb 17>; [INV]
  5245. else
  5246. goto <bb 22>; [INV]
  5247. <bb 17> :
  5248. uxSchedulerSuspended.34_10 ={v} uxSchedulerSuspended;
  5249. if (uxSchedulerSuspended.34_10 != 0)
  5250. goto <bb 18>; [INV]
  5251. else
  5252. goto <bb 21>; [INV]
  5253. <bb 18> :
  5254. __asm__ __volatile__(" mov %0, %1
  5255. msr basepri, %0
  5256. isb
  5257. dsb
  5258. " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory");
  5259. <bb 19> :
  5260. <bb 20> :
  5261. goto <bb 20>; [INV]
  5262. <bb 21> :
  5263. _11 = 3758157060B;
  5264. *_11 ={v} 268435456;
  5265. __asm__ __volatile__("dsb" : : : "memory");
  5266. __asm__ __volatile__("isb");
  5267. goto <bb 25>; [INV]
  5268. <bb 22> :
  5269. _12 ={v} xSuspendedTaskList.uxNumberOfItems;
  5270. uxCurrentNumberOfTasks.35_13 ={v} uxCurrentNumberOfTasks;
  5271. if (_12 == uxCurrentNumberOfTasks.35_13)
  5272. goto <bb 23>; [INV]
  5273. else
  5274. goto <bb 24>; [INV]
  5275. <bb 23> :
  5276. pxCurrentTCB ={v} 0B;
  5277. goto <bb 25>; [INV]
  5278. <bb 24> :
  5279. vTaskSwitchContext ();
  5280. <bb 25> :
  5281. return;
  5282. }
  5283. vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority)
  5284. {
  5285. uint32_t ulNewBASEPRI;
  5286. struct ListItem_t * const pxIndex;
  5287. BaseType_t xYieldRequired;
  5288. UBaseType_t uxPriorityUsedOnEntry;
  5289. UBaseType_t uxCurrentBasePriority;
  5290. struct TCB_t * pxTCB;
  5291. struct TCB_t * iftmp.25;
  5292. struct TCB_t * pxCurrentTCB.26_1;
  5293. struct TCB_t * pxCurrentTCB.27_2;
  5294. long unsigned int _3;
  5295. struct TCB_t * pxCurrentTCB.28_4;
  5296. long unsigned int _5;
  5297. long unsigned int _6;
  5298. long unsigned int _7;
  5299. signed int _8;
  5300. long unsigned int _9;
  5301. struct xLIST * _10;
  5302. struct List_t * _11;
  5303. struct ListItem_t * _12;
  5304. long unsigned int _13;
  5305. long unsigned int _14;
  5306. long unsigned int uxTopReadyPriority.29_15;
  5307. long unsigned int _16;
  5308. long unsigned int _17;
  5309. struct xLIST_ITEM * _18;
  5310. struct xLIST_ITEM * _19;
  5311. struct ListItem_t * _20;
  5312. struct ListItem_t * _21;
  5313. long unsigned int _22;
  5314. struct List_t * _23;
  5315. long unsigned int _24;
  5316. long unsigned int _25;
  5317. long unsigned int _26;
  5318. volatile uint32_t * _27;
  5319. struct TCB_t * iftmp.25_30;
  5320. struct TCB_t * iftmp.25_42;
  5321. struct TCB_t * iftmp.25_43;
  5322. <bb 2> :
  5323. xYieldRequired_36 = 0;
  5324. if (uxNewPriority_37(D) > 4)
  5325. goto <bb 3>; [INV]
  5326. else
  5327. goto <bb 6>; [INV]
  5328. <bb 3> :
  5329. __asm__ __volatile__(" mov %0, %1
  5330. msr basepri, %0
  5331. isb
  5332. dsb
  5333. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  5334. <bb 4> :
  5335. <bb 5> :
  5336. goto <bb 5>; [INV]
  5337. <bb 6> :
  5338. if (uxNewPriority_37(D) > 4)
  5339. goto <bb 7>; [INV]
  5340. else
  5341. goto <bb 8>; [INV]
  5342. <bb 7> :
  5343. uxNewPriority_38 = 4;
  5344. <bb 8> :
  5345. # uxNewPriority_28 = PHI <uxNewPriority_37(D)(6), uxNewPriority_38(7)>
  5346. vPortEnterCritical ();
  5347. if (xTask_41(D) == 0B)
  5348. goto <bb 9>; [INV]
  5349. else
  5350. goto <bb 10>; [INV]
  5351. <bb 9> :
  5352. iftmp.25_43 ={v} pxCurrentTCB;
  5353. goto <bb 11>; [INV]
  5354. <bb 10> :
  5355. iftmp.25_42 = xTask_41(D);
  5356. <bb 11> :
  5357. # iftmp.25_30 = PHI <iftmp.25_43(9), iftmp.25_42(10)>
  5358. pxTCB_44 = iftmp.25_30;
  5359. uxCurrentBasePriority_45 = pxTCB_44->uxBasePriority;
  5360. if (uxCurrentBasePriority_45 != uxNewPriority_28)
  5361. goto <bb 12>; [INV]
  5362. else
  5363. goto <bb 29>; [INV]
  5364. <bb 12> :
  5365. if (uxNewPriority_28 > uxCurrentBasePriority_45)
  5366. goto <bb 13>; [INV]
  5367. else
  5368. goto <bb 16>; [INV]
  5369. <bb 13> :
  5370. pxCurrentTCB.26_1 ={v} pxCurrentTCB;
  5371. if (pxTCB_44 != pxCurrentTCB.26_1)
  5372. goto <bb 14>; [INV]
  5373. else
  5374. goto <bb 18>; [INV]
  5375. <bb 14> :
  5376. pxCurrentTCB.27_2 ={v} pxCurrentTCB;
  5377. _3 = pxCurrentTCB.27_2->uxPriority;
  5378. if (uxNewPriority_28 >= _3)
  5379. goto <bb 15>; [INV]
  5380. else
  5381. goto <bb 18>; [INV]
  5382. <bb 15> :
  5383. xYieldRequired_47 = 1;
  5384. goto <bb 18>; [INV]
  5385. <bb 16> :
  5386. pxCurrentTCB.28_4 ={v} pxCurrentTCB;
  5387. if (pxTCB_44 == pxCurrentTCB.28_4)
  5388. goto <bb 17>; [INV]
  5389. else
  5390. goto <bb 18>; [INV]
  5391. <bb 17> :
  5392. xYieldRequired_46 = 1;
  5393. <bb 18> :
  5394. # xYieldRequired_29 = PHI <xYieldRequired_47(15), xYieldRequired_36(16), xYieldRequired_46(17), xYieldRequired_36(13), xYieldRequired_36(14)>
  5395. uxPriorityUsedOnEntry_48 = pxTCB_44->uxPriority;
  5396. _5 = pxTCB_44->uxBasePriority;
  5397. _6 = pxTCB_44->uxPriority;
  5398. if (_5 == _6)
  5399. goto <bb 19>; [INV]
  5400. else
  5401. goto <bb 20>; [INV]
  5402. <bb 19> :
  5403. pxTCB_44->uxPriority = uxNewPriority_28;
  5404. <bb 20> :
  5405. pxTCB_44->uxBasePriority = uxNewPriority_28;
  5406. _7 = pxTCB_44->xEventListItem.xItemValue;
  5407. _8 = (signed int) _7;
  5408. if (_8 >= 0)
  5409. goto <bb 21>; [INV]
  5410. else
  5411. goto <bb 22>; [INV]
  5412. <bb 21> :
  5413. _9 = 5 - uxNewPriority_28;
  5414. pxTCB_44->xEventListItem.xItemValue = _9;
  5415. <bb 22> :
  5416. _10 = pxTCB_44->xStateListItem.pvContainer;
  5417. _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry_48];
  5418. if (_10 == _11)
  5419. goto <bb 23>; [INV]
  5420. else
  5421. goto <bb 27>; [INV]
  5422. <bb 23> :
  5423. _12 = &pxTCB_44->xStateListItem;
  5424. _13 = uxListRemove (_12);
  5425. <bb 24> :
  5426. _14 = pxTCB_44->uxPriority;
  5427. uxTopReadyPriority.29_15 ={v} uxTopReadyPriority;
  5428. if (_14 > uxTopReadyPriority.29_15)
  5429. goto <bb 25>; [INV]
  5430. else
  5431. goto <bb 26>; [INV]
  5432. <bb 25> :
  5433. _16 = pxTCB_44->uxPriority;
  5434. uxTopReadyPriority ={v} _16;
  5435. <bb 26> :
  5436. _17 = pxTCB_44->uxPriority;
  5437. pxIndex_54 = pxReadyTasksLists[_17].pxIndex;
  5438. pxTCB_44->xStateListItem.pxNext = pxIndex_54;
  5439. _18 = pxIndex_54->pxPrevious;
  5440. pxTCB_44->xStateListItem.pxPrevious = _18;
  5441. _19 = pxIndex_54->pxPrevious;
  5442. _20 = &pxTCB_44->xStateListItem;
  5443. _19->pxNext = _20;
  5444. _21 = &pxTCB_44->xStateListItem;
  5445. pxIndex_54->pxPrevious = _21;
  5446. _22 = pxTCB_44->uxPriority;
  5447. _23 = &pxReadyTasksLists[_22];
  5448. pxTCB_44->xStateListItem.pvContainer = _23;
  5449. _24 = pxTCB_44->uxPriority;
  5450. _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems;
  5451. _26 = _25 + 1;
  5452. pxReadyTasksLists[_24].uxNumberOfItems ={v} _26;
  5453. <bb 27> :
  5454. if (xYieldRequired_29 != 0)
  5455. goto <bb 28>; [INV]
  5456. else
  5457. goto <bb 29>; [INV]
  5458. <bb 28> :
  5459. _27 = 3758157060B;
  5460. *_27 ={v} 268435456;
  5461. __asm__ __volatile__("dsb" : : : "memory");
  5462. __asm__ __volatile__("isb");
  5463. <bb 29> :
  5464. vPortExitCritical ();
  5465. return;
  5466. }
  5467. uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask)
  5468. {
  5469. uint32_t ulNewMaskValue;
  5470. uint32_t D.8314;
  5471. uint32_t ulOriginalBASEPRI;
  5472. uint32_t ulNewBASEPRI;
  5473. uint32_t D.8313;
  5474. UBaseType_t uxSavedInterruptState;
  5475. UBaseType_t uxReturn;
  5476. const struct TCB_t * pxTCB;
  5477. UBaseType_t D.7633;
  5478. const struct TCB_t * iftmp.24;
  5479. const struct TCB_t * iftmp.24_1;
  5480. const struct TCB_t * iftmp.24_6;
  5481. const struct TCB_t * iftmp.24_7;
  5482. UBaseType_t _10;
  5483. long unsigned int _13;
  5484. <bb 2> :
  5485. vPortValidateInterruptPriority ();
  5486. __asm__ __volatile__(" mrs %0, basepri
  5487. mov %1, %2
  5488. msr basepri, %1
  5489. isb
  5490. dsb
  5491. " : "=r" ulOriginalBASEPRI_11, "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  5492. _13 = ulOriginalBASEPRI_11;
  5493. <bb 3> :
  5494. <L4>:
  5495. _16 = _13;
  5496. <bb 4> :
  5497. uxSavedInterruptState_4 = _16;
  5498. if (xTask_5(D) == 0B)
  5499. goto <bb 5>; [INV]
  5500. else
  5501. goto <bb 6>; [INV]
  5502. <bb 5> :
  5503. iftmp.24_7 ={v} pxCurrentTCB;
  5504. goto <bb 7>; [INV]
  5505. <bb 6> :
  5506. iftmp.24_6 = xTask_5(D);
  5507. <bb 7> :
  5508. # iftmp.24_1 = PHI <iftmp.24_7(5), iftmp.24_6(6)>
  5509. pxTCB_8 = iftmp.24_1;
  5510. uxReturn_9 = pxTCB_8->uxPriority;
  5511. ulNewMaskValue_14 = uxSavedInterruptState_4;
  5512. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_14 : "memory");
  5513. <bb 8> :
  5514. _10 = uxReturn_9;
  5515. <bb 9> :
  5516. <L3>:
  5517. return _10;
  5518. }
  5519. uxTaskPriorityGet (struct tskTaskControlBlock * const xTask)
  5520. {
  5521. UBaseType_t uxReturn;
  5522. const struct TCB_t * pxTCB;
  5523. UBaseType_t D.7627;
  5524. const struct TCB_t * iftmp.23;
  5525. const struct TCB_t * iftmp.23_1;
  5526. const struct TCB_t * iftmp.23_5;
  5527. const struct TCB_t * iftmp.23_6;
  5528. UBaseType_t _10;
  5529. <bb 2> :
  5530. vPortEnterCritical ();
  5531. if (xTask_4(D) == 0B)
  5532. goto <bb 3>; [INV]
  5533. else
  5534. goto <bb 4>; [INV]
  5535. <bb 3> :
  5536. iftmp.23_6 ={v} pxCurrentTCB;
  5537. goto <bb 5>; [INV]
  5538. <bb 4> :
  5539. iftmp.23_5 = xTask_4(D);
  5540. <bb 5> :
  5541. # iftmp.23_1 = PHI <iftmp.23_6(3), iftmp.23_5(4)>
  5542. pxTCB_7 = iftmp.23_1;
  5543. uxReturn_8 = pxTCB_7->uxPriority;
  5544. vPortExitCritical ();
  5545. _10 = uxReturn_8;
  5546. <bb 6> :
  5547. <L3>:
  5548. return _10;
  5549. }
  5550. eTaskGetState (struct tskTaskControlBlock * xTask)
  5551. {
  5552. uint32_t ulNewBASEPRI;
  5553. BaseType_t x;
  5554. const struct TCB_t * const pxTCB;
  5555. const struct List_t * pxOverflowedDelayedList;
  5556. const struct List_t * pxDelayedList;
  5557. const struct List_t * pxStateList;
  5558. eTaskState eReturn;
  5559. eTaskState D.7621;
  5560. struct TCB_t * pxCurrentTCB.22_1;
  5561. struct xLIST * _2;
  5562. unsigned char _3;
  5563. eTaskState _25;
  5564. <bb 2> :
  5565. pxTCB_9 = xTask_8(D);
  5566. if (pxTCB_9 == 0B)
  5567. goto <bb 3>; [INV]
  5568. else
  5569. goto <bb 6>; [INV]
  5570. <bb 3> :
  5571. __asm__ __volatile__(" mov %0, %1
  5572. msr basepri, %0
  5573. isb
  5574. dsb
  5575. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  5576. <bb 4> :
  5577. <bb 5> :
  5578. goto <bb 5>; [INV]
  5579. <bb 6> :
  5580. pxCurrentTCB.22_1 ={v} pxCurrentTCB;
  5581. if (pxTCB_9 == pxCurrentTCB.22_1)
  5582. goto <bb 7>; [INV]
  5583. else
  5584. goto <bb 8>; [INV]
  5585. <bb 7> :
  5586. eReturn_24 = 0;
  5587. goto <bb 24>; [INV]
  5588. <bb 8> :
  5589. vPortEnterCritical ();
  5590. pxStateList_12 = pxTCB_9->xStateListItem.pvContainer;
  5591. pxDelayedList_13 ={v} pxDelayedTaskList;
  5592. pxOverflowedDelayedList_14 ={v} pxOverflowDelayedTaskList;
  5593. vPortExitCritical ();
  5594. if (pxStateList_12 == pxDelayedList_13)
  5595. goto <bb 10>; [INV]
  5596. else
  5597. goto <bb 9>; [INV]
  5598. <bb 9> :
  5599. if (pxStateList_12 == pxOverflowedDelayedList_14)
  5600. goto <bb 10>; [INV]
  5601. else
  5602. goto <bb 11>; [INV]
  5603. <bb 10> :
  5604. eReturn_23 = 2;
  5605. goto <bb 24>; [INV]
  5606. <bb 11> :
  5607. if (pxStateList_12 == &xSuspendedTaskList)
  5608. goto <bb 12>; [INV]
  5609. else
  5610. goto <bb 20>; [INV]
  5611. <bb 12> :
  5612. _2 = pxTCB_9->xEventListItem.pvContainer;
  5613. if (_2 == 0B)
  5614. goto <bb 13>; [INV]
  5615. else
  5616. goto <bb 19>; [INV]
  5617. <bb 13> :
  5618. eReturn_19 = 3;
  5619. x_20 = 0;
  5620. goto <bb 17>; [INV]
  5621. <bb 14> :
  5622. _3 ={v} pxTCB_9->ucNotifyState[x_6];
  5623. if (_3 == 1)
  5624. goto <bb 15>; [INV]
  5625. else
  5626. goto <bb 16>; [INV]
  5627. <bb 15> :
  5628. eReturn_22 = 2;
  5629. goto <bb 18>; [INV]
  5630. <bb 16> :
  5631. x_21 = x_6 + 1;
  5632. <bb 17> :
  5633. # x_6 = PHI <x_20(13), x_21(16)>
  5634. if (x_6 <= 0)
  5635. goto <bb 14>; [INV]
  5636. else
  5637. goto <bb 18>; [INV]
  5638. <bb 18> :
  5639. # eReturn_4 = PHI <eReturn_22(15), eReturn_19(17)>
  5640. goto <bb 24>; [INV]
  5641. <bb 19> :
  5642. eReturn_18 = 2;
  5643. goto <bb 24>; [INV]
  5644. <bb 20> :
  5645. if (pxStateList_12 == &xTasksWaitingTermination)
  5646. goto <bb 22>; [INV]
  5647. else
  5648. goto <bb 21>; [INV]
  5649. <bb 21> :
  5650. if (pxStateList_12 == 0B)
  5651. goto <bb 22>; [INV]
  5652. else
  5653. goto <bb 23>; [INV]
  5654. <bb 22> :
  5655. eReturn_17 = 4;
  5656. goto <bb 24>; [INV]
  5657. <bb 23> :
  5658. eReturn_16 = 1;
  5659. <bb 24> :
  5660. # eReturn_5 = PHI <eReturn_24(7), eReturn_23(10), eReturn_18(19), eReturn_17(22), eReturn_16(23), eReturn_4(18)>
  5661. _25 = eReturn_5;
  5662. <bb 25> :
  5663. <L25>:
  5664. return _25;
  5665. }
  5666. vTaskDelay (const TickType_t xTicksToDelay)
  5667. {
  5668. uint32_t ulNewBASEPRI;
  5669. BaseType_t xAlreadyYielded;
  5670. long unsigned int uxSchedulerSuspended.21_1;
  5671. volatile uint32_t * _2;
  5672. <bb 2> :
  5673. xAlreadyYielded_6 = 0;
  5674. if (xTicksToDelay_7(D) != 0)
  5675. goto <bb 3>; [INV]
  5676. else
  5677. goto <bb 8>; [INV]
  5678. <bb 3> :
  5679. uxSchedulerSuspended.21_1 ={v} uxSchedulerSuspended;
  5680. if (uxSchedulerSuspended.21_1 != 0)
  5681. goto <bb 4>; [INV]
  5682. else
  5683. goto <bb 7>; [INV]
  5684. <bb 4> :
  5685. __asm__ __volatile__(" mov %0, %1
  5686. msr basepri, %0
  5687. isb
  5688. dsb
  5689. " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory");
  5690. <bb 5> :
  5691. <bb 6> :
  5692. goto <bb 6>; [INV]
  5693. <bb 7> :
  5694. vTaskSuspendAll ();
  5695. prvAddCurrentTaskToDelayedList (xTicksToDelay_7(D), 0);
  5696. xAlreadyYielded_12 = xTaskResumeAll ();
  5697. <bb 8> :
  5698. # xAlreadyYielded_3 = PHI <xAlreadyYielded_6(2), xAlreadyYielded_12(7)>
  5699. if (xAlreadyYielded_3 == 0)
  5700. goto <bb 9>; [INV]
  5701. else
  5702. goto <bb 10>; [INV]
  5703. <bb 9> :
  5704. _2 = 3758157060B;
  5705. *_2 ={v} 268435456;
  5706. __asm__ __volatile__("dsb" : : : "memory");
  5707. __asm__ __volatile__("isb");
  5708. <bb 10> :
  5709. return;
  5710. }
  5711. xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement)
  5712. {
  5713. uint32_t ulNewBASEPRI;
  5714. uint32_t ulNewBASEPRI;
  5715. uint32_t ulNewBASEPRI;
  5716. const TickType_t xConstTickCount;
  5717. BaseType_t xShouldDelay;
  5718. BaseType_t xAlreadyYielded;
  5719. TickType_t xTimeToWake;
  5720. BaseType_t D.7590;
  5721. long unsigned int uxSchedulerSuspended.20_1;
  5722. long unsigned int _2;
  5723. long unsigned int _3;
  5724. long unsigned int _4;
  5725. long unsigned int _5;
  5726. long unsigned int _6;
  5727. volatile uint32_t * _7;
  5728. BaseType_t _27;
  5729. <bb 2> :
  5730. xShouldDelay_11 = 0;
  5731. if (pxPreviousWakeTime_12(D) == 0B)
  5732. goto <bb 3>; [INV]
  5733. else
  5734. goto <bb 6>; [INV]
  5735. <bb 3> :
  5736. __asm__ __volatile__(" mov %0, %1
  5737. msr basepri, %0
  5738. isb
  5739. dsb
  5740. " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  5741. <bb 4> :
  5742. <bb 5> :
  5743. goto <bb 5>; [INV]
  5744. <bb 6> :
  5745. if (xTimeIncrement_13(D) == 0)
  5746. goto <bb 7>; [INV]
  5747. else
  5748. goto <bb 10>; [INV]
  5749. <bb 7> :
  5750. __asm__ __volatile__(" mov %0, %1
  5751. msr basepri, %0
  5752. isb
  5753. dsb
  5754. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  5755. <bb 8> :
  5756. <bb 9> :
  5757. goto <bb 9>; [INV]
  5758. <bb 10> :
  5759. uxSchedulerSuspended.20_1 ={v} uxSchedulerSuspended;
  5760. if (uxSchedulerSuspended.20_1 != 0)
  5761. goto <bb 11>; [INV]
  5762. else
  5763. goto <bb 14>; [INV]
  5764. <bb 11> :
  5765. __asm__ __volatile__(" mov %0, %1
  5766. msr basepri, %0
  5767. isb
  5768. dsb
  5769. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  5770. <bb 12> :
  5771. <bb 13> :
  5772. goto <bb 13>; [INV]
  5773. <bb 14> :
  5774. vTaskSuspendAll ();
  5775. xConstTickCount_16 ={v} xTickCount;
  5776. _2 = *pxPreviousWakeTime_12(D);
  5777. xTimeToWake_17 = xTimeIncrement_13(D) + _2;
  5778. _3 = *pxPreviousWakeTime_12(D);
  5779. if (xConstTickCount_16 < _3)
  5780. goto <bb 15>; [INV]
  5781. else
  5782. goto <bb 18>; [INV]
  5783. <bb 15> :
  5784. _4 = *pxPreviousWakeTime_12(D);
  5785. if (xTimeToWake_17 < _4)
  5786. goto <bb 16>; [INV]
  5787. else
  5788. goto <bb 21>; [INV]
  5789. <bb 16> :
  5790. if (xTimeToWake_17 > xConstTickCount_16)
  5791. goto <bb 17>; [INV]
  5792. else
  5793. goto <bb 21>; [INV]
  5794. <bb 17> :
  5795. xShouldDelay_19 = 1;
  5796. goto <bb 21>; [INV]
  5797. <bb 18> :
  5798. _5 = *pxPreviousWakeTime_12(D);
  5799. if (xTimeToWake_17 < _5)
  5800. goto <bb 20>; [INV]
  5801. else
  5802. goto <bb 19>; [INV]
  5803. <bb 19> :
  5804. if (xTimeToWake_17 > xConstTickCount_16)
  5805. goto <bb 20>; [INV]
  5806. else
  5807. goto <bb 21>; [INV]
  5808. <bb 20> :
  5809. xShouldDelay_18 = 1;
  5810. <bb 21> :
  5811. # xShouldDelay_8 = PHI <xShouldDelay_11(16), xShouldDelay_11(19), xShouldDelay_18(20), xShouldDelay_11(15), xShouldDelay_19(17)>
  5812. *pxPreviousWakeTime_12(D) = xTimeToWake_17;
  5813. if (xShouldDelay_8 != 0)
  5814. goto <bb 22>; [INV]
  5815. else
  5816. goto <bb 23>; [INV]
  5817. <bb 22> :
  5818. _6 = xTimeToWake_17 - xConstTickCount_16;
  5819. prvAddCurrentTaskToDelayedList (_6, 0);
  5820. <bb 23> :
  5821. xAlreadyYielded_23 = xTaskResumeAll ();
  5822. if (xAlreadyYielded_23 == 0)
  5823. goto <bb 24>; [INV]
  5824. else
  5825. goto <bb 25>; [INV]
  5826. <bb 24> :
  5827. _7 = 3758157060B;
  5828. *_7 ={v} 268435456;
  5829. __asm__ __volatile__("dsb" : : : "memory");
  5830. __asm__ __volatile__("isb");
  5831. <bb 25> :
  5832. _27 = xShouldDelay_8;
  5833. <bb 26> :
  5834. <L26>:
  5835. return _27;
  5836. }
  5837. vTaskDelete (struct tskTaskControlBlock * xTaskToDelete)
  5838. {
  5839. uint32_t ulNewBASEPRI;
  5840. struct TCB_t * pxTCB;
  5841. struct TCB_t * iftmp.12;
  5842. struct ListItem_t * _1;
  5843. long unsigned int _2;
  5844. struct xLIST * _3;
  5845. struct ListItem_t * _4;
  5846. long unsigned int uxTaskNumber.13_5;
  5847. long unsigned int _6;
  5848. struct TCB_t * pxCurrentTCB.14_7;
  5849. struct ListItem_t * _8;
  5850. long unsigned int uxDeletedTasksWaitingCleanUp.15_9;
  5851. long unsigned int _10;
  5852. long unsigned int uxCurrentNumberOfTasks.16_11;
  5853. long unsigned int _12;
  5854. long int xSchedulerRunning.17_13;
  5855. struct TCB_t * pxCurrentTCB.18_14;
  5856. long unsigned int uxSchedulerSuspended.19_15;
  5857. volatile uint32_t * _16;
  5858. struct TCB_t * iftmp.12_17;
  5859. struct TCB_t * iftmp.12_24;
  5860. struct TCB_t * iftmp.12_25;
  5861. <bb 2> :
  5862. vPortEnterCritical ();
  5863. if (xTaskToDelete_23(D) == 0B)
  5864. goto <bb 3>; [INV]
  5865. else
  5866. goto <bb 4>; [INV]
  5867. <bb 3> :
  5868. iftmp.12_25 ={v} pxCurrentTCB;
  5869. goto <bb 5>; [INV]
  5870. <bb 4> :
  5871. iftmp.12_24 = xTaskToDelete_23(D);
  5872. <bb 5> :
  5873. # iftmp.12_17 = PHI <iftmp.12_25(3), iftmp.12_24(4)>
  5874. pxTCB_26 = iftmp.12_17;
  5875. _1 = &pxTCB_26->xStateListItem;
  5876. _2 = uxListRemove (_1);
  5877. <bb 6> :
  5878. _3 = pxTCB_26->xEventListItem.pvContainer;
  5879. if (_3 != 0B)
  5880. goto <bb 7>; [INV]
  5881. else
  5882. goto <bb 8>; [INV]
  5883. <bb 7> :
  5884. _4 = &pxTCB_26->xEventListItem;
  5885. uxListRemove (_4);
  5886. <bb 8> :
  5887. uxTaskNumber.13_5 = uxTaskNumber;
  5888. _6 = uxTaskNumber.13_5 + 1;
  5889. uxTaskNumber = _6;
  5890. pxCurrentTCB.14_7 ={v} pxCurrentTCB;
  5891. if (pxTCB_26 == pxCurrentTCB.14_7)
  5892. goto <bb 9>; [INV]
  5893. else
  5894. goto <bb 10>; [INV]
  5895. <bb 9> :
  5896. _8 = &pxTCB_26->xStateListItem;
  5897. vListInsertEnd (&xTasksWaitingTermination, _8);
  5898. uxDeletedTasksWaitingCleanUp.15_9 ={v} uxDeletedTasksWaitingCleanUp;
  5899. _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1;
  5900. uxDeletedTasksWaitingCleanUp ={v} _10;
  5901. goto <bb 11>; [INV]
  5902. <bb 10> :
  5903. uxCurrentNumberOfTasks.16_11 ={v} uxCurrentNumberOfTasks;
  5904. _12 = uxCurrentNumberOfTasks.16_11 + 4294967295;
  5905. uxCurrentNumberOfTasks ={v} _12;
  5906. prvDeleteTCB (pxTCB_26);
  5907. prvResetNextTaskUnblockTime ();
  5908. <bb 11> :
  5909. vPortExitCritical ();
  5910. xSchedulerRunning.17_13 ={v} xSchedulerRunning;
  5911. if (xSchedulerRunning.17_13 != 0)
  5912. goto <bb 12>; [INV]
  5913. else
  5914. goto <bb 18>; [INV]
  5915. <bb 12> :
  5916. pxCurrentTCB.18_14 ={v} pxCurrentTCB;
  5917. if (pxTCB_26 == pxCurrentTCB.18_14)
  5918. goto <bb 13>; [INV]
  5919. else
  5920. goto <bb 18>; [INV]
  5921. <bb 13> :
  5922. uxSchedulerSuspended.19_15 ={v} uxSchedulerSuspended;
  5923. if (uxSchedulerSuspended.19_15 != 0)
  5924. goto <bb 14>; [INV]
  5925. else
  5926. goto <bb 17>; [INV]
  5927. <bb 14> :
  5928. __asm__ __volatile__(" mov %0, %1
  5929. msr basepri, %0
  5930. isb
  5931. dsb
  5932. " : "=r" ulNewBASEPRI_39 : "i" 16 : "memory");
  5933. <bb 15> :
  5934. <bb 16> :
  5935. goto <bb 16>; [INV]
  5936. <bb 17> :
  5937. _16 = 3758157060B;
  5938. *_16 ={v} 268435456;
  5939. __asm__ __volatile__("dsb" : : : "memory");
  5940. __asm__ __volatile__("isb");
  5941. <bb 18> :
  5942. return;
  5943. }
  5944. prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB)
  5945. {
  5946. struct ListItem_t * const pxIndex;
  5947. long unsigned int uxCurrentNumberOfTasks.2_1;
  5948. long unsigned int _2;
  5949. struct TCB_t * pxCurrentTCB.3_3;
  5950. long unsigned int uxCurrentNumberOfTasks.4_4;
  5951. long int xSchedulerRunning.5_5;
  5952. struct TCB_t * pxCurrentTCB.6_6;
  5953. long unsigned int _7;
  5954. long unsigned int _8;
  5955. long unsigned int uxTaskNumber.7_9;
  5956. long unsigned int _10;
  5957. long unsigned int uxTaskNumber.8_11;
  5958. long unsigned int _12;
  5959. long unsigned int uxTopReadyPriority.9_13;
  5960. long unsigned int _14;
  5961. long unsigned int _15;
  5962. struct xLIST_ITEM * _16;
  5963. struct xLIST_ITEM * _17;
  5964. struct ListItem_t * _18;
  5965. struct ListItem_t * _19;
  5966. long unsigned int _20;
  5967. struct List_t * _21;
  5968. long unsigned int _22;
  5969. long unsigned int _23;
  5970. long unsigned int _24;
  5971. long int xSchedulerRunning.10_25;
  5972. struct TCB_t * pxCurrentTCB.11_26;
  5973. long unsigned int _27;
  5974. long unsigned int _28;
  5975. volatile uint32_t * _29;
  5976. <bb 2> :
  5977. vPortEnterCritical ();
  5978. uxCurrentNumberOfTasks.2_1 ={v} uxCurrentNumberOfTasks;
  5979. _2 = uxCurrentNumberOfTasks.2_1 + 1;
  5980. uxCurrentNumberOfTasks ={v} _2;
  5981. pxCurrentTCB.3_3 ={v} pxCurrentTCB;
  5982. if (pxCurrentTCB.3_3 == 0B)
  5983. goto <bb 3>; [INV]
  5984. else
  5985. goto <bb 5>; [INV]
  5986. <bb 3> :
  5987. pxCurrentTCB ={v} pxNewTCB_36(D);
  5988. uxCurrentNumberOfTasks.4_4 ={v} uxCurrentNumberOfTasks;
  5989. if (uxCurrentNumberOfTasks.4_4 == 1)
  5990. goto <bb 4>; [INV]
  5991. else
  5992. goto <bb 8>; [INV]
  5993. <bb 4> :
  5994. prvInitialiseTaskLists ();
  5995. goto <bb 8>; [INV]
  5996. <bb 5> :
  5997. xSchedulerRunning.5_5 ={v} xSchedulerRunning;
  5998. if (xSchedulerRunning.5_5 == 0)
  5999. goto <bb 6>; [INV]
  6000. else
  6001. goto <bb 8>; [INV]
  6002. <bb 6> :
  6003. pxCurrentTCB.6_6 ={v} pxCurrentTCB;
  6004. _7 = pxCurrentTCB.6_6->uxPriority;
  6005. _8 = pxNewTCB_36(D)->uxPriority;
  6006. if (_7 <= _8)
  6007. goto <bb 7>; [INV]
  6008. else
  6009. goto <bb 8>; [INV]
  6010. <bb 7> :
  6011. pxCurrentTCB ={v} pxNewTCB_36(D);
  6012. <bb 8> :
  6013. uxTaskNumber.7_9 = uxTaskNumber;
  6014. _10 = uxTaskNumber.7_9 + 1;
  6015. uxTaskNumber = _10;
  6016. uxTaskNumber.8_11 = uxTaskNumber;
  6017. pxNewTCB_36(D)->uxTCBNumber = uxTaskNumber.8_11;
  6018. _12 = pxNewTCB_36(D)->uxPriority;
  6019. uxTopReadyPriority.9_13 ={v} uxTopReadyPriority;
  6020. if (_12 > uxTopReadyPriority.9_13)
  6021. goto <bb 9>; [INV]
  6022. else
  6023. goto <bb 10>; [INV]
  6024. <bb 9> :
  6025. _14 = pxNewTCB_36(D)->uxPriority;
  6026. uxTopReadyPriority ={v} _14;
  6027. <bb 10> :
  6028. _15 = pxNewTCB_36(D)->uxPriority;
  6029. pxIndex_43 = pxReadyTasksLists[_15].pxIndex;
  6030. pxNewTCB_36(D)->xStateListItem.pxNext = pxIndex_43;
  6031. _16 = pxIndex_43->pxPrevious;
  6032. pxNewTCB_36(D)->xStateListItem.pxPrevious = _16;
  6033. _17 = pxIndex_43->pxPrevious;
  6034. _18 = &pxNewTCB_36(D)->xStateListItem;
  6035. _17->pxNext = _18;
  6036. _19 = &pxNewTCB_36(D)->xStateListItem;
  6037. pxIndex_43->pxPrevious = _19;
  6038. _20 = pxNewTCB_36(D)->uxPriority;
  6039. _21 = &pxReadyTasksLists[_20];
  6040. pxNewTCB_36(D)->xStateListItem.pvContainer = _21;
  6041. _22 = pxNewTCB_36(D)->uxPriority;
  6042. _23 ={v} pxReadyTasksLists[_22].uxNumberOfItems;
  6043. _24 = _23 + 1;
  6044. pxReadyTasksLists[_22].uxNumberOfItems ={v} _24;
  6045. vPortExitCritical ();
  6046. xSchedulerRunning.10_25 ={v} xSchedulerRunning;
  6047. if (xSchedulerRunning.10_25 != 0)
  6048. goto <bb 11>; [INV]
  6049. else
  6050. goto <bb 13>; [INV]
  6051. <bb 11> :
  6052. pxCurrentTCB.11_26 ={v} pxCurrentTCB;
  6053. _27 = pxCurrentTCB.11_26->uxPriority;
  6054. _28 = pxNewTCB_36(D)->uxPriority;
  6055. if (_27 < _28)
  6056. goto <bb 12>; [INV]
  6057. else
  6058. goto <bb 13>; [INV]
  6059. <bb 12> :
  6060. _29 = 3758157060B;
  6061. *_29 ={v} 268435456;
  6062. __asm__ __volatile__("dsb" : : : "memory");
  6063. __asm__ __volatile__("isb");
  6064. <bb 13> :
  6065. return;
  6066. }
  6067. prvInitialiseNewTask (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask, struct TCB_t * pxNewTCB, const struct MemoryRegion_t * const xRegions)
  6068. {
  6069. uint32_t ulNewBASEPRI;
  6070. uint32_t ulNewBASEPRI;
  6071. UBaseType_t x;
  6072. StackType_t * pxTopOfStack;
  6073. StackType_t * _1;
  6074. unsigned int _2;
  6075. StackType_t * _3;
  6076. sizetype _4;
  6077. sizetype _5;
  6078. long unsigned int pxTopOfStack.0_6;
  6079. long unsigned int _7;
  6080. long unsigned int pxTopOfStack.1_8;
  6081. long unsigned int _9;
  6082. const char * _10;
  6083. char _11;
  6084. const char * _12;
  6085. char _13;
  6086. struct ListItem_t * _14;
  6087. struct ListItem_t * _15;
  6088. long unsigned int _16;
  6089. volatile uint32_t * _17;
  6090. volatile uint8_t * _18;
  6091. StackType_t * _19;
  6092. <bb 2> :
  6093. _1 = pxNewTCB_27(D)->pxStack;
  6094. _2 = ulStackDepth_28(D) * 4;
  6095. memset (_1, 165, _2);
  6096. _3 = pxNewTCB_27(D)->pxStack;
  6097. _4 = ulStackDepth_28(D) + 1073741823;
  6098. _5 = _4 * 4;
  6099. pxTopOfStack_30 = _3 + _5;
  6100. pxTopOfStack.0_6 = (long unsigned int) pxTopOfStack_30;
  6101. _7 = pxTopOfStack.0_6 & 4294967288;
  6102. pxTopOfStack_31 = (StackType_t *) _7;
  6103. pxTopOfStack.1_8 = (long unsigned int) pxTopOfStack_31;
  6104. _9 = pxTopOfStack.1_8 & 7;
  6105. if (_9 != 0)
  6106. goto <bb 3>; [INV]
  6107. else
  6108. goto <bb 6>; [INV]
  6109. <bb 3> :
  6110. __asm__ __volatile__(" mov %0, %1
  6111. msr basepri, %0
  6112. isb
  6113. dsb
  6114. " : "=r" ulNewBASEPRI_58 : "i" 16 : "memory");
  6115. <bb 4> :
  6116. <bb 5> :
  6117. goto <bb 5>; [INV]
  6118. <bb 6> :
  6119. pxNewTCB_27(D)->pxEndOfStack = pxTopOfStack_31;
  6120. if (pcName_33(D) != 0B)
  6121. goto <bb 7>; [INV]
  6122. else
  6123. goto <bb 13>; [INV]
  6124. <bb 7> :
  6125. x_35 = 0;
  6126. goto <bb 11>; [INV]
  6127. <bb 8> :
  6128. _10 = pcName_33(D) + x_21;
  6129. _11 = *_10;
  6130. pxNewTCB_27(D)->pcTaskName[x_21] = _11;
  6131. _12 = pcName_33(D) + x_21;
  6132. _13 = *_12;
  6133. if (_13 == 0)
  6134. goto <bb 9>; [INV]
  6135. else
  6136. goto <bb 10>; [INV]
  6137. <bb 9> :
  6138. goto <bb 12>; [INV]
  6139. <bb 10> :
  6140. x_37 = x_21 + 1;
  6141. <bb 11> :
  6142. # x_21 = PHI <x_35(7), x_37(10)>
  6143. if (x_21 <= 9)
  6144. goto <bb 8>; [INV]
  6145. else
  6146. goto <bb 12>; [INV]
  6147. <bb 12> :
  6148. pxNewTCB_27(D)->pcTaskName[9] = 0;
  6149. goto <bb 14>; [INV]
  6150. <bb 13> :
  6151. pxNewTCB_27(D)->pcTaskName[0] = 0;
  6152. <bb 14> :
  6153. if (uxPriority_39(D) > 4)
  6154. goto <bb 15>; [INV]
  6155. else
  6156. goto <bb 18>; [INV]
  6157. <bb 15> :
  6158. __asm__ __volatile__(" mov %0, %1
  6159. msr basepri, %0
  6160. isb
  6161. dsb
  6162. " : "=r" ulNewBASEPRI_59 : "i" 16 : "memory");
  6163. <bb 16> :
  6164. <bb 17> :
  6165. goto <bb 17>; [INV]
  6166. <bb 18> :
  6167. if (uxPriority_39(D) > 4)
  6168. goto <bb 19>; [INV]
  6169. else
  6170. goto <bb 20>; [INV]
  6171. <bb 19> :
  6172. uxPriority_40 = 4;
  6173. <bb 20> :
  6174. # uxPriority_20 = PHI <uxPriority_39(D)(18), uxPriority_40(19)>
  6175. pxNewTCB_27(D)->uxPriority = uxPriority_20;
  6176. pxNewTCB_27(D)->uxBasePriority = uxPriority_20;
  6177. pxNewTCB_27(D)->uxMutexesHeld = 0;
  6178. _14 = &pxNewTCB_27(D)->xStateListItem;
  6179. vListInitialiseItem (_14);
  6180. _15 = &pxNewTCB_27(D)->xEventListItem;
  6181. vListInitialiseItem (_15);
  6182. pxNewTCB_27(D)->xStateListItem.pvOwner = pxNewTCB_27(D);
  6183. _16 = 5 - uxPriority_20;
  6184. pxNewTCB_27(D)->xEventListItem.xItemValue = _16;
  6185. pxNewTCB_27(D)->xEventListItem.pvOwner = pxNewTCB_27(D);
  6186. _17 = &pxNewTCB_27(D)->ulNotifiedValue[0];
  6187. memset (_17, 0, 4);
  6188. _18 = &pxNewTCB_27(D)->ucNotifyState[0];
  6189. memset (_18, 0, 1);
  6190. pxNewTCB_27(D)->ucDelayAborted = 0;
  6191. _19 = pxPortInitialiseStack (pxTopOfStack_31, pxTaskCode_52(D), pvParameters_53(D));
  6192. pxNewTCB_27(D)->pxTopOfStack = _19;
  6193. if (pxCreatedTask_56(D) != 0B)
  6194. goto <bb 21>; [INV]
  6195. else
  6196. goto <bb 22>; [INV]
  6197. <bb 21> :
  6198. *pxCreatedTask_56(D) = pxNewTCB_27(D);
  6199. <bb 22> :
  6200. return;
  6201. }
  6202. xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask)
  6203. {
  6204. StackType_t * pxStack;
  6205. BaseType_t xReturn;
  6206. struct TCB_t * pxNewTCB;
  6207. BaseType_t D.7510;
  6208. unsigned int _1;
  6209. unsigned int _2;
  6210. long unsigned int _3;
  6211. BaseType_t _26;
  6212. <bb 2> :
  6213. _1 = (unsigned int) usStackDepth_8(D);
  6214. _2 = _1 * 4;
  6215. pxStack_11 = pvPortMalloc (_2);
  6216. if (pxStack_11 != 0B)
  6217. goto <bb 3>; [INV]
  6218. else
  6219. goto <bb 6>; [INV]
  6220. <bb 3> :
  6221. pxNewTCB_14 = pvPortMalloc (92);
  6222. if (pxNewTCB_14 != 0B)
  6223. goto <bb 4>; [INV]
  6224. else
  6225. goto <bb 5>; [INV]
  6226. <bb 4> :
  6227. pxNewTCB_14->pxStack = pxStack_11;
  6228. goto <bb 7>; [INV]
  6229. <bb 5> :
  6230. vPortFree (pxStack_11);
  6231. goto <bb 7>; [INV]
  6232. <bb 6> :
  6233. pxNewTCB_12 = 0B;
  6234. <bb 7> :
  6235. # pxNewTCB_4 = PHI <pxNewTCB_14(5), pxNewTCB_12(6), pxNewTCB_14(4)>
  6236. if (pxNewTCB_4 != 0B)
  6237. goto <bb 8>; [INV]
  6238. else
  6239. goto <bb 9>; [INV]
  6240. <bb 8> :
  6241. _3 = (long unsigned int) usStackDepth_8(D);
  6242. prvInitialiseNewTask (pxTaskCode_18(D), pcName_19(D), _3, pvParameters_20(D), uxPriority_21(D), pxCreatedTask_22(D), pxNewTCB_4, 0B);
  6243. prvAddNewTaskToReadyList (pxNewTCB_4);
  6244. xReturn_25 = 1;
  6245. goto <bb 10>; [INV]
  6246. <bb 9> :
  6247. xReturn_17 = -1;
  6248. <bb 10> :
  6249. # xReturn_5 = PHI <xReturn_25(8), xReturn_17(9)>
  6250. _26 = xReturn_5;
  6251. <bb 11> :
  6252. <L9>:
  6253. return _26;
  6254. }