tasks.c.016i.visibility 153 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941
  1. Marking local functions: vPortSetBASEPRI ulPortRaiseBASEPRI vPortRaiseBASEPRI
  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: prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94 vTaskPlaceOnEventList/58
  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: xTaskResumeFromISR/42 vTaskSuspend/39 vTaskDelete/32
  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 prvCheckTasksWaitingTermination/71 xTaskAbortDelay/55 xTaskAbortDelay/55 xTaskResumeFromISR/42 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 vTaskDelete/32 vTaskDelete/32
  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: ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 prvCheckTasksWaitingTermination/71 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 vTaskDelete/32 prvAddNewTaskToReadyList/31
  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: ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 prvCheckTasksWaitingTermination/71 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 vTaskDelete/32 prvAddNewTaskToReadyList/31
  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 vPortRaiseBASEPRI/1
  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: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortEnterCritical/100 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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: xTaskIncrementTick/56 xTaskResumeAll/46 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: prvCheckTasksWaitingTermination/71 vTaskDelete/32
  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: uxTaskGetStackHighWaterMark/75 vTaskGetInfo/72
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1
  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: vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 uxTaskGetSystemState/53 xTaskGetHandle/52 vTaskDelay/34 xTaskDelayUntil/33
  611. Calls: vPortExitCritical/101 xTaskIncrementTick/56 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vPortRaiseBASEPRI/1
  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: vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 uxTaskGetSystemState/53 xTaskGetHandle/52 vTaskDelay/34 xTaskDelayUntil/33
  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 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1 xPortStartScheduler/106 vPortRaiseBASEPRI/1 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: vPortSetBASEPRI/3 vListInsertEnd/103 uxListRemove/102 prvTaskIsTaskSuspended/40 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1
  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: vPortSetBASEPRI/3 ulPortRaiseBASEPRI/2 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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1
  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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1
  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: vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: vTaskDelete/32 (read)xTaskDelayUntil/33 (read)vTaskDelay/34 (read)vTaskSuspend/39 (read)xTaskResumeFromISR/42 (read)vTaskSuspendAll/45 (read)vTaskSuspendAll/45 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskResumeAll/46 (read)xTaskCatchUpTicks/54 (read)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (read)vTaskPlaceOnUnorderedEventList/59 (read)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskGetSchedulerState/79 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (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: vTaskStartScheduler/43 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (write)prvResetNextTaskUnblockTime/77 (write)prvResetNextTaskUnblockTime/77 (write)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: xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSetTimeOutState/63 (read)vTaskInternalSetTimeOutState/64 (read)xTaskCheckForTimeOut/65 (read)
  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: xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (write)vTaskSwitchContext/57 (write)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (write)vTaskMissedYield/66 (write)xTaskGenericNotifyFromISR/90 (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)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (read)vTaskStartScheduler/43 (write)vTaskEndScheduler/44 (write)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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (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: xTaskDelayUntil/33 (read)vTaskStartScheduler/43 (write)xTaskGetTickCount/47 (read)xTaskGetTickCountFromISR/48 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSetTimeOutState/63 (read)vTaskInternalSetTimeOutState/64 (read)xTaskCheckForTimeOut/65 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)prvAddCurrentTaskToDelayedList/94 (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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (write)vTaskSuspend/39 (read)xTaskResumeAll/46 (read)uxTaskGetNumberOfTasks/49 (read)uxTaskGetSystemState/53 (read)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (write)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: eTaskGetState/35 (addr)vTaskSuspend/39 (addr)vTaskSuspend/39 (read)prvTaskIsTaskSuspended/40 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (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: vTaskDelete/32 (read)vTaskDelete/32 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read)
  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: vTaskDelete/32 (addr)eTaskGetState/35 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (addr)prvCheckTasksWaitingTermination/71 (read)
  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: prvTaskIsTaskSuspended/40 (addr)xTaskResumeFromISR/42 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)prvInitialiseTaskLists/70 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)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: eTaskGetState/35 (read)xTaskGetHandle/52 (read)uxTaskGetSystemState/53 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)prvInitialiseTaskLists/70 (write)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: eTaskGetState/35 (read)xTaskGetHandle/52 (read)uxTaskGetSystemState/53 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)prvInitialiseTaskLists/70 (write)prvResetNextTaskUnblockTime/77 (read)prvResetNextTaskUnblockTime/77 (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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)vTaskResume/41 (read)vTaskResume/41 (addr)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (addr)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)prvIdleTask/69 (read)prvInitialiseTaskLists/70 (addr)xTaskPriorityInherit/80 (addr)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 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)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)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)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)eTaskGetState/35 (read)uxTaskPriorityGet/36 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (write)vTaskResume/41 (read)vTaskResume/41 (read)xTaskResumeFromISR/42 (read)xTaskResumeAll/46 (read)pcTaskGetName/50 (read)xTaskAbortDelay/55 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (write)vTaskPlaceOnEventList/58 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskCheckForTimeOut/65 (read)xTaskCheckForTimeOut/65 (read)vTaskGetInfo/72 (read)vTaskGetInfo/72 (read)uxTaskGetStackHighWaterMark/75 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityDisinherit/81 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)xTaskGenericNotifyStateClear/92 (read)ulTaskGenericNotifyValueClear/93 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)
  917. Availability: available
  918. Varpool flags: initialized
  919. vPortSetBASEPRI/3 (vPortSetBASEPRI) @06b3cb60
  920. Type: function definition analyzed
  921. Visibility: no_reorder prevailing_def_ironly
  922. References:
  923. Referring:
  924. Availability: local
  925. Function flags: body local
  926. Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37
  927. Calls:
  928. ulPortRaiseBASEPRI/2 (ulPortRaiseBASEPRI) @06b3c8c0
  929. Type: function definition analyzed
  930. Visibility: no_reorder prevailing_def_ironly
  931. References:
  932. Referring:
  933. Availability: local
  934. Function flags: body local
  935. Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37
  936. Calls:
  937. vPortRaiseBASEPRI/1 (vPortRaiseBASEPRI) @06b3c540
  938. Type: function definition analyzed
  939. Visibility: no_reorder prevailing_def_ironly
  940. References:
  941. Referring:
  942. Availability: local
  943. Function flags: body local
  944. Called by: xTaskGenericNotifyStateClear/92 vTaskGenericNotifyGiveFromISR/91 vTaskGenericNotifyGiveFromISR/91 vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 vTaskPriorityDisinheritAfterTimeout/82 vTaskPriorityDisinheritAfterTimeout/82 xTaskPriorityDisinherit/81 xTaskPriorityDisinherit/81 xTaskCheckForTimeOut/65 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskRemoveFromUnorderedEventList/62 vTaskRemoveFromUnorderedEventList/62 xTaskRemoveFromEventList/61 vTaskPlaceOnEventListRestricted/60 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnEventList/58 vTaskSwitchContext/57 xTaskIncrementTick/56 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52 pcTaskGetName/50 xTaskResumeAll/46 vTaskEndScheduler/44 vTaskStartScheduler/43 vTaskStartScheduler/43 xTaskResumeFromISR/42 vTaskResume/41 prvTaskIsTaskSuspended/40 vTaskSuspend/39 vTaskPrioritySet/38 eTaskGetState/35 vTaskDelay/34 xTaskDelayUntil/33 xTaskDelayUntil/33 xTaskDelayUntil/33 vTaskDelete/32 prvInitialiseNewTask/30 prvInitialiseNewTask/30
  945. Calls:
  946. prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)
  947. {
  948. struct ListItem_t * const pxIndex;
  949. const TickType_t xConstTickCount;
  950. TickType_t xTimeToWake;
  951. <bb 2> :
  952. xConstTickCount = xTickCount;
  953. pxCurrentTCB.152_1 = pxCurrentTCB;
  954. pxCurrentTCB.152_1->ucDelayAborted = 0;
  955. pxCurrentTCB.153_2 = pxCurrentTCB;
  956. _3 = &pxCurrentTCB.153_2->xStateListItem;
  957. _4 = uxListRemove (_3);
  958. <bb 3> :
  959. if (xTicksToWait == 4294967295)
  960. goto <bb 4>; [INV]
  961. else
  962. goto <bb 6>; [INV]
  963. <bb 4> :
  964. if (xCanBlockIndefinitely != 0)
  965. goto <bb 5>; [INV]
  966. else
  967. goto <bb 6>; [INV]
  968. <bb 5> :
  969. pxIndex = xSuspendedTaskList.pxIndex;
  970. pxCurrentTCB.154_5 = pxCurrentTCB;
  971. pxCurrentTCB.154_5->xStateListItem.pxNext = pxIndex;
  972. pxCurrentTCB.155_6 = pxCurrentTCB;
  973. _7 = pxIndex->pxPrevious;
  974. pxCurrentTCB.155_6->xStateListItem.pxPrevious = _7;
  975. pxCurrentTCB.156_8 = pxCurrentTCB;
  976. _9 = pxIndex->pxPrevious;
  977. _10 = &pxCurrentTCB.156_8->xStateListItem;
  978. _9->pxNext = _10;
  979. pxCurrentTCB.157_11 = pxCurrentTCB;
  980. _12 = &pxCurrentTCB.157_11->xStateListItem;
  981. pxIndex->pxPrevious = _12;
  982. pxCurrentTCB.158_13 = pxCurrentTCB;
  983. pxCurrentTCB.158_13->xStateListItem.pvContainer = &xSuspendedTaskList;
  984. _14 = xSuspendedTaskList.uxNumberOfItems;
  985. _15 = _14 + 1;
  986. xSuspendedTaskList.uxNumberOfItems = _15;
  987. goto <bb 10>; [INV]
  988. <bb 6> :
  989. xTimeToWake = xConstTickCount + xTicksToWait;
  990. pxCurrentTCB.159_16 = pxCurrentTCB;
  991. pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake;
  992. if (xTimeToWake < xConstTickCount)
  993. goto <bb 7>; [INV]
  994. else
  995. goto <bb 8>; [INV]
  996. <bb 7> :
  997. pxOverflowDelayedTaskList.160_17 = pxOverflowDelayedTaskList;
  998. pxCurrentTCB.161_18 = pxCurrentTCB;
  999. _19 = &pxCurrentTCB.161_18->xStateListItem;
  1000. vListInsert (pxOverflowDelayedTaskList.160_17, _19);
  1001. goto <bb 10>; [INV]
  1002. <bb 8> :
  1003. pxDelayedTaskList.162_20 = pxDelayedTaskList;
  1004. pxCurrentTCB.163_21 = pxCurrentTCB;
  1005. _22 = &pxCurrentTCB.163_21->xStateListItem;
  1006. vListInsert (pxDelayedTaskList.162_20, _22);
  1007. xNextTaskUnblockTime.164_23 = xNextTaskUnblockTime;
  1008. if (xTimeToWake < xNextTaskUnblockTime.164_23)
  1009. goto <bb 9>; [INV]
  1010. else
  1011. goto <bb 10>; [INV]
  1012. <bb 9> :
  1013. xNextTaskUnblockTime = xTimeToWake;
  1014. <bb 10> :
  1015. return;
  1016. }
  1017. ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear)
  1018. {
  1019. uint32_t ulReturn;
  1020. struct TCB_t * pxTCB;
  1021. uint32_t D.8224;
  1022. struct TCB_t * iftmp.151;
  1023. <bb 2> :
  1024. if (xTask == 0B)
  1025. goto <bb 3>; [INV]
  1026. else
  1027. goto <bb 4>; [INV]
  1028. <bb 3> :
  1029. iftmp.151 = pxCurrentTCB;
  1030. goto <bb 5>; [INV]
  1031. <bb 4> :
  1032. iftmp.151 = xTask;
  1033. <bb 5> :
  1034. pxTCB = iftmp.151;
  1035. vPortEnterCritical ();
  1036. ulReturn = pxTCB->ulNotifiedValue[uxIndexToClear];
  1037. _1 = pxTCB->ulNotifiedValue[uxIndexToClear];
  1038. _2 = ~ulBitsToClear;
  1039. _3 = _1 & _2;
  1040. pxTCB->ulNotifiedValue[uxIndexToClear] = _3;
  1041. vPortExitCritical ();
  1042. D.8224 = ulReturn;
  1043. <bb 6> :
  1044. <L3>:
  1045. return D.8224;
  1046. }
  1047. xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear)
  1048. {
  1049. BaseType_t xReturn;
  1050. struct TCB_t * pxTCB;
  1051. BaseType_t D.8218;
  1052. struct TCB_t * iftmp.150;
  1053. <bb 2> :
  1054. if (uxIndexToClear != 0)
  1055. goto <bb 3>; [INV]
  1056. else
  1057. goto <bb 5>; [INV]
  1058. <bb 3> :
  1059. vPortRaiseBASEPRI ();
  1060. <bb 4> :
  1061. goto <bb 4>; [INV]
  1062. <bb 5> :
  1063. if (xTask == 0B)
  1064. goto <bb 6>; [INV]
  1065. else
  1066. goto <bb 7>; [INV]
  1067. <bb 6> :
  1068. iftmp.150 = pxCurrentTCB;
  1069. goto <bb 8>; [INV]
  1070. <bb 7> :
  1071. iftmp.150 = xTask;
  1072. <bb 8> :
  1073. pxTCB = iftmp.150;
  1074. vPortEnterCritical ();
  1075. _1 = pxTCB->ucNotifyState[uxIndexToClear];
  1076. if (_1 == 2)
  1077. goto <bb 9>; [INV]
  1078. else
  1079. goto <bb 10>; [INV]
  1080. <bb 9> :
  1081. pxTCB->ucNotifyState[uxIndexToClear] = 0;
  1082. xReturn = 1;
  1083. goto <bb 11>; [INV]
  1084. <bb 10> :
  1085. xReturn = 0;
  1086. <bb 11> :
  1087. vPortExitCritical ();
  1088. D.8218 = xReturn;
  1089. <bb 12> :
  1090. <L9>:
  1091. return D.8218;
  1092. }
  1093. vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken)
  1094. {
  1095. struct ListItem_t * const pxIndex;
  1096. struct ListItem_t * const pxIndex;
  1097. struct List_t * const pxList;
  1098. UBaseType_t uxSavedInterruptStatus;
  1099. uint8_t ucOriginalNotifyState;
  1100. struct TCB_t * pxTCB;
  1101. <bb 2> :
  1102. if (xTaskToNotify == 0B)
  1103. goto <bb 3>; [INV]
  1104. else
  1105. goto <bb 5>; [INV]
  1106. <bb 3> :
  1107. vPortRaiseBASEPRI ();
  1108. <bb 4> :
  1109. goto <bb 4>; [INV]
  1110. <bb 5> :
  1111. if (uxIndexToNotify != 0)
  1112. goto <bb 6>; [INV]
  1113. else
  1114. goto <bb 8>; [INV]
  1115. <bb 6> :
  1116. vPortRaiseBASEPRI ();
  1117. <bb 7> :
  1118. goto <bb 7>; [INV]
  1119. <bb 8> :
  1120. vPortValidateInterruptPriority ();
  1121. pxTCB = xTaskToNotify;
  1122. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  1123. ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify];
  1124. pxTCB->ucNotifyState[uxIndexToNotify] = 2;
  1125. _1 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1126. _2 = _1 + 1;
  1127. pxTCB->ulNotifiedValue[uxIndexToNotify] = _2;
  1128. if (ucOriginalNotifyState == 1)
  1129. goto <bb 9>; [INV]
  1130. else
  1131. goto <bb 23>; [INV]
  1132. <bb 9> :
  1133. _3 = pxTCB->xEventListItem.pvContainer;
  1134. if (_3 != 0B)
  1135. goto <bb 10>; [INV]
  1136. else
  1137. goto <bb 12>; [INV]
  1138. <bb 10> :
  1139. vPortRaiseBASEPRI ();
  1140. <bb 11> :
  1141. goto <bb 11>; [INV]
  1142. <bb 12> :
  1143. uxSchedulerSuspended.147_4 = uxSchedulerSuspended;
  1144. if (uxSchedulerSuspended.147_4 == 0)
  1145. goto <bb 13>; [INV]
  1146. else
  1147. goto <bb 18>; [INV]
  1148. <bb 13> :
  1149. pxList = pxTCB->xStateListItem.pvContainer;
  1150. _5 = pxTCB->xStateListItem.pxNext;
  1151. _6 = pxTCB->xStateListItem.pxPrevious;
  1152. _5->pxPrevious = _6;
  1153. _7 = pxTCB->xStateListItem.pxPrevious;
  1154. _8 = pxTCB->xStateListItem.pxNext;
  1155. _7->pxNext = _8;
  1156. _9 = pxList->pxIndex;
  1157. _10 = &pxTCB->xStateListItem;
  1158. if (_9 == _10)
  1159. goto <bb 14>; [INV]
  1160. else
  1161. goto <bb 15>; [INV]
  1162. <bb 14> :
  1163. _11 = pxTCB->xStateListItem.pxPrevious;
  1164. pxList->pxIndex = _11;
  1165. <bb 15> :
  1166. pxTCB->xStateListItem.pvContainer = 0B;
  1167. _12 = pxList->uxNumberOfItems;
  1168. _13 = _12 + 4294967295;
  1169. pxList->uxNumberOfItems = _13;
  1170. _14 = pxTCB->uxPriority;
  1171. uxTopReadyPriority.148_15 = uxTopReadyPriority;
  1172. if (_14 > uxTopReadyPriority.148_15)
  1173. goto <bb 16>; [INV]
  1174. else
  1175. goto <bb 17>; [INV]
  1176. <bb 16> :
  1177. _16 = pxTCB->uxPriority;
  1178. uxTopReadyPriority = _16;
  1179. <bb 17> :
  1180. _17 = pxTCB->uxPriority;
  1181. pxIndex = pxReadyTasksLists[_17].pxIndex;
  1182. pxTCB->xStateListItem.pxNext = pxIndex;
  1183. _18 = pxIndex->pxPrevious;
  1184. pxTCB->xStateListItem.pxPrevious = _18;
  1185. _19 = pxIndex->pxPrevious;
  1186. _20 = &pxTCB->xStateListItem;
  1187. _19->pxNext = _20;
  1188. _21 = &pxTCB->xStateListItem;
  1189. pxIndex->pxPrevious = _21;
  1190. _22 = pxTCB->uxPriority;
  1191. _23 = &pxReadyTasksLists[_22];
  1192. pxTCB->xStateListItem.pvContainer = _23;
  1193. _24 = pxTCB->uxPriority;
  1194. _25 = pxReadyTasksLists[_24].uxNumberOfItems;
  1195. _26 = _25 + 1;
  1196. pxReadyTasksLists[_24].uxNumberOfItems = _26;
  1197. goto <bb 19>; [INV]
  1198. <bb 18> :
  1199. pxIndex = xPendingReadyList.pxIndex;
  1200. pxTCB->xEventListItem.pxNext = pxIndex;
  1201. _27 = pxIndex->pxPrevious;
  1202. pxTCB->xEventListItem.pxPrevious = _27;
  1203. _28 = pxIndex->pxPrevious;
  1204. _29 = &pxTCB->xEventListItem;
  1205. _28->pxNext = _29;
  1206. _30 = &pxTCB->xEventListItem;
  1207. pxIndex->pxPrevious = _30;
  1208. pxTCB->xEventListItem.pvContainer = &xPendingReadyList;
  1209. _31 = xPendingReadyList.uxNumberOfItems;
  1210. _32 = _31 + 1;
  1211. xPendingReadyList.uxNumberOfItems = _32;
  1212. <bb 19> :
  1213. _33 = pxTCB->uxPriority;
  1214. pxCurrentTCB.149_34 = pxCurrentTCB;
  1215. _35 = pxCurrentTCB.149_34->uxPriority;
  1216. if (_33 > _35)
  1217. goto <bb 20>; [INV]
  1218. else
  1219. goto <bb 23>; [INV]
  1220. <bb 20> :
  1221. if (pxHigherPriorityTaskWoken != 0B)
  1222. goto <bb 21>; [INV]
  1223. else
  1224. goto <bb 22>; [INV]
  1225. <bb 21> :
  1226. *pxHigherPriorityTaskWoken = 1;
  1227. <bb 22> :
  1228. xYieldPending = 1;
  1229. <bb 23> :
  1230. vPortSetBASEPRI (uxSavedInterruptStatus);
  1231. return;
  1232. }
  1233. xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken)
  1234. {
  1235. struct ListItem_t * const pxIndex;
  1236. struct ListItem_t * const pxIndex;
  1237. struct List_t * const pxList;
  1238. UBaseType_t uxSavedInterruptStatus;
  1239. BaseType_t xReturn;
  1240. uint8_t ucOriginalNotifyState;
  1241. struct TCB_t * pxTCB;
  1242. BaseType_t D.8187;
  1243. <bb 2> :
  1244. xReturn = 1;
  1245. if (xTaskToNotify == 0B)
  1246. goto <bb 3>; [INV]
  1247. else
  1248. goto <bb 5>; [INV]
  1249. <bb 3> :
  1250. vPortRaiseBASEPRI ();
  1251. <bb 4> :
  1252. goto <bb 4>; [INV]
  1253. <bb 5> :
  1254. if (uxIndexToNotify != 0)
  1255. goto <bb 6>; [INV]
  1256. else
  1257. goto <bb 8>; [INV]
  1258. <bb 6> :
  1259. vPortRaiseBASEPRI ();
  1260. <bb 7> :
  1261. goto <bb 7>; [INV]
  1262. <bb 8> :
  1263. vPortValidateInterruptPriority ();
  1264. pxTCB = xTaskToNotify;
  1265. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  1266. if (pulPreviousNotificationValue != 0B)
  1267. goto <bb 9>; [INV]
  1268. else
  1269. goto <bb 10>; [INV]
  1270. <bb 9> :
  1271. _1 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1272. *pulPreviousNotificationValue = _1;
  1273. <bb 10> :
  1274. ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify];
  1275. pxTCB->ucNotifyState[uxIndexToNotify] = 2;
  1276. switch (eAction) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
  1277. <bb 11> :
  1278. <L8>:
  1279. _2 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1280. _3 = ulValue | _2;
  1281. pxTCB->ulNotifiedValue[uxIndexToNotify] = _3;
  1282. goto <bb 23>; [INV]
  1283. <bb 12> :
  1284. <L9>:
  1285. _4 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1286. _5 = _4 + 1;
  1287. pxTCB->ulNotifiedValue[uxIndexToNotify] = _5;
  1288. goto <bb 23>; [INV]
  1289. <bb 13> :
  1290. <L10>:
  1291. pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  1292. goto <bb 23>; [INV]
  1293. <bb 14> :
  1294. <L11>:
  1295. if (ucOriginalNotifyState != 2)
  1296. goto <bb 15>; [INV]
  1297. else
  1298. goto <bb 16>; [INV]
  1299. <bb 15> :
  1300. pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  1301. goto <bb 17>; [INV]
  1302. <bb 16> :
  1303. xReturn = 0;
  1304. <bb 17> :
  1305. goto <bb 23>; [INV]
  1306. <bb 18> :
  1307. <L15>:
  1308. goto <bb 23>; [INV]
  1309. <bb 19> :
  1310. <L16>:
  1311. xTickCount.143_6 = xTickCount;
  1312. if (xTickCount.143_6 != 0)
  1313. goto <bb 20>; [INV]
  1314. else
  1315. goto <bb 22>; [INV]
  1316. <bb 20> :
  1317. vPortRaiseBASEPRI ();
  1318. <bb 21> :
  1319. goto <bb 21>; [INV]
  1320. <bb 22> :
  1321. <bb 23> :
  1322. if (ucOriginalNotifyState == 1)
  1323. goto <bb 24>; [INV]
  1324. else
  1325. goto <bb 38>; [INV]
  1326. <bb 24> :
  1327. _7 = pxTCB->xEventListItem.pvContainer;
  1328. if (_7 != 0B)
  1329. goto <bb 25>; [INV]
  1330. else
  1331. goto <bb 27>; [INV]
  1332. <bb 25> :
  1333. vPortRaiseBASEPRI ();
  1334. <bb 26> :
  1335. goto <bb 26>; [INV]
  1336. <bb 27> :
  1337. uxSchedulerSuspended.144_8 = uxSchedulerSuspended;
  1338. if (uxSchedulerSuspended.144_8 == 0)
  1339. goto <bb 28>; [INV]
  1340. else
  1341. goto <bb 33>; [INV]
  1342. <bb 28> :
  1343. pxList = pxTCB->xStateListItem.pvContainer;
  1344. _9 = pxTCB->xStateListItem.pxNext;
  1345. _10 = pxTCB->xStateListItem.pxPrevious;
  1346. _9->pxPrevious = _10;
  1347. _11 = pxTCB->xStateListItem.pxPrevious;
  1348. _12 = pxTCB->xStateListItem.pxNext;
  1349. _11->pxNext = _12;
  1350. _13 = pxList->pxIndex;
  1351. _14 = &pxTCB->xStateListItem;
  1352. if (_13 == _14)
  1353. goto <bb 29>; [INV]
  1354. else
  1355. goto <bb 30>; [INV]
  1356. <bb 29> :
  1357. _15 = pxTCB->xStateListItem.pxPrevious;
  1358. pxList->pxIndex = _15;
  1359. <bb 30> :
  1360. pxTCB->xStateListItem.pvContainer = 0B;
  1361. _16 = pxList->uxNumberOfItems;
  1362. _17 = _16 + 4294967295;
  1363. pxList->uxNumberOfItems = _17;
  1364. _18 = pxTCB->uxPriority;
  1365. uxTopReadyPriority.145_19 = uxTopReadyPriority;
  1366. if (_18 > uxTopReadyPriority.145_19)
  1367. goto <bb 31>; [INV]
  1368. else
  1369. goto <bb 32>; [INV]
  1370. <bb 31> :
  1371. _20 = pxTCB->uxPriority;
  1372. uxTopReadyPriority = _20;
  1373. <bb 32> :
  1374. _21 = pxTCB->uxPriority;
  1375. pxIndex = pxReadyTasksLists[_21].pxIndex;
  1376. pxTCB->xStateListItem.pxNext = pxIndex;
  1377. _22 = pxIndex->pxPrevious;
  1378. pxTCB->xStateListItem.pxPrevious = _22;
  1379. _23 = pxIndex->pxPrevious;
  1380. _24 = &pxTCB->xStateListItem;
  1381. _23->pxNext = _24;
  1382. _25 = &pxTCB->xStateListItem;
  1383. pxIndex->pxPrevious = _25;
  1384. _26 = pxTCB->uxPriority;
  1385. _27 = &pxReadyTasksLists[_26];
  1386. pxTCB->xStateListItem.pvContainer = _27;
  1387. _28 = pxTCB->uxPriority;
  1388. _29 = pxReadyTasksLists[_28].uxNumberOfItems;
  1389. _30 = _29 + 1;
  1390. pxReadyTasksLists[_28].uxNumberOfItems = _30;
  1391. goto <bb 34>; [INV]
  1392. <bb 33> :
  1393. pxIndex = xPendingReadyList.pxIndex;
  1394. pxTCB->xEventListItem.pxNext = pxIndex;
  1395. _31 = pxIndex->pxPrevious;
  1396. pxTCB->xEventListItem.pxPrevious = _31;
  1397. _32 = pxIndex->pxPrevious;
  1398. _33 = &pxTCB->xEventListItem;
  1399. _32->pxNext = _33;
  1400. _34 = &pxTCB->xEventListItem;
  1401. pxIndex->pxPrevious = _34;
  1402. pxTCB->xEventListItem.pvContainer = &xPendingReadyList;
  1403. _35 = xPendingReadyList.uxNumberOfItems;
  1404. _36 = _35 + 1;
  1405. xPendingReadyList.uxNumberOfItems = _36;
  1406. <bb 34> :
  1407. _37 = pxTCB->uxPriority;
  1408. pxCurrentTCB.146_38 = pxCurrentTCB;
  1409. _39 = pxCurrentTCB.146_38->uxPriority;
  1410. if (_37 > _39)
  1411. goto <bb 35>; [INV]
  1412. else
  1413. goto <bb 38>; [INV]
  1414. <bb 35> :
  1415. if (pxHigherPriorityTaskWoken != 0B)
  1416. goto <bb 36>; [INV]
  1417. else
  1418. goto <bb 37>; [INV]
  1419. <bb 36> :
  1420. *pxHigherPriorityTaskWoken = 1;
  1421. <bb 37> :
  1422. xYieldPending = 1;
  1423. <bb 38> :
  1424. vPortSetBASEPRI (uxSavedInterruptStatus);
  1425. D.8187 = xReturn;
  1426. <bb 39> :
  1427. <L38>:
  1428. return D.8187;
  1429. }
  1430. xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue)
  1431. {
  1432. struct ListItem_t * const pxIndex;
  1433. struct List_t * const pxList;
  1434. uint8_t ucOriginalNotifyState;
  1435. BaseType_t xReturn;
  1436. struct TCB_t * pxTCB;
  1437. BaseType_t D.8158;
  1438. <bb 2> :
  1439. xReturn = 1;
  1440. if (uxIndexToNotify != 0)
  1441. goto <bb 3>; [INV]
  1442. else
  1443. goto <bb 5>; [INV]
  1444. <bb 3> :
  1445. vPortRaiseBASEPRI ();
  1446. <bb 4> :
  1447. goto <bb 4>; [INV]
  1448. <bb 5> :
  1449. if (xTaskToNotify == 0B)
  1450. goto <bb 6>; [INV]
  1451. else
  1452. goto <bb 8>; [INV]
  1453. <bb 6> :
  1454. vPortRaiseBASEPRI ();
  1455. <bb 7> :
  1456. goto <bb 7>; [INV]
  1457. <bb 8> :
  1458. pxTCB = xTaskToNotify;
  1459. vPortEnterCritical ();
  1460. if (pulPreviousNotificationValue != 0B)
  1461. goto <bb 9>; [INV]
  1462. else
  1463. goto <bb 10>; [INV]
  1464. <bb 9> :
  1465. _1 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1466. *pulPreviousNotificationValue = _1;
  1467. <bb 10> :
  1468. ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify];
  1469. pxTCB->ucNotifyState[uxIndexToNotify] = 2;
  1470. switch (eAction) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
  1471. <bb 11> :
  1472. <L8>:
  1473. _2 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1474. _3 = ulValue | _2;
  1475. pxTCB->ulNotifiedValue[uxIndexToNotify] = _3;
  1476. goto <bb 23>; [INV]
  1477. <bb 12> :
  1478. <L9>:
  1479. _4 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  1480. _5 = _4 + 1;
  1481. pxTCB->ulNotifiedValue[uxIndexToNotify] = _5;
  1482. goto <bb 23>; [INV]
  1483. <bb 13> :
  1484. <L10>:
  1485. pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  1486. goto <bb 23>; [INV]
  1487. <bb 14> :
  1488. <L11>:
  1489. if (ucOriginalNotifyState != 2)
  1490. goto <bb 15>; [INV]
  1491. else
  1492. goto <bb 16>; [INV]
  1493. <bb 15> :
  1494. pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  1495. goto <bb 17>; [INV]
  1496. <bb 16> :
  1497. xReturn = 0;
  1498. <bb 17> :
  1499. goto <bb 23>; [INV]
  1500. <bb 18> :
  1501. <L15>:
  1502. goto <bb 23>; [INV]
  1503. <bb 19> :
  1504. <L16>:
  1505. xTickCount.140_6 = xTickCount;
  1506. if (xTickCount.140_6 != 0)
  1507. goto <bb 20>; [INV]
  1508. else
  1509. goto <bb 22>; [INV]
  1510. <bb 20> :
  1511. vPortRaiseBASEPRI ();
  1512. <bb 21> :
  1513. goto <bb 21>; [INV]
  1514. <bb 22> :
  1515. <bb 23> :
  1516. if (ucOriginalNotifyState == 1)
  1517. goto <bb 24>; [INV]
  1518. else
  1519. goto <bb 33>; [INV]
  1520. <bb 24> :
  1521. pxList = pxTCB->xStateListItem.pvContainer;
  1522. _7 = pxTCB->xStateListItem.pxNext;
  1523. _8 = pxTCB->xStateListItem.pxPrevious;
  1524. _7->pxPrevious = _8;
  1525. _9 = pxTCB->xStateListItem.pxPrevious;
  1526. _10 = pxTCB->xStateListItem.pxNext;
  1527. _9->pxNext = _10;
  1528. _11 = pxList->pxIndex;
  1529. _12 = &pxTCB->xStateListItem;
  1530. if (_11 == _12)
  1531. goto <bb 25>; [INV]
  1532. else
  1533. goto <bb 26>; [INV]
  1534. <bb 25> :
  1535. _13 = pxTCB->xStateListItem.pxPrevious;
  1536. pxList->pxIndex = _13;
  1537. <bb 26> :
  1538. pxTCB->xStateListItem.pvContainer = 0B;
  1539. _14 = pxList->uxNumberOfItems;
  1540. _15 = _14 + 4294967295;
  1541. pxList->uxNumberOfItems = _15;
  1542. _16 = pxTCB->uxPriority;
  1543. uxTopReadyPriority.141_17 = uxTopReadyPriority;
  1544. if (_16 > uxTopReadyPriority.141_17)
  1545. goto <bb 27>; [INV]
  1546. else
  1547. goto <bb 28>; [INV]
  1548. <bb 27> :
  1549. _18 = pxTCB->uxPriority;
  1550. uxTopReadyPriority = _18;
  1551. <bb 28> :
  1552. _19 = pxTCB->uxPriority;
  1553. pxIndex = pxReadyTasksLists[_19].pxIndex;
  1554. pxTCB->xStateListItem.pxNext = pxIndex;
  1555. _20 = pxIndex->pxPrevious;
  1556. pxTCB->xStateListItem.pxPrevious = _20;
  1557. _21 = pxIndex->pxPrevious;
  1558. _22 = &pxTCB->xStateListItem;
  1559. _21->pxNext = _22;
  1560. _23 = &pxTCB->xStateListItem;
  1561. pxIndex->pxPrevious = _23;
  1562. _24 = pxTCB->uxPriority;
  1563. _25 = &pxReadyTasksLists[_24];
  1564. pxTCB->xStateListItem.pvContainer = _25;
  1565. _26 = pxTCB->uxPriority;
  1566. _27 = pxReadyTasksLists[_26].uxNumberOfItems;
  1567. _28 = _27 + 1;
  1568. pxReadyTasksLists[_26].uxNumberOfItems = _28;
  1569. _29 = pxTCB->xEventListItem.pvContainer;
  1570. if (_29 != 0B)
  1571. goto <bb 29>; [INV]
  1572. else
  1573. goto <bb 31>; [INV]
  1574. <bb 29> :
  1575. vPortRaiseBASEPRI ();
  1576. <bb 30> :
  1577. goto <bb 30>; [INV]
  1578. <bb 31> :
  1579. _30 = pxTCB->uxPriority;
  1580. pxCurrentTCB.142_31 = pxCurrentTCB;
  1581. _32 = pxCurrentTCB.142_31->uxPriority;
  1582. if (_30 > _32)
  1583. goto <bb 32>; [INV]
  1584. else
  1585. goto <bb 33>; [INV]
  1586. <bb 32> :
  1587. _33 = 3758157060B;
  1588. *_33 = 268435456;
  1589. __asm__ __volatile__("dsb" : : : "memory");
  1590. __asm__ __volatile__("isb");
  1591. <bb 33> :
  1592. vPortExitCritical ();
  1593. D.8158 = xReturn;
  1594. <bb 34> :
  1595. <L34>:
  1596. return D.8158;
  1597. }
  1598. xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait)
  1599. {
  1600. BaseType_t xReturn;
  1601. BaseType_t D.8133;
  1602. struct TCB_t * pxCurrentTCB.138;
  1603. struct TCB_t * pxCurrentTCB.134;
  1604. <bb 2> :
  1605. if (uxIndexToWait != 0)
  1606. goto <bb 3>; [INV]
  1607. else
  1608. goto <bb 5>; [INV]
  1609. <bb 3> :
  1610. vPortRaiseBASEPRI ();
  1611. <bb 4> :
  1612. goto <bb 4>; [INV]
  1613. <bb 5> :
  1614. vPortEnterCritical ();
  1615. pxCurrentTCB.133_1 = pxCurrentTCB;
  1616. _2 = pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait];
  1617. if (_2 != 2)
  1618. goto <bb 6>; [INV]
  1619. else
  1620. goto <bb 8>; [INV]
  1621. <bb 6> :
  1622. pxCurrentTCB.134 = pxCurrentTCB;
  1623. _3 = pxCurrentTCB.134->ulNotifiedValue[uxIndexToWait];
  1624. _4 = ~ulBitsToClearOnEntry;
  1625. _5 = _3 & _4;
  1626. pxCurrentTCB.134->ulNotifiedValue[uxIndexToWait] = _5;
  1627. pxCurrentTCB.135_6 = pxCurrentTCB;
  1628. pxCurrentTCB.135_6->ucNotifyState[uxIndexToWait] = 1;
  1629. if (xTicksToWait != 0)
  1630. goto <bb 7>; [INV]
  1631. else
  1632. goto <bb 8>; [INV]
  1633. <bb 7> :
  1634. prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  1635. _7 = 3758157060B;
  1636. *_7 = 268435456;
  1637. __asm__ __volatile__("dsb" : : : "memory");
  1638. __asm__ __volatile__("isb");
  1639. <bb 8> :
  1640. vPortExitCritical ();
  1641. vPortEnterCritical ();
  1642. if (pulNotificationValue != 0B)
  1643. goto <bb 9>; [INV]
  1644. else
  1645. goto <bb 10>; [INV]
  1646. <bb 9> :
  1647. pxCurrentTCB.136_8 = pxCurrentTCB;
  1648. _9 = pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait];
  1649. *pulNotificationValue = _9;
  1650. <bb 10> :
  1651. pxCurrentTCB.137_10 = pxCurrentTCB;
  1652. _11 = pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait];
  1653. if (_11 != 2)
  1654. goto <bb 11>; [INV]
  1655. else
  1656. goto <bb 12>; [INV]
  1657. <bb 11> :
  1658. xReturn = 0;
  1659. goto <bb 13>; [INV]
  1660. <bb 12> :
  1661. pxCurrentTCB.138 = pxCurrentTCB;
  1662. _12 = pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait];
  1663. _13 = ~ulBitsToClearOnExit;
  1664. _14 = _12 & _13;
  1665. pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait] = _14;
  1666. xReturn = 1;
  1667. <bb 13> :
  1668. pxCurrentTCB.139_15 = pxCurrentTCB;
  1669. pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait] = 0;
  1670. vPortExitCritical ();
  1671. D.8133 = xReturn;
  1672. <bb 14> :
  1673. <L14>:
  1674. return D.8133;
  1675. }
  1676. ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
  1677. {
  1678. uint32_t ulReturn;
  1679. uint32_t D.8116;
  1680. <bb 2> :
  1681. if (uxIndexToWait != 0)
  1682. goto <bb 3>; [INV]
  1683. else
  1684. goto <bb 5>; [INV]
  1685. <bb 3> :
  1686. vPortRaiseBASEPRI ();
  1687. <bb 4> :
  1688. goto <bb 4>; [INV]
  1689. <bb 5> :
  1690. vPortEnterCritical ();
  1691. pxCurrentTCB.127_1 = pxCurrentTCB;
  1692. _2 = pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait];
  1693. if (_2 == 0)
  1694. goto <bb 6>; [INV]
  1695. else
  1696. goto <bb 8>; [INV]
  1697. <bb 6> :
  1698. pxCurrentTCB.128_3 = pxCurrentTCB;
  1699. pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait] = 1;
  1700. if (xTicksToWait != 0)
  1701. goto <bb 7>; [INV]
  1702. else
  1703. goto <bb 8>; [INV]
  1704. <bb 7> :
  1705. prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  1706. _4 = 3758157060B;
  1707. *_4 = 268435456;
  1708. __asm__ __volatile__("dsb" : : : "memory");
  1709. __asm__ __volatile__("isb");
  1710. <bb 8> :
  1711. vPortExitCritical ();
  1712. vPortEnterCritical ();
  1713. pxCurrentTCB.129_5 = pxCurrentTCB;
  1714. ulReturn = pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait];
  1715. if (ulReturn != 0)
  1716. goto <bb 9>; [INV]
  1717. else
  1718. goto <bb 12>; [INV]
  1719. <bb 9> :
  1720. if (xClearCountOnExit != 0)
  1721. goto <bb 10>; [INV]
  1722. else
  1723. goto <bb 11>; [INV]
  1724. <bb 10> :
  1725. pxCurrentTCB.130_6 = pxCurrentTCB;
  1726. pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait] = 0;
  1727. goto <bb 12>; [INV]
  1728. <bb 11> :
  1729. pxCurrentTCB.131_7 = pxCurrentTCB;
  1730. _8 = ulReturn + 4294967295;
  1731. pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait] = _8;
  1732. <bb 12> :
  1733. pxCurrentTCB.132_9 = pxCurrentTCB;
  1734. pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait] = 0;
  1735. vPortExitCritical ();
  1736. D.8116 = ulReturn;
  1737. <bb 13> :
  1738. <L15>:
  1739. return D.8116;
  1740. }
  1741. pvTaskIncrementMutexHeldCount ()
  1742. {
  1743. struct tskTaskControlBlock * D.8100;
  1744. <bb 2> :
  1745. pxCurrentTCB.125_1 = pxCurrentTCB;
  1746. if (pxCurrentTCB.125_1 != 0B)
  1747. goto <bb 3>; [INV]
  1748. else
  1749. goto <bb 4>; [INV]
  1750. <bb 3> :
  1751. pxCurrentTCB.126_2 = pxCurrentTCB;
  1752. _3 = pxCurrentTCB.126_2->uxMutexesHeld;
  1753. _4 = _3 + 1;
  1754. pxCurrentTCB.126_2->uxMutexesHeld = _4;
  1755. <bb 4> :
  1756. D.8100 = pxCurrentTCB;
  1757. <bb 5> :
  1758. <L2>:
  1759. return D.8100;
  1760. }
  1761. uxTaskResetEventItemValue ()
  1762. {
  1763. TickType_t uxReturn;
  1764. TickType_t D.8096;
  1765. <bb 2> :
  1766. pxCurrentTCB.122_1 = pxCurrentTCB;
  1767. uxReturn = pxCurrentTCB.122_1->xEventListItem.xItemValue;
  1768. pxCurrentTCB.123_2 = pxCurrentTCB;
  1769. _3 = pxCurrentTCB.123_2->uxPriority;
  1770. pxCurrentTCB.124_4 = pxCurrentTCB;
  1771. _5 = 5 - _3;
  1772. pxCurrentTCB.124_4->xEventListItem.xItemValue = _5;
  1773. D.8096 = uxReturn;
  1774. <bb 3> :
  1775. <L0>:
  1776. return D.8096;
  1777. }
  1778. vTaskList (char * pcWriteBuffer)
  1779. {
  1780. char cStatus;
  1781. UBaseType_t x;
  1782. UBaseType_t uxArraySize;
  1783. struct TaskStatus_t * pxTaskStatusArray;
  1784. <bb 2> :
  1785. *pcWriteBuffer = 0;
  1786. uxArraySize = uxCurrentNumberOfTasks;
  1787. uxCurrentNumberOfTasks.121_1 = uxCurrentNumberOfTasks;
  1788. _2 = uxCurrentNumberOfTasks.121_1 * 36;
  1789. pxTaskStatusArray = pvPortMalloc (_2);
  1790. if (pxTaskStatusArray != 0B)
  1791. goto <bb 3>; [INV]
  1792. else
  1793. goto <bb 14>; [INV]
  1794. <bb 3> :
  1795. uxArraySize = uxTaskGetSystemState (pxTaskStatusArray, uxArraySize, 0B);
  1796. x = 0;
  1797. goto <bb 12>; [INV]
  1798. <bb 4> :
  1799. _3 = x * 36;
  1800. _4 = pxTaskStatusArray + _3;
  1801. _5 = _4->eCurrentState;
  1802. 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]>
  1803. <bb 5> :
  1804. <L2>:
  1805. cStatus = 88;
  1806. goto <bb 11>; [INV]
  1807. <bb 6> :
  1808. <L3>:
  1809. cStatus = 82;
  1810. goto <bb 11>; [INV]
  1811. <bb 7> :
  1812. <L4>:
  1813. cStatus = 66;
  1814. goto <bb 11>; [INV]
  1815. <bb 8> :
  1816. <L5>:
  1817. cStatus = 83;
  1818. goto <bb 11>; [INV]
  1819. <bb 9> :
  1820. <L6>:
  1821. cStatus = 68;
  1822. goto <bb 11>; [INV]
  1823. <bb 10> :
  1824. <L7>:
  1825. cStatus = 0;
  1826. <bb 11> :
  1827. _6 = x * 36;
  1828. _7 = pxTaskStatusArray + _6;
  1829. _8 = _7->pcTaskName;
  1830. pcWriteBuffer = prvWriteNameToBuffer (pcWriteBuffer, _8);
  1831. _9 = (int) cStatus;
  1832. _10 = x * 36;
  1833. _11 = pxTaskStatusArray + _10;
  1834. _12 = _11->uxCurrentPriority;
  1835. _13 = x * 36;
  1836. _14 = pxTaskStatusArray + _13;
  1837. _15 = _14->usStackHighWaterMark;
  1838. _16 = (unsigned int) _15;
  1839. _17 = x * 36;
  1840. _18 = pxTaskStatusArray + _17;
  1841. _19 = _18->xTaskNumber;
  1842. sprintf (pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", _9, _12, _16, _19);
  1843. _20 = strlen (pcWriteBuffer);
  1844. pcWriteBuffer = pcWriteBuffer + _20;
  1845. x = x + 1;
  1846. <bb 12> :
  1847. if (x < uxArraySize)
  1848. goto <bb 4>; [INV]
  1849. else
  1850. goto <bb 13>; [INV]
  1851. <bb 13> :
  1852. vPortFree (pxTaskStatusArray);
  1853. <bb 14> :
  1854. return;
  1855. }
  1856. prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName)
  1857. {
  1858. size_t x;
  1859. char * D.8091;
  1860. <bb 2> :
  1861. strcpy (pcBuffer, pcTaskName);
  1862. x = strlen (pcBuffer);
  1863. goto <bb 4>; [INV]
  1864. <bb 3> :
  1865. _1 = pcBuffer + x;
  1866. *_1 = 32;
  1867. x = x + 1;
  1868. <bb 4> :
  1869. if (x <= 8)
  1870. goto <bb 3>; [INV]
  1871. else
  1872. goto <bb 5>; [INV]
  1873. <bb 5> :
  1874. _2 = pcBuffer + x;
  1875. *_2 = 0;
  1876. D.8091 = pcBuffer + x;
  1877. <bb 6> :
  1878. <L3>:
  1879. return D.8091;
  1880. }
  1881. vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask)
  1882. {
  1883. struct ListItem_t * const pxIndex;
  1884. const UBaseType_t uxOnlyOneMutexHeld;
  1885. UBaseType_t uxPriorityToUse;
  1886. UBaseType_t uxPriorityUsedOnEntry;
  1887. struct TCB_t * const pxTCB;
  1888. <bb 2> :
  1889. pxTCB = pxMutexHolder;
  1890. uxOnlyOneMutexHeld = 1;
  1891. if (pxMutexHolder != 0B)
  1892. goto <bb 3>; [INV]
  1893. else
  1894. goto <bb 21>; [INV]
  1895. <bb 3> :
  1896. _1 = pxTCB->uxMutexesHeld;
  1897. if (_1 == 0)
  1898. goto <bb 4>; [INV]
  1899. else
  1900. goto <bb 6>; [INV]
  1901. <bb 4> :
  1902. vPortRaiseBASEPRI ();
  1903. <bb 5> :
  1904. goto <bb 5>; [INV]
  1905. <bb 6> :
  1906. _2 = pxTCB->uxBasePriority;
  1907. if (uxHighestPriorityWaitingTask > _2)
  1908. goto <bb 7>; [INV]
  1909. else
  1910. goto <bb 8>; [INV]
  1911. <bb 7> :
  1912. uxPriorityToUse = uxHighestPriorityWaitingTask;
  1913. goto <bb 9>; [INV]
  1914. <bb 8> :
  1915. uxPriorityToUse = pxTCB->uxBasePriority;
  1916. <bb 9> :
  1917. _3 = pxTCB->uxPriority;
  1918. if (uxPriorityToUse != _3)
  1919. goto <bb 10>; [INV]
  1920. else
  1921. goto <bb 21>; [INV]
  1922. <bb 10> :
  1923. _4 = pxTCB->uxMutexesHeld;
  1924. if (uxOnlyOneMutexHeld == _4)
  1925. goto <bb 11>; [INV]
  1926. else
  1927. goto <bb 21>; [INV]
  1928. <bb 11> :
  1929. pxCurrentTCB.119_5 = pxCurrentTCB;
  1930. if (pxTCB == pxCurrentTCB.119_5)
  1931. goto <bb 12>; [INV]
  1932. else
  1933. goto <bb 14>; [INV]
  1934. <bb 12> :
  1935. vPortRaiseBASEPRI ();
  1936. <bb 13> :
  1937. goto <bb 13>; [INV]
  1938. <bb 14> :
  1939. uxPriorityUsedOnEntry = pxTCB->uxPriority;
  1940. pxTCB->uxPriority = uxPriorityToUse;
  1941. _6 = pxTCB->xEventListItem.xItemValue;
  1942. _7 = (signed int) _6;
  1943. if (_7 >= 0)
  1944. goto <bb 15>; [INV]
  1945. else
  1946. goto <bb 16>; [INV]
  1947. <bb 15> :
  1948. _8 = 5 - uxPriorityToUse;
  1949. pxTCB->xEventListItem.xItemValue = _8;
  1950. <bb 16> :
  1951. _9 = pxTCB->xStateListItem.pvContainer;
  1952. _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry];
  1953. if (_9 == _10)
  1954. goto <bb 17>; [INV]
  1955. else
  1956. goto <bb 21>; [INV]
  1957. <bb 17> :
  1958. _11 = &pxTCB->xStateListItem;
  1959. _12 = uxListRemove (_11);
  1960. <bb 18> :
  1961. _13 = pxTCB->uxPriority;
  1962. uxTopReadyPriority.120_14 = uxTopReadyPriority;
  1963. if (_13 > uxTopReadyPriority.120_14)
  1964. goto <bb 19>; [INV]
  1965. else
  1966. goto <bb 20>; [INV]
  1967. <bb 19> :
  1968. _15 = pxTCB->uxPriority;
  1969. uxTopReadyPriority = _15;
  1970. <bb 20> :
  1971. _16 = pxTCB->uxPriority;
  1972. pxIndex = pxReadyTasksLists[_16].pxIndex;
  1973. pxTCB->xStateListItem.pxNext = pxIndex;
  1974. _17 = pxIndex->pxPrevious;
  1975. pxTCB->xStateListItem.pxPrevious = _17;
  1976. _18 = pxIndex->pxPrevious;
  1977. _19 = &pxTCB->xStateListItem;
  1978. _18->pxNext = _19;
  1979. _20 = &pxTCB->xStateListItem;
  1980. pxIndex->pxPrevious = _20;
  1981. _21 = pxTCB->uxPriority;
  1982. _22 = &pxReadyTasksLists[_21];
  1983. pxTCB->xStateListItem.pvContainer = _22;
  1984. _23 = pxTCB->uxPriority;
  1985. _24 = pxReadyTasksLists[_23].uxNumberOfItems;
  1986. _25 = _24 + 1;
  1987. pxReadyTasksLists[_23].uxNumberOfItems = _25;
  1988. <bb 21> :
  1989. return;
  1990. }
  1991. xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder)
  1992. {
  1993. struct ListItem_t * const pxIndex;
  1994. BaseType_t xReturn;
  1995. struct TCB_t * const pxTCB;
  1996. BaseType_t D.8062;
  1997. <bb 2> :
  1998. pxTCB = pxMutexHolder;
  1999. xReturn = 0;
  2000. if (pxMutexHolder != 0B)
  2001. goto <bb 3>; [INV]
  2002. else
  2003. goto <bb 15>; [INV]
  2004. <bb 3> :
  2005. pxCurrentTCB.117_1 = pxCurrentTCB;
  2006. if (pxTCB != pxCurrentTCB.117_1)
  2007. goto <bb 4>; [INV]
  2008. else
  2009. goto <bb 6>; [INV]
  2010. <bb 4> :
  2011. vPortRaiseBASEPRI ();
  2012. <bb 5> :
  2013. goto <bb 5>; [INV]
  2014. <bb 6> :
  2015. _2 = pxTCB->uxMutexesHeld;
  2016. if (_2 == 0)
  2017. goto <bb 7>; [INV]
  2018. else
  2019. goto <bb 9>; [INV]
  2020. <bb 7> :
  2021. vPortRaiseBASEPRI ();
  2022. <bb 8> :
  2023. goto <bb 8>; [INV]
  2024. <bb 9> :
  2025. _3 = pxTCB->uxMutexesHeld;
  2026. _4 = _3 + 4294967295;
  2027. pxTCB->uxMutexesHeld = _4;
  2028. _5 = pxTCB->uxPriority;
  2029. _6 = pxTCB->uxBasePriority;
  2030. if (_5 != _6)
  2031. goto <bb 10>; [INV]
  2032. else
  2033. goto <bb 15>; [INV]
  2034. <bb 10> :
  2035. _7 = pxTCB->uxMutexesHeld;
  2036. if (_7 == 0)
  2037. goto <bb 11>; [INV]
  2038. else
  2039. goto <bb 15>; [INV]
  2040. <bb 11> :
  2041. _8 = &pxTCB->xStateListItem;
  2042. _9 = uxListRemove (_8);
  2043. <bb 12> :
  2044. _10 = pxTCB->uxBasePriority;
  2045. pxTCB->uxPriority = _10;
  2046. _11 = pxTCB->uxPriority;
  2047. _12 = 5 - _11;
  2048. pxTCB->xEventListItem.xItemValue = _12;
  2049. _13 = pxTCB->uxPriority;
  2050. uxTopReadyPriority.118_14 = uxTopReadyPriority;
  2051. if (_13 > uxTopReadyPriority.118_14)
  2052. goto <bb 13>; [INV]
  2053. else
  2054. goto <bb 14>; [INV]
  2055. <bb 13> :
  2056. _15 = pxTCB->uxPriority;
  2057. uxTopReadyPriority = _15;
  2058. <bb 14> :
  2059. _16 = pxTCB->uxPriority;
  2060. pxIndex = pxReadyTasksLists[_16].pxIndex;
  2061. pxTCB->xStateListItem.pxNext = pxIndex;
  2062. _17 = pxIndex->pxPrevious;
  2063. pxTCB->xStateListItem.pxPrevious = _17;
  2064. _18 = pxIndex->pxPrevious;
  2065. _19 = &pxTCB->xStateListItem;
  2066. _18->pxNext = _19;
  2067. _20 = &pxTCB->xStateListItem;
  2068. pxIndex->pxPrevious = _20;
  2069. _21 = pxTCB->uxPriority;
  2070. _22 = &pxReadyTasksLists[_21];
  2071. pxTCB->xStateListItem.pvContainer = _22;
  2072. _23 = pxTCB->uxPriority;
  2073. _24 = pxReadyTasksLists[_23].uxNumberOfItems;
  2074. _25 = _24 + 1;
  2075. pxReadyTasksLists[_23].uxNumberOfItems = _25;
  2076. xReturn = 1;
  2077. <bb 15> :
  2078. D.8062 = xReturn;
  2079. <bb 16> :
  2080. <L20>:
  2081. return D.8062;
  2082. }
  2083. xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder)
  2084. {
  2085. struct ListItem_t * const pxIndex;
  2086. BaseType_t xReturn;
  2087. struct TCB_t * const pxMutexHolderTCB;
  2088. BaseType_t D.8042;
  2089. <bb 2> :
  2090. pxMutexHolderTCB = pxMutexHolder;
  2091. xReturn = 0;
  2092. if (pxMutexHolder != 0B)
  2093. goto <bb 3>; [INV]
  2094. else
  2095. goto <bb 15>; [INV]
  2096. <bb 3> :
  2097. _1 = pxMutexHolderTCB->uxPriority;
  2098. pxCurrentTCB.111_2 = pxCurrentTCB;
  2099. _3 = pxCurrentTCB.111_2->uxPriority;
  2100. if (_1 < _3)
  2101. goto <bb 4>; [INV]
  2102. else
  2103. goto <bb 13>; [INV]
  2104. <bb 4> :
  2105. _4 = pxMutexHolderTCB->xEventListItem.xItemValue;
  2106. _5 = (signed int) _4;
  2107. if (_5 >= 0)
  2108. goto <bb 5>; [INV]
  2109. else
  2110. goto <bb 6>; [INV]
  2111. <bb 5> :
  2112. pxCurrentTCB.112_6 = pxCurrentTCB;
  2113. _7 = pxCurrentTCB.112_6->uxPriority;
  2114. _8 = 5 - _7;
  2115. pxMutexHolderTCB->xEventListItem.xItemValue = _8;
  2116. <bb 6> :
  2117. _9 = pxMutexHolderTCB->xStateListItem.pvContainer;
  2118. _10 = pxMutexHolderTCB->uxPriority;
  2119. _11 = &pxReadyTasksLists[_10];
  2120. if (_9 == _11)
  2121. goto <bb 7>; [INV]
  2122. else
  2123. goto <bb 11>; [INV]
  2124. <bb 7> :
  2125. _12 = &pxMutexHolderTCB->xStateListItem;
  2126. _13 = uxListRemove (_12);
  2127. <bb 8> :
  2128. pxCurrentTCB.113_14 = pxCurrentTCB;
  2129. _15 = pxCurrentTCB.113_14->uxPriority;
  2130. pxMutexHolderTCB->uxPriority = _15;
  2131. _16 = pxMutexHolderTCB->uxPriority;
  2132. uxTopReadyPriority.114_17 = uxTopReadyPriority;
  2133. if (_16 > uxTopReadyPriority.114_17)
  2134. goto <bb 9>; [INV]
  2135. else
  2136. goto <bb 10>; [INV]
  2137. <bb 9> :
  2138. _18 = pxMutexHolderTCB->uxPriority;
  2139. uxTopReadyPriority = _18;
  2140. <bb 10> :
  2141. _19 = pxMutexHolderTCB->uxPriority;
  2142. pxIndex = pxReadyTasksLists[_19].pxIndex;
  2143. pxMutexHolderTCB->xStateListItem.pxNext = pxIndex;
  2144. _20 = pxIndex->pxPrevious;
  2145. pxMutexHolderTCB->xStateListItem.pxPrevious = _20;
  2146. _21 = pxIndex->pxPrevious;
  2147. _22 = &pxMutexHolderTCB->xStateListItem;
  2148. _21->pxNext = _22;
  2149. _23 = &pxMutexHolderTCB->xStateListItem;
  2150. pxIndex->pxPrevious = _23;
  2151. _24 = pxMutexHolderTCB->uxPriority;
  2152. _25 = &pxReadyTasksLists[_24];
  2153. pxMutexHolderTCB->xStateListItem.pvContainer = _25;
  2154. _26 = pxMutexHolderTCB->uxPriority;
  2155. _27 = pxReadyTasksLists[_26].uxNumberOfItems;
  2156. _28 = _27 + 1;
  2157. pxReadyTasksLists[_26].uxNumberOfItems = _28;
  2158. goto <bb 12>; [INV]
  2159. <bb 11> :
  2160. pxCurrentTCB.115_29 = pxCurrentTCB;
  2161. _30 = pxCurrentTCB.115_29->uxPriority;
  2162. pxMutexHolderTCB->uxPriority = _30;
  2163. <bb 12> :
  2164. xReturn = 1;
  2165. goto <bb 15>; [INV]
  2166. <bb 13> :
  2167. _31 = pxMutexHolderTCB->uxBasePriority;
  2168. pxCurrentTCB.116_32 = pxCurrentTCB;
  2169. _33 = pxCurrentTCB.116_32->uxPriority;
  2170. if (_31 < _33)
  2171. goto <bb 14>; [INV]
  2172. else
  2173. goto <bb 15>; [INV]
  2174. <bb 14> :
  2175. xReturn = 1;
  2176. <bb 15> :
  2177. D.8042 = xReturn;
  2178. <bb 16> :
  2179. <L20>:
  2180. return D.8042;
  2181. }
  2182. xTaskGetSchedulerState ()
  2183. {
  2184. BaseType_t xReturn;
  2185. BaseType_t D.8020;
  2186. <bb 2> :
  2187. xSchedulerRunning.109_1 = xSchedulerRunning;
  2188. if (xSchedulerRunning.109_1 == 0)
  2189. goto <bb 3>; [INV]
  2190. else
  2191. goto <bb 4>; [INV]
  2192. <bb 3> :
  2193. xReturn = 1;
  2194. goto <bb 7>; [INV]
  2195. <bb 4> :
  2196. uxSchedulerSuspended.110_2 = uxSchedulerSuspended;
  2197. if (uxSchedulerSuspended.110_2 == 0)
  2198. goto <bb 5>; [INV]
  2199. else
  2200. goto <bb 6>; [INV]
  2201. <bb 5> :
  2202. xReturn = 2;
  2203. goto <bb 7>; [INV]
  2204. <bb 6> :
  2205. xReturn = 0;
  2206. <bb 7> :
  2207. D.8020 = xReturn;
  2208. <bb 8> :
  2209. <L6>:
  2210. return D.8020;
  2211. }
  2212. xTaskGetCurrentTaskHandle ()
  2213. {
  2214. struct tskTaskControlBlock * xReturn;
  2215. struct tskTaskControlBlock * D.8012;
  2216. <bb 2> :
  2217. xReturn = pxCurrentTCB;
  2218. D.8012 = xReturn;
  2219. <bb 3> :
  2220. <L0>:
  2221. return D.8012;
  2222. }
  2223. prvResetNextTaskUnblockTime ()
  2224. {
  2225. <bb 2> :
  2226. pxDelayedTaskList.107_1 = pxDelayedTaskList;
  2227. _2 = pxDelayedTaskList.107_1->uxNumberOfItems;
  2228. if (_2 == 0)
  2229. goto <bb 3>; [INV]
  2230. else
  2231. goto <bb 4>; [INV]
  2232. <bb 3> :
  2233. xNextTaskUnblockTime = 4294967295;
  2234. goto <bb 5>; [INV]
  2235. <bb 4> :
  2236. pxDelayedTaskList.108_3 = pxDelayedTaskList;
  2237. _4 = pxDelayedTaskList.108_3->xListEnd.pxNext;
  2238. _5 = _4->xItemValue;
  2239. xNextTaskUnblockTime = _5;
  2240. <bb 5> :
  2241. return;
  2242. }
  2243. prvDeleteTCB (struct TCB_t * pxTCB)
  2244. {
  2245. <bb 2> :
  2246. _1 = pxTCB->pxStack;
  2247. vPortFree (_1);
  2248. vPortFree (pxTCB);
  2249. return;
  2250. }
  2251. uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask)
  2252. {
  2253. UBaseType_t uxReturn;
  2254. uint8_t * pucEndOfStack;
  2255. struct TCB_t * pxTCB;
  2256. UBaseType_t D.8007;
  2257. struct TCB_t * iftmp.106;
  2258. <bb 2> :
  2259. if (xTask == 0B)
  2260. goto <bb 3>; [INV]
  2261. else
  2262. goto <bb 4>; [INV]
  2263. <bb 3> :
  2264. iftmp.106 = pxCurrentTCB;
  2265. goto <bb 5>; [INV]
  2266. <bb 4> :
  2267. iftmp.106 = xTask;
  2268. <bb 5> :
  2269. pxTCB = iftmp.106;
  2270. pucEndOfStack = pxTCB->pxStack;
  2271. _1 = prvTaskCheckFreeStackSpace (pucEndOfStack);
  2272. uxReturn = (UBaseType_t) _1;
  2273. D.8007 = uxReturn;
  2274. <bb 6> :
  2275. <L3>:
  2276. return D.8007;
  2277. }
  2278. prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte)
  2279. {
  2280. uint32_t ulCount;
  2281. uint16_t D.8001;
  2282. <bb 2> :
  2283. ulCount = 0;
  2284. goto <bb 4>; [INV]
  2285. <bb 3> :
  2286. pucStackByte = pucStackByte + 1;
  2287. ulCount = ulCount + 1;
  2288. <bb 4> :
  2289. _1 = *pucStackByte;
  2290. if (_1 == 165)
  2291. goto <bb 3>; [INV]
  2292. else
  2293. goto <bb 5>; [INV]
  2294. <bb 5> :
  2295. ulCount = ulCount / 4;
  2296. D.8001 = (uint16_t) ulCount;
  2297. <bb 6> :
  2298. <L3>:
  2299. return D.8001;
  2300. }
  2301. prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState)
  2302. {
  2303. struct List_t * const pxConstList;
  2304. struct List_t * const pxConstList;
  2305. UBaseType_t uxTask;
  2306. struct TCB_t * pxFirstTCB;
  2307. struct TCB_t * pxNextTCB;
  2308. UBaseType_t D.7999;
  2309. <bb 2> :
  2310. uxTask = 0;
  2311. _1 = pxList->uxNumberOfItems;
  2312. if (_1 != 0)
  2313. goto <bb 3>; [INV]
  2314. else
  2315. goto <bb 9>; [INV]
  2316. <bb 3> :
  2317. pxConstList = pxList;
  2318. _2 = pxConstList->pxIndex;
  2319. _3 = _2->pxNext;
  2320. pxConstList->pxIndex = _3;
  2321. _4 = pxConstList->pxIndex;
  2322. _5 = &pxConstList->xListEnd;
  2323. if (_4 == _5)
  2324. goto <bb 4>; [INV]
  2325. else
  2326. goto <bb 5>; [INV]
  2327. <bb 4> :
  2328. _6 = pxConstList->pxIndex;
  2329. _7 = _6->pxNext;
  2330. pxConstList->pxIndex = _7;
  2331. <bb 5> :
  2332. _8 = pxConstList->pxIndex;
  2333. pxFirstTCB = _8->pvOwner;
  2334. <bb 6> :
  2335. pxConstList = pxList;
  2336. _9 = pxConstList->pxIndex;
  2337. _10 = _9->pxNext;
  2338. pxConstList->pxIndex = _10;
  2339. _11 = pxConstList->pxIndex;
  2340. _12 = &pxConstList->xListEnd;
  2341. if (_11 == _12)
  2342. goto <bb 7>; [INV]
  2343. else
  2344. goto <bb 8>; [INV]
  2345. <bb 7> :
  2346. _13 = pxConstList->pxIndex;
  2347. _14 = _13->pxNext;
  2348. pxConstList->pxIndex = _14;
  2349. <bb 8> :
  2350. _15 = pxConstList->pxIndex;
  2351. pxNextTCB = _15->pvOwner;
  2352. _16 = uxTask * 36;
  2353. _17 = pxTaskStatusArray + _16;
  2354. vTaskGetInfo (pxNextTCB, _17, 1, eState);
  2355. uxTask = uxTask + 1;
  2356. if (pxNextTCB != pxFirstTCB)
  2357. goto <bb 6>; [INV]
  2358. else
  2359. goto <bb 9>; [INV]
  2360. <bb 9> :
  2361. D.7999 = uxTask;
  2362. <bb 10> :
  2363. <L9>:
  2364. return D.7999;
  2365. }
  2366. vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState)
  2367. {
  2368. struct TCB_t * pxTCB;
  2369. struct TCB_t * iftmp.104;
  2370. <bb 2> :
  2371. if (xTask == 0B)
  2372. goto <bb 3>; [INV]
  2373. else
  2374. goto <bb 4>; [INV]
  2375. <bb 3> :
  2376. iftmp.104 = pxCurrentTCB;
  2377. goto <bb 5>; [INV]
  2378. <bb 4> :
  2379. iftmp.104 = xTask;
  2380. <bb 5> :
  2381. pxTCB = iftmp.104;
  2382. pxTaskStatus->xHandle = pxTCB;
  2383. _1 = &pxTCB->pcTaskName[0];
  2384. pxTaskStatus->pcTaskName = _1;
  2385. _2 = pxTCB->uxPriority;
  2386. pxTaskStatus->uxCurrentPriority = _2;
  2387. _3 = pxTCB->pxStack;
  2388. pxTaskStatus->pxStackBase = _3;
  2389. _4 = pxTCB->uxTCBNumber;
  2390. pxTaskStatus->xTaskNumber = _4;
  2391. _5 = pxTCB->uxBasePriority;
  2392. pxTaskStatus->uxBasePriority = _5;
  2393. pxTaskStatus->ulRunTimeCounter = 0;
  2394. if (eState != 5)
  2395. goto <bb 6>; [INV]
  2396. else
  2397. goto <bb 12>; [INV]
  2398. <bb 6> :
  2399. pxCurrentTCB.105_6 = pxCurrentTCB;
  2400. if (pxTCB == pxCurrentTCB.105_6)
  2401. goto <bb 7>; [INV]
  2402. else
  2403. goto <bb 8>; [INV]
  2404. <bb 7> :
  2405. pxTaskStatus->eCurrentState = 0;
  2406. goto <bb 13>; [INV]
  2407. <bb 8> :
  2408. pxTaskStatus->eCurrentState = eState;
  2409. if (eState == 3)
  2410. goto <bb 9>; [INV]
  2411. else
  2412. goto <bb 13>; [INV]
  2413. <bb 9> :
  2414. vTaskSuspendAll ();
  2415. _7 = pxTCB->xEventListItem.pvContainer;
  2416. if (_7 != 0B)
  2417. goto <bb 10>; [INV]
  2418. else
  2419. goto <bb 11>; [INV]
  2420. <bb 10> :
  2421. pxTaskStatus->eCurrentState = 2;
  2422. <bb 11> :
  2423. xTaskResumeAll ();
  2424. goto <bb 13>; [INV]
  2425. <bb 12> :
  2426. _8 = eTaskGetState (pxTCB);
  2427. pxTaskStatus->eCurrentState = _8;
  2428. <bb 13> :
  2429. if (xGetFreeStackSpace != 0)
  2430. goto <bb 14>; [INV]
  2431. else
  2432. goto <bb 15>; [INV]
  2433. <bb 14> :
  2434. _9 = pxTCB->pxStack;
  2435. _10 = prvTaskCheckFreeStackSpace (_9);
  2436. pxTaskStatus->usStackHighWaterMark = _10;
  2437. goto <bb 16>; [INV]
  2438. <bb 15> :
  2439. pxTaskStatus->usStackHighWaterMark = 0;
  2440. <bb 16> :
  2441. return;
  2442. }
  2443. prvCheckTasksWaitingTermination ()
  2444. {
  2445. struct TCB_t * pxTCB;
  2446. <bb 2> :
  2447. goto <bb 4>; [INV]
  2448. <bb 3> :
  2449. vPortEnterCritical ();
  2450. _1 = xTasksWaitingTermination.xListEnd.pxNext;
  2451. pxTCB = _1->pvOwner;
  2452. _2 = &pxTCB->xStateListItem;
  2453. uxListRemove (_2);
  2454. uxCurrentNumberOfTasks.101_3 = uxCurrentNumberOfTasks;
  2455. _4 = uxCurrentNumberOfTasks.101_3 + 4294967295;
  2456. uxCurrentNumberOfTasks = _4;
  2457. uxDeletedTasksWaitingCleanUp.102_5 = uxDeletedTasksWaitingCleanUp;
  2458. _6 = uxDeletedTasksWaitingCleanUp.102_5 + 4294967295;
  2459. uxDeletedTasksWaitingCleanUp = _6;
  2460. vPortExitCritical ();
  2461. prvDeleteTCB (pxTCB);
  2462. <bb 4> :
  2463. uxDeletedTasksWaitingCleanUp.103_7 = uxDeletedTasksWaitingCleanUp;
  2464. if (uxDeletedTasksWaitingCleanUp.103_7 != 0)
  2465. goto <bb 3>; [INV]
  2466. else
  2467. goto <bb 5>; [INV]
  2468. <bb 5> :
  2469. return;
  2470. }
  2471. prvInitialiseTaskLists ()
  2472. {
  2473. UBaseType_t uxPriority;
  2474. <bb 2> :
  2475. uxPriority = 0;
  2476. goto <bb 4>; [INV]
  2477. <bb 3> :
  2478. _1 = &pxReadyTasksLists[uxPriority];
  2479. vListInitialise (_1);
  2480. uxPriority = uxPriority + 1;
  2481. <bb 4> :
  2482. if (uxPriority <= 4)
  2483. goto <bb 3>; [INV]
  2484. else
  2485. goto <bb 5>; [INV]
  2486. <bb 5> :
  2487. vListInitialise (&xDelayedTaskList1);
  2488. vListInitialise (&xDelayedTaskList2);
  2489. vListInitialise (&xPendingReadyList);
  2490. vListInitialise (&xTasksWaitingTermination);
  2491. vListInitialise (&xSuspendedTaskList);
  2492. pxDelayedTaskList = &xDelayedTaskList1;
  2493. pxOverflowDelayedTaskList = &xDelayedTaskList2;
  2494. return;
  2495. }
  2496. prvIdleTask (void * pvParameters)
  2497. {
  2498. <bb 2> :
  2499. prvCheckTasksWaitingTermination ();
  2500. _1 = pxReadyTasksLists[0].uxNumberOfItems;
  2501. if (_1 > 1)
  2502. goto <bb 3>; [INV]
  2503. else
  2504. goto <bb 4>; [INV]
  2505. <bb 3> :
  2506. _2 = 3758157060B;
  2507. *_2 = 268435456;
  2508. __asm__ __volatile__("dsb" : : : "memory");
  2509. __asm__ __volatile__("isb");
  2510. <bb 4> :
  2511. goto <bb 2>; [INV]
  2512. }
  2513. vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle)
  2514. {
  2515. struct TCB_t * pxTCB;
  2516. <bb 2> :
  2517. if (xTask != 0B)
  2518. goto <bb 3>; [INV]
  2519. else
  2520. goto <bb 4>; [INV]
  2521. <bb 3> :
  2522. pxTCB = xTask;
  2523. pxTCB->uxTaskNumber = uxHandle;
  2524. <bb 4> :
  2525. return;
  2526. }
  2527. uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask)
  2528. {
  2529. const struct TCB_t * pxTCB;
  2530. UBaseType_t uxReturn;
  2531. UBaseType_t D.7968;
  2532. <bb 2> :
  2533. if (xTask != 0B)
  2534. goto <bb 3>; [INV]
  2535. else
  2536. goto <bb 4>; [INV]
  2537. <bb 3> :
  2538. pxTCB = xTask;
  2539. uxReturn = pxTCB->uxTaskNumber;
  2540. goto <bb 5>; [INV]
  2541. <bb 4> :
  2542. uxReturn = 0;
  2543. <bb 5> :
  2544. D.7968 = uxReturn;
  2545. <bb 6> :
  2546. <L3>:
  2547. return D.7968;
  2548. }
  2549. vTaskMissedYield ()
  2550. {
  2551. <bb 2> :
  2552. xYieldPending = 1;
  2553. return;
  2554. }
  2555. xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait)
  2556. {
  2557. const TickType_t xElapsedTime;
  2558. const TickType_t xConstTickCount;
  2559. BaseType_t xReturn;
  2560. BaseType_t D.7963;
  2561. <bb 2> :
  2562. if (pxTimeOut == 0B)
  2563. goto <bb 3>; [INV]
  2564. else
  2565. goto <bb 5>; [INV]
  2566. <bb 3> :
  2567. vPortRaiseBASEPRI ();
  2568. <bb 4> :
  2569. goto <bb 4>; [INV]
  2570. <bb 5> :
  2571. if (pxTicksToWait == 0B)
  2572. goto <bb 6>; [INV]
  2573. else
  2574. goto <bb 8>; [INV]
  2575. <bb 6> :
  2576. vPortRaiseBASEPRI ();
  2577. <bb 7> :
  2578. goto <bb 7>; [INV]
  2579. <bb 8> :
  2580. vPortEnterCritical ();
  2581. xConstTickCount = xTickCount;
  2582. _1 = pxTimeOut->xTimeOnEntering;
  2583. xElapsedTime = xConstTickCount - _1;
  2584. pxCurrentTCB.98_2 = pxCurrentTCB;
  2585. _3 = pxCurrentTCB.98_2->ucDelayAborted;
  2586. if (_3 != 0)
  2587. goto <bb 9>; [INV]
  2588. else
  2589. goto <bb 10>; [INV]
  2590. <bb 9> :
  2591. pxCurrentTCB.99_4 = pxCurrentTCB;
  2592. pxCurrentTCB.99_4->ucDelayAborted = 0;
  2593. xReturn = 1;
  2594. goto <bb 18>; [INV]
  2595. <bb 10> :
  2596. _5 = *pxTicksToWait;
  2597. if (_5 == 4294967295)
  2598. goto <bb 11>; [INV]
  2599. else
  2600. goto <bb 12>; [INV]
  2601. <bb 11> :
  2602. xReturn = 0;
  2603. goto <bb 18>; [INV]
  2604. <bb 12> :
  2605. _6 = pxTimeOut->xOverflowCount;
  2606. xNumOfOverflows.100_7 = xNumOfOverflows;
  2607. if (_6 != xNumOfOverflows.100_7)
  2608. goto <bb 13>; [INV]
  2609. else
  2610. goto <bb 15>; [INV]
  2611. <bb 13> :
  2612. _8 = pxTimeOut->xTimeOnEntering;
  2613. if (xConstTickCount >= _8)
  2614. goto <bb 14>; [INV]
  2615. else
  2616. goto <bb 15>; [INV]
  2617. <bb 14> :
  2618. xReturn = 1;
  2619. *pxTicksToWait = 0;
  2620. goto <bb 18>; [INV]
  2621. <bb 15> :
  2622. _9 = *pxTicksToWait;
  2623. if (xElapsedTime < _9)
  2624. goto <bb 16>; [INV]
  2625. else
  2626. goto <bb 17>; [INV]
  2627. <bb 16> :
  2628. _10 = *pxTicksToWait;
  2629. _11 = _10 - xElapsedTime;
  2630. *pxTicksToWait = _11;
  2631. vTaskInternalSetTimeOutState (pxTimeOut);
  2632. xReturn = 0;
  2633. goto <bb 18>; [INV]
  2634. <bb 17> :
  2635. *pxTicksToWait = 0;
  2636. xReturn = 1;
  2637. <bb 18> :
  2638. vPortExitCritical ();
  2639. D.7963 = xReturn;
  2640. <bb 19> :
  2641. <L19>:
  2642. return D.7963;
  2643. }
  2644. vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  2645. {
  2646. <bb 2> :
  2647. xNumOfOverflows.96_1 = xNumOfOverflows;
  2648. pxTimeOut->xOverflowCount = xNumOfOverflows.96_1;
  2649. xTickCount.97_2 = xTickCount;
  2650. pxTimeOut->xTimeOnEntering = xTickCount.97_2;
  2651. return;
  2652. }
  2653. vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  2654. {
  2655. <bb 2> :
  2656. if (pxTimeOut == 0B)
  2657. goto <bb 3>; [INV]
  2658. else
  2659. goto <bb 5>; [INV]
  2660. <bb 3> :
  2661. vPortRaiseBASEPRI ();
  2662. <bb 4> :
  2663. goto <bb 4>; [INV]
  2664. <bb 5> :
  2665. vPortEnterCritical ();
  2666. xNumOfOverflows.94_1 = xNumOfOverflows;
  2667. pxTimeOut->xOverflowCount = xNumOfOverflows.94_1;
  2668. xTickCount.95_2 = xTickCount;
  2669. pxTimeOut->xTimeOnEntering = xTickCount.95_2;
  2670. vPortExitCritical ();
  2671. return;
  2672. }
  2673. vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue)
  2674. {
  2675. struct ListItem_t * const pxIndex;
  2676. struct List_t * const pxList;
  2677. struct List_t * const pxList;
  2678. struct TCB_t * pxUnblockedTCB;
  2679. <bb 2> :
  2680. uxSchedulerSuspended.91_1 = uxSchedulerSuspended;
  2681. if (uxSchedulerSuspended.91_1 == 0)
  2682. goto <bb 3>; [INV]
  2683. else
  2684. goto <bb 5>; [INV]
  2685. <bb 3> :
  2686. vPortRaiseBASEPRI ();
  2687. <bb 4> :
  2688. goto <bb 4>; [INV]
  2689. <bb 5> :
  2690. _2 = xItemValue | 2147483648;
  2691. pxEventListItem->xItemValue = _2;
  2692. pxUnblockedTCB = pxEventListItem->pvOwner;
  2693. if (pxUnblockedTCB == 0B)
  2694. goto <bb 6>; [INV]
  2695. else
  2696. goto <bb 8>; [INV]
  2697. <bb 6> :
  2698. vPortRaiseBASEPRI ();
  2699. <bb 7> :
  2700. goto <bb 7>; [INV]
  2701. <bb 8> :
  2702. pxList = pxEventListItem->pvContainer;
  2703. _3 = pxEventListItem->pxNext;
  2704. _4 = pxEventListItem->pxPrevious;
  2705. _3->pxPrevious = _4;
  2706. _5 = pxEventListItem->pxPrevious;
  2707. _6 = pxEventListItem->pxNext;
  2708. _5->pxNext = _6;
  2709. _7 = pxList->pxIndex;
  2710. if (pxEventListItem == _7)
  2711. goto <bb 9>; [INV]
  2712. else
  2713. goto <bb 10>; [INV]
  2714. <bb 9> :
  2715. _8 = pxEventListItem->pxPrevious;
  2716. pxList->pxIndex = _8;
  2717. <bb 10> :
  2718. pxEventListItem->pvContainer = 0B;
  2719. _9 = pxList->uxNumberOfItems;
  2720. _10 = _9 + 4294967295;
  2721. pxList->uxNumberOfItems = _10;
  2722. pxList = pxUnblockedTCB->xStateListItem.pvContainer;
  2723. _11 = pxUnblockedTCB->xStateListItem.pxNext;
  2724. _12 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2725. _11->pxPrevious = _12;
  2726. _13 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2727. _14 = pxUnblockedTCB->xStateListItem.pxNext;
  2728. _13->pxNext = _14;
  2729. _15 = pxList->pxIndex;
  2730. _16 = &pxUnblockedTCB->xStateListItem;
  2731. if (_15 == _16)
  2732. goto <bb 11>; [INV]
  2733. else
  2734. goto <bb 12>; [INV]
  2735. <bb 11> :
  2736. _17 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2737. pxList->pxIndex = _17;
  2738. <bb 12> :
  2739. pxUnblockedTCB->xStateListItem.pvContainer = 0B;
  2740. _18 = pxList->uxNumberOfItems;
  2741. _19 = _18 + 4294967295;
  2742. pxList->uxNumberOfItems = _19;
  2743. _20 = pxUnblockedTCB->uxPriority;
  2744. uxTopReadyPriority.92_21 = uxTopReadyPriority;
  2745. if (_20 > uxTopReadyPriority.92_21)
  2746. goto <bb 13>; [INV]
  2747. else
  2748. goto <bb 14>; [INV]
  2749. <bb 13> :
  2750. _22 = pxUnblockedTCB->uxPriority;
  2751. uxTopReadyPriority = _22;
  2752. <bb 14> :
  2753. _23 = pxUnblockedTCB->uxPriority;
  2754. pxIndex = pxReadyTasksLists[_23].pxIndex;
  2755. pxUnblockedTCB->xStateListItem.pxNext = pxIndex;
  2756. _24 = pxIndex->pxPrevious;
  2757. pxUnblockedTCB->xStateListItem.pxPrevious = _24;
  2758. _25 = pxIndex->pxPrevious;
  2759. _26 = &pxUnblockedTCB->xStateListItem;
  2760. _25->pxNext = _26;
  2761. _27 = &pxUnblockedTCB->xStateListItem;
  2762. pxIndex->pxPrevious = _27;
  2763. _28 = pxUnblockedTCB->uxPriority;
  2764. _29 = &pxReadyTasksLists[_28];
  2765. pxUnblockedTCB->xStateListItem.pvContainer = _29;
  2766. _30 = pxUnblockedTCB->uxPriority;
  2767. _31 = pxReadyTasksLists[_30].uxNumberOfItems;
  2768. _32 = _31 + 1;
  2769. pxReadyTasksLists[_30].uxNumberOfItems = _32;
  2770. _33 = pxUnblockedTCB->uxPriority;
  2771. pxCurrentTCB.93_34 = pxCurrentTCB;
  2772. _35 = pxCurrentTCB.93_34->uxPriority;
  2773. if (_33 > _35)
  2774. goto <bb 15>; [INV]
  2775. else
  2776. goto <bb 16>; [INV]
  2777. <bb 15> :
  2778. xYieldPending = 1;
  2779. <bb 16> :
  2780. return;
  2781. }
  2782. xTaskRemoveFromEventList (const struct List_t * const pxEventList)
  2783. {
  2784. struct ListItem_t * const pxIndex;
  2785. struct ListItem_t * const pxIndex;
  2786. struct List_t * const pxList;
  2787. struct List_t * const pxList;
  2788. BaseType_t xReturn;
  2789. struct TCB_t * pxUnblockedTCB;
  2790. BaseType_t D.7930;
  2791. <bb 2> :
  2792. _1 = pxEventList->xListEnd.pxNext;
  2793. pxUnblockedTCB = _1->pvOwner;
  2794. if (pxUnblockedTCB == 0B)
  2795. goto <bb 3>; [INV]
  2796. else
  2797. goto <bb 5>; [INV]
  2798. <bb 3> :
  2799. vPortRaiseBASEPRI ();
  2800. <bb 4> :
  2801. goto <bb 4>; [INV]
  2802. <bb 5> :
  2803. pxList = pxUnblockedTCB->xEventListItem.pvContainer;
  2804. _2 = pxUnblockedTCB->xEventListItem.pxNext;
  2805. _3 = pxUnblockedTCB->xEventListItem.pxPrevious;
  2806. _2->pxPrevious = _3;
  2807. _4 = pxUnblockedTCB->xEventListItem.pxPrevious;
  2808. _5 = pxUnblockedTCB->xEventListItem.pxNext;
  2809. _4->pxNext = _5;
  2810. _6 = pxList->pxIndex;
  2811. _7 = &pxUnblockedTCB->xEventListItem;
  2812. if (_6 == _7)
  2813. goto <bb 6>; [INV]
  2814. else
  2815. goto <bb 7>; [INV]
  2816. <bb 6> :
  2817. _8 = pxUnblockedTCB->xEventListItem.pxPrevious;
  2818. pxList->pxIndex = _8;
  2819. <bb 7> :
  2820. pxUnblockedTCB->xEventListItem.pvContainer = 0B;
  2821. _9 = pxList->uxNumberOfItems;
  2822. _10 = _9 + 4294967295;
  2823. pxList->uxNumberOfItems = _10;
  2824. uxSchedulerSuspended.88_11 = uxSchedulerSuspended;
  2825. if (uxSchedulerSuspended.88_11 == 0)
  2826. goto <bb 8>; [INV]
  2827. else
  2828. goto <bb 13>; [INV]
  2829. <bb 8> :
  2830. pxList = pxUnblockedTCB->xStateListItem.pvContainer;
  2831. _12 = pxUnblockedTCB->xStateListItem.pxNext;
  2832. _13 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2833. _12->pxPrevious = _13;
  2834. _14 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2835. _15 = pxUnblockedTCB->xStateListItem.pxNext;
  2836. _14->pxNext = _15;
  2837. _16 = pxList->pxIndex;
  2838. _17 = &pxUnblockedTCB->xStateListItem;
  2839. if (_16 == _17)
  2840. goto <bb 9>; [INV]
  2841. else
  2842. goto <bb 10>; [INV]
  2843. <bb 9> :
  2844. _18 = pxUnblockedTCB->xStateListItem.pxPrevious;
  2845. pxList->pxIndex = _18;
  2846. <bb 10> :
  2847. pxUnblockedTCB->xStateListItem.pvContainer = 0B;
  2848. _19 = pxList->uxNumberOfItems;
  2849. _20 = _19 + 4294967295;
  2850. pxList->uxNumberOfItems = _20;
  2851. _21 = pxUnblockedTCB->uxPriority;
  2852. uxTopReadyPriority.89_22 = uxTopReadyPriority;
  2853. if (_21 > uxTopReadyPriority.89_22)
  2854. goto <bb 11>; [INV]
  2855. else
  2856. goto <bb 12>; [INV]
  2857. <bb 11> :
  2858. _23 = pxUnblockedTCB->uxPriority;
  2859. uxTopReadyPriority = _23;
  2860. <bb 12> :
  2861. _24 = pxUnblockedTCB->uxPriority;
  2862. pxIndex = pxReadyTasksLists[_24].pxIndex;
  2863. pxUnblockedTCB->xStateListItem.pxNext = pxIndex;
  2864. _25 = pxIndex->pxPrevious;
  2865. pxUnblockedTCB->xStateListItem.pxPrevious = _25;
  2866. _26 = pxIndex->pxPrevious;
  2867. _27 = &pxUnblockedTCB->xStateListItem;
  2868. _26->pxNext = _27;
  2869. _28 = &pxUnblockedTCB->xStateListItem;
  2870. pxIndex->pxPrevious = _28;
  2871. _29 = pxUnblockedTCB->uxPriority;
  2872. _30 = &pxReadyTasksLists[_29];
  2873. pxUnblockedTCB->xStateListItem.pvContainer = _30;
  2874. _31 = pxUnblockedTCB->uxPriority;
  2875. _32 = pxReadyTasksLists[_31].uxNumberOfItems;
  2876. _33 = _32 + 1;
  2877. pxReadyTasksLists[_31].uxNumberOfItems = _33;
  2878. goto <bb 14>; [INV]
  2879. <bb 13> :
  2880. pxIndex = xPendingReadyList.pxIndex;
  2881. pxUnblockedTCB->xEventListItem.pxNext = pxIndex;
  2882. _34 = pxIndex->pxPrevious;
  2883. pxUnblockedTCB->xEventListItem.pxPrevious = _34;
  2884. _35 = pxIndex->pxPrevious;
  2885. _36 = &pxUnblockedTCB->xEventListItem;
  2886. _35->pxNext = _36;
  2887. _37 = &pxUnblockedTCB->xEventListItem;
  2888. pxIndex->pxPrevious = _37;
  2889. pxUnblockedTCB->xEventListItem.pvContainer = &xPendingReadyList;
  2890. _38 = xPendingReadyList.uxNumberOfItems;
  2891. _39 = _38 + 1;
  2892. xPendingReadyList.uxNumberOfItems = _39;
  2893. <bb 14> :
  2894. _40 = pxUnblockedTCB->uxPriority;
  2895. pxCurrentTCB.90_41 = pxCurrentTCB;
  2896. _42 = pxCurrentTCB.90_41->uxPriority;
  2897. if (_40 > _42)
  2898. goto <bb 15>; [INV]
  2899. else
  2900. goto <bb 16>; [INV]
  2901. <bb 15> :
  2902. xReturn = 1;
  2903. xYieldPending = 1;
  2904. goto <bb 17>; [INV]
  2905. <bb 16> :
  2906. xReturn = 0;
  2907. <bb 17> :
  2908. D.7930 = xReturn;
  2909. <bb 18> :
  2910. <L15>:
  2911. return D.7930;
  2912. }
  2913. vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  2914. {
  2915. struct ListItem_t * const pxIndex;
  2916. <bb 2> :
  2917. if (pxEventList == 0B)
  2918. goto <bb 3>; [INV]
  2919. else
  2920. goto <bb 5>; [INV]
  2921. <bb 3> :
  2922. vPortRaiseBASEPRI ();
  2923. <bb 4> :
  2924. goto <bb 4>; [INV]
  2925. <bb 5> :
  2926. pxIndex = pxEventList->pxIndex;
  2927. pxCurrentTCB.83_1 = pxCurrentTCB;
  2928. pxCurrentTCB.83_1->xEventListItem.pxNext = pxIndex;
  2929. pxCurrentTCB.84_2 = pxCurrentTCB;
  2930. _3 = pxIndex->pxPrevious;
  2931. pxCurrentTCB.84_2->xEventListItem.pxPrevious = _3;
  2932. pxCurrentTCB.85_4 = pxCurrentTCB;
  2933. _5 = pxIndex->pxPrevious;
  2934. _6 = &pxCurrentTCB.85_4->xEventListItem;
  2935. _5->pxNext = _6;
  2936. pxCurrentTCB.86_7 = pxCurrentTCB;
  2937. _8 = &pxCurrentTCB.86_7->xEventListItem;
  2938. pxIndex->pxPrevious = _8;
  2939. pxCurrentTCB.87_9 = pxCurrentTCB;
  2940. pxCurrentTCB.87_9->xEventListItem.pvContainer = pxEventList;
  2941. _10 = pxEventList->uxNumberOfItems;
  2942. _11 = _10 + 1;
  2943. pxEventList->uxNumberOfItems = _11;
  2944. if (xWaitIndefinitely != 0)
  2945. goto <bb 6>; [INV]
  2946. else
  2947. goto <bb 7>; [INV]
  2948. <bb 6> :
  2949. xTicksToWait = 4294967295;
  2950. <bb 7> :
  2951. prvAddCurrentTaskToDelayedList (xTicksToWait, xWaitIndefinitely);
  2952. return;
  2953. }
  2954. vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
  2955. {
  2956. struct ListItem_t * const pxIndex;
  2957. <bb 2> :
  2958. if (pxEventList == 0B)
  2959. goto <bb 3>; [INV]
  2960. else
  2961. goto <bb 5>; [INV]
  2962. <bb 3> :
  2963. vPortRaiseBASEPRI ();
  2964. <bb 4> :
  2965. goto <bb 4>; [INV]
  2966. <bb 5> :
  2967. uxSchedulerSuspended.76_1 = uxSchedulerSuspended;
  2968. if (uxSchedulerSuspended.76_1 == 0)
  2969. goto <bb 6>; [INV]
  2970. else
  2971. goto <bb 8>; [INV]
  2972. <bb 6> :
  2973. vPortRaiseBASEPRI ();
  2974. <bb 7> :
  2975. goto <bb 7>; [INV]
  2976. <bb 8> :
  2977. pxCurrentTCB.77_2 = pxCurrentTCB;
  2978. _3 = xItemValue | 2147483648;
  2979. pxCurrentTCB.77_2->xEventListItem.xItemValue = _3;
  2980. pxIndex = pxEventList->pxIndex;
  2981. pxCurrentTCB.78_4 = pxCurrentTCB;
  2982. pxCurrentTCB.78_4->xEventListItem.pxNext = pxIndex;
  2983. pxCurrentTCB.79_5 = pxCurrentTCB;
  2984. _6 = pxIndex->pxPrevious;
  2985. pxCurrentTCB.79_5->xEventListItem.pxPrevious = _6;
  2986. pxCurrentTCB.80_7 = pxCurrentTCB;
  2987. _8 = pxIndex->pxPrevious;
  2988. _9 = &pxCurrentTCB.80_7->xEventListItem;
  2989. _8->pxNext = _9;
  2990. pxCurrentTCB.81_10 = pxCurrentTCB;
  2991. _11 = &pxCurrentTCB.81_10->xEventListItem;
  2992. pxIndex->pxPrevious = _11;
  2993. pxCurrentTCB.82_12 = pxCurrentTCB;
  2994. pxCurrentTCB.82_12->xEventListItem.pvContainer = pxEventList;
  2995. _13 = pxEventList->uxNumberOfItems;
  2996. _14 = _13 + 1;
  2997. pxEventList->uxNumberOfItems = _14;
  2998. prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  2999. return;
  3000. }
  3001. vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait)
  3002. {
  3003. <bb 2> :
  3004. if (pxEventList == 0B)
  3005. goto <bb 3>; [INV]
  3006. else
  3007. goto <bb 5>; [INV]
  3008. <bb 3> :
  3009. vPortRaiseBASEPRI ();
  3010. <bb 4> :
  3011. goto <bb 4>; [INV]
  3012. <bb 5> :
  3013. pxCurrentTCB.75_1 = pxCurrentTCB;
  3014. _2 = &pxCurrentTCB.75_1->xEventListItem;
  3015. vListInsert (pxEventList, _2);
  3016. prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  3017. return;
  3018. }
  3019. __attribute__((used))
  3020. vTaskSwitchContext ()
  3021. {
  3022. struct List_t * const pxConstList;
  3023. UBaseType_t uxTopPriority;
  3024. <bb 2> :
  3025. uxSchedulerSuspended.74_1 = uxSchedulerSuspended;
  3026. if (uxSchedulerSuspended.74_1 != 0)
  3027. goto <bb 3>; [INV]
  3028. else
  3029. goto <bb 4>; [INV]
  3030. <bb 3> :
  3031. xYieldPending = 1;
  3032. goto <bb 13>; [INV]
  3033. <bb 4> :
  3034. xYieldPending = 0;
  3035. uxTopPriority = uxTopReadyPriority;
  3036. goto <bb 9>; [INV]
  3037. <bb 5> :
  3038. if (uxTopPriority == 0)
  3039. goto <bb 6>; [INV]
  3040. else
  3041. goto <bb 8>; [INV]
  3042. <bb 6> :
  3043. vPortRaiseBASEPRI ();
  3044. <bb 7> :
  3045. goto <bb 7>; [INV]
  3046. <bb 8> :
  3047. uxTopPriority = uxTopPriority + 4294967295;
  3048. <bb 9> :
  3049. _2 = pxReadyTasksLists[uxTopPriority].uxNumberOfItems;
  3050. if (_2 == 0)
  3051. goto <bb 5>; [INV]
  3052. else
  3053. goto <bb 10>; [INV]
  3054. <bb 10> :
  3055. pxConstList = &pxReadyTasksLists[uxTopPriority];
  3056. _3 = pxConstList->pxIndex;
  3057. _4 = _3->pxNext;
  3058. pxConstList->pxIndex = _4;
  3059. _5 = pxConstList->pxIndex;
  3060. _6 = &pxConstList->xListEnd;
  3061. if (_5 == _6)
  3062. goto <bb 11>; [INV]
  3063. else
  3064. goto <bb 12>; [INV]
  3065. <bb 11> :
  3066. _7 = pxConstList->pxIndex;
  3067. _8 = _7->pxNext;
  3068. pxConstList->pxIndex = _8;
  3069. <bb 12> :
  3070. _9 = pxConstList->pxIndex;
  3071. _10 = _9->pvOwner;
  3072. pxCurrentTCB = _10;
  3073. uxTopReadyPriority = uxTopPriority;
  3074. <bb 13> :
  3075. return;
  3076. }
  3077. xTaskIncrementTick ()
  3078. {
  3079. struct ListItem_t * const pxIndex;
  3080. struct List_t * const pxList;
  3081. struct List_t * const pxList;
  3082. struct List_t * pxTemp;
  3083. const TickType_t xConstTickCount;
  3084. BaseType_t xSwitchRequired;
  3085. TickType_t xItemValue;
  3086. struct TCB_t * pxTCB;
  3087. BaseType_t D.7897;
  3088. <bb 2> :
  3089. xSwitchRequired = 0;
  3090. uxSchedulerSuspended.61_1 = uxSchedulerSuspended;
  3091. if (uxSchedulerSuspended.61_1 == 0)
  3092. goto <bb 3>; [INV]
  3093. else
  3094. goto <bb 28>; [INV]
  3095. <bb 3> :
  3096. xTickCount.62_2 = xTickCount;
  3097. xConstTickCount = xTickCount.62_2 + 1;
  3098. xTickCount = xConstTickCount;
  3099. if (xConstTickCount == 0)
  3100. goto <bb 4>; [INV]
  3101. else
  3102. goto <bb 8>; [INV]
  3103. <bb 4> :
  3104. pxDelayedTaskList.63_3 = pxDelayedTaskList;
  3105. _4 = pxDelayedTaskList.63_3->uxNumberOfItems;
  3106. if (_4 != 0)
  3107. goto <bb 5>; [INV]
  3108. else
  3109. goto <bb 7>; [INV]
  3110. <bb 5> :
  3111. vPortRaiseBASEPRI ();
  3112. <bb 6> :
  3113. goto <bb 6>; [INV]
  3114. <bb 7> :
  3115. pxTemp = pxDelayedTaskList;
  3116. pxOverflowDelayedTaskList.64_5 = pxOverflowDelayedTaskList;
  3117. pxDelayedTaskList = pxOverflowDelayedTaskList.64_5;
  3118. pxOverflowDelayedTaskList = pxTemp;
  3119. xNumOfOverflows.65_6 = xNumOfOverflows;
  3120. _7 = xNumOfOverflows.65_6 + 1;
  3121. xNumOfOverflows = _7;
  3122. prvResetNextTaskUnblockTime ();
  3123. <bb 8> :
  3124. xNextTaskUnblockTime.66_8 = xNextTaskUnblockTime;
  3125. if (xConstTickCount >= xNextTaskUnblockTime.66_8)
  3126. goto <bb 9>; [INV]
  3127. else
  3128. goto <bb 24>; [INV]
  3129. <bb 9> :
  3130. pxDelayedTaskList.67_9 = pxDelayedTaskList;
  3131. _10 = pxDelayedTaskList.67_9->uxNumberOfItems;
  3132. if (_10 == 0)
  3133. goto <bb 10>; [INV]
  3134. else
  3135. goto <bb 11>; [INV]
  3136. <bb 10> :
  3137. xNextTaskUnblockTime = 4294967295;
  3138. goto <bb 24>; [INV]
  3139. <bb 11> :
  3140. pxDelayedTaskList.68_11 = pxDelayedTaskList;
  3141. _12 = pxDelayedTaskList.68_11->xListEnd.pxNext;
  3142. pxTCB = _12->pvOwner;
  3143. xItemValue = pxTCB->xStateListItem.xItemValue;
  3144. if (xConstTickCount < xItemValue)
  3145. goto <bb 12>; [INV]
  3146. else
  3147. goto <bb 13>; [INV]
  3148. <bb 12> :
  3149. xNextTaskUnblockTime = xItemValue;
  3150. goto <bb 24>; [INV]
  3151. <bb 13> :
  3152. pxList = pxTCB->xStateListItem.pvContainer;
  3153. _13 = pxTCB->xStateListItem.pxNext;
  3154. _14 = pxTCB->xStateListItem.pxPrevious;
  3155. _13->pxPrevious = _14;
  3156. _15 = pxTCB->xStateListItem.pxPrevious;
  3157. _16 = pxTCB->xStateListItem.pxNext;
  3158. _15->pxNext = _16;
  3159. _17 = pxList->pxIndex;
  3160. _18 = &pxTCB->xStateListItem;
  3161. if (_17 == _18)
  3162. goto <bb 14>; [INV]
  3163. else
  3164. goto <bb 15>; [INV]
  3165. <bb 14> :
  3166. _19 = pxTCB->xStateListItem.pxPrevious;
  3167. pxList->pxIndex = _19;
  3168. <bb 15> :
  3169. pxTCB->xStateListItem.pvContainer = 0B;
  3170. _20 = pxList->uxNumberOfItems;
  3171. _21 = _20 + 4294967295;
  3172. pxList->uxNumberOfItems = _21;
  3173. _22 = pxTCB->xEventListItem.pvContainer;
  3174. if (_22 != 0B)
  3175. goto <bb 16>; [INV]
  3176. else
  3177. goto <bb 19>; [INV]
  3178. <bb 16> :
  3179. pxList = pxTCB->xEventListItem.pvContainer;
  3180. _23 = pxTCB->xEventListItem.pxNext;
  3181. _24 = pxTCB->xEventListItem.pxPrevious;
  3182. _23->pxPrevious = _24;
  3183. _25 = pxTCB->xEventListItem.pxPrevious;
  3184. _26 = pxTCB->xEventListItem.pxNext;
  3185. _25->pxNext = _26;
  3186. _27 = pxList->pxIndex;
  3187. _28 = &pxTCB->xEventListItem;
  3188. if (_27 == _28)
  3189. goto <bb 17>; [INV]
  3190. else
  3191. goto <bb 18>; [INV]
  3192. <bb 17> :
  3193. _29 = pxTCB->xEventListItem.pxPrevious;
  3194. pxList->pxIndex = _29;
  3195. <bb 18> :
  3196. pxTCB->xEventListItem.pvContainer = 0B;
  3197. _30 = pxList->uxNumberOfItems;
  3198. _31 = _30 + 4294967295;
  3199. pxList->uxNumberOfItems = _31;
  3200. <bb 19> :
  3201. _32 = pxTCB->uxPriority;
  3202. uxTopReadyPriority.69_33 = uxTopReadyPriority;
  3203. if (_32 > uxTopReadyPriority.69_33)
  3204. goto <bb 20>; [INV]
  3205. else
  3206. goto <bb 21>; [INV]
  3207. <bb 20> :
  3208. _34 = pxTCB->uxPriority;
  3209. uxTopReadyPriority = _34;
  3210. <bb 21> :
  3211. _35 = pxTCB->uxPriority;
  3212. pxIndex = pxReadyTasksLists[_35].pxIndex;
  3213. pxTCB->xStateListItem.pxNext = pxIndex;
  3214. _36 = pxIndex->pxPrevious;
  3215. pxTCB->xStateListItem.pxPrevious = _36;
  3216. _37 = pxIndex->pxPrevious;
  3217. _38 = &pxTCB->xStateListItem;
  3218. _37->pxNext = _38;
  3219. _39 = &pxTCB->xStateListItem;
  3220. pxIndex->pxPrevious = _39;
  3221. _40 = pxTCB->uxPriority;
  3222. _41 = &pxReadyTasksLists[_40];
  3223. pxTCB->xStateListItem.pvContainer = _41;
  3224. _42 = pxTCB->uxPriority;
  3225. _43 = pxReadyTasksLists[_42].uxNumberOfItems;
  3226. _44 = _43 + 1;
  3227. pxReadyTasksLists[_42].uxNumberOfItems = _44;
  3228. _45 = pxTCB->uxPriority;
  3229. pxCurrentTCB.70_46 = pxCurrentTCB;
  3230. _47 = pxCurrentTCB.70_46->uxPriority;
  3231. if (_45 >= _47)
  3232. goto <bb 22>; [INV]
  3233. else
  3234. goto <bb 23>; [INV]
  3235. <bb 22> :
  3236. xSwitchRequired = 1;
  3237. <bb 23> :
  3238. goto <bb 9>; [INV]
  3239. <bb 24> :
  3240. pxCurrentTCB.71_48 = pxCurrentTCB;
  3241. _49 = pxCurrentTCB.71_48->uxPriority;
  3242. _50 = pxReadyTasksLists[_49].uxNumberOfItems;
  3243. if (_50 > 1)
  3244. goto <bb 25>; [INV]
  3245. else
  3246. goto <bb 26>; [INV]
  3247. <bb 25> :
  3248. xSwitchRequired = 1;
  3249. <bb 26> :
  3250. xYieldPending.72_51 = xYieldPending;
  3251. if (xYieldPending.72_51 != 0)
  3252. goto <bb 27>; [INV]
  3253. else
  3254. goto <bb 29>; [INV]
  3255. <bb 27> :
  3256. xSwitchRequired = 1;
  3257. goto <bb 29>; [INV]
  3258. <bb 28> :
  3259. xPendedTicks.73_52 = xPendedTicks;
  3260. _53 = xPendedTicks.73_52 + 1;
  3261. xPendedTicks = _53;
  3262. <bb 29> :
  3263. D.7897 = xSwitchRequired;
  3264. <bb 30> :
  3265. <L35>:
  3266. return D.7897;
  3267. }
  3268. xTaskAbortDelay (struct tskTaskControlBlock * xTask)
  3269. {
  3270. struct ListItem_t * const pxIndex;
  3271. BaseType_t xReturn;
  3272. struct TCB_t * pxTCB;
  3273. BaseType_t D.7863;
  3274. <bb 2> :
  3275. pxTCB = xTask;
  3276. if (pxTCB == 0B)
  3277. goto <bb 3>; [INV]
  3278. else
  3279. goto <bb 5>; [INV]
  3280. <bb 3> :
  3281. vPortRaiseBASEPRI ();
  3282. <bb 4> :
  3283. goto <bb 4>; [INV]
  3284. <bb 5> :
  3285. vTaskSuspendAll ();
  3286. _1 = eTaskGetState (xTask);
  3287. if (_1 == 2)
  3288. goto <bb 6>; [INV]
  3289. else
  3290. goto <bb 12>; [INV]
  3291. <bb 6> :
  3292. xReturn = 1;
  3293. _2 = &pxTCB->xStateListItem;
  3294. uxListRemove (_2);
  3295. vPortEnterCritical ();
  3296. _3 = pxTCB->xEventListItem.pvContainer;
  3297. if (_3 != 0B)
  3298. goto <bb 7>; [INV]
  3299. else
  3300. goto <bb 8>; [INV]
  3301. <bb 7> :
  3302. _4 = &pxTCB->xEventListItem;
  3303. uxListRemove (_4);
  3304. pxTCB->ucDelayAborted = 1;
  3305. <bb 8> :
  3306. vPortExitCritical ();
  3307. _5 = pxTCB->uxPriority;
  3308. uxTopReadyPriority.59_6 = uxTopReadyPriority;
  3309. if (_5 > uxTopReadyPriority.59_6)
  3310. goto <bb 9>; [INV]
  3311. else
  3312. goto <bb 10>; [INV]
  3313. <bb 9> :
  3314. _7 = pxTCB->uxPriority;
  3315. uxTopReadyPriority = _7;
  3316. <bb 10> :
  3317. _8 = pxTCB->uxPriority;
  3318. pxIndex = pxReadyTasksLists[_8].pxIndex;
  3319. pxTCB->xStateListItem.pxNext = pxIndex;
  3320. _9 = pxIndex->pxPrevious;
  3321. pxTCB->xStateListItem.pxPrevious = _9;
  3322. _10 = pxIndex->pxPrevious;
  3323. _11 = &pxTCB->xStateListItem;
  3324. _10->pxNext = _11;
  3325. _12 = &pxTCB->xStateListItem;
  3326. pxIndex->pxPrevious = _12;
  3327. _13 = pxTCB->uxPriority;
  3328. _14 = &pxReadyTasksLists[_13];
  3329. pxTCB->xStateListItem.pvContainer = _14;
  3330. _15 = pxTCB->uxPriority;
  3331. _16 = pxReadyTasksLists[_15].uxNumberOfItems;
  3332. _17 = _16 + 1;
  3333. pxReadyTasksLists[_15].uxNumberOfItems = _17;
  3334. _18 = pxTCB->uxPriority;
  3335. pxCurrentTCB.60_19 = pxCurrentTCB;
  3336. _20 = pxCurrentTCB.60_19->uxPriority;
  3337. if (_18 > _20)
  3338. goto <bb 11>; [INV]
  3339. else
  3340. goto <bb 13>; [INV]
  3341. <bb 11> :
  3342. xYieldPending = 1;
  3343. goto <bb 13>; [INV]
  3344. <bb 12> :
  3345. xReturn = 0;
  3346. <bb 13> :
  3347. xTaskResumeAll ();
  3348. D.7863 = xReturn;
  3349. <bb 14> :
  3350. <L14>:
  3351. return D.7863;
  3352. }
  3353. xTaskCatchUpTicks (TickType_t xTicksToCatchUp)
  3354. {
  3355. BaseType_t xYieldOccurred;
  3356. BaseType_t D.7848;
  3357. <bb 2> :
  3358. uxSchedulerSuspended.57_1 = uxSchedulerSuspended;
  3359. if (uxSchedulerSuspended.57_1 != 0)
  3360. goto <bb 3>; [INV]
  3361. else
  3362. goto <bb 5>; [INV]
  3363. <bb 3> :
  3364. vPortRaiseBASEPRI ();
  3365. <bb 4> :
  3366. goto <bb 4>; [INV]
  3367. <bb 5> :
  3368. vTaskSuspendAll ();
  3369. xPendedTicks.58_2 = xPendedTicks;
  3370. _3 = xTicksToCatchUp + xPendedTicks.58_2;
  3371. xPendedTicks = _3;
  3372. xYieldOccurred = xTaskResumeAll ();
  3373. D.7848 = xYieldOccurred;
  3374. <bb 6> :
  3375. <L3>:
  3376. return D.7848;
  3377. }
  3378. uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime)
  3379. {
  3380. UBaseType_t uxQueue;
  3381. UBaseType_t uxTask;
  3382. UBaseType_t D.7844;
  3383. long unsigned int D.7840;
  3384. long unsigned int D.7839;
  3385. long unsigned int D.7838;
  3386. long unsigned int D.7837;
  3387. long unsigned int D.7836;
  3388. <bb 2> :
  3389. uxTask = 0;
  3390. uxQueue = 5;
  3391. vTaskSuspendAll ();
  3392. uxCurrentNumberOfTasks.54_1 = uxCurrentNumberOfTasks;
  3393. if (uxArraySize >= uxCurrentNumberOfTasks.54_1)
  3394. goto <bb 3>; [INV]
  3395. else
  3396. goto <bb 6>; [INV]
  3397. <bb 3> :
  3398. uxQueue = uxQueue + 4294967295;
  3399. _2 = uxTask * 36;
  3400. _3 = pxTaskStatusArray + _2;
  3401. _4 = &pxReadyTasksLists[uxQueue];
  3402. D.7836 = prvListTasksWithinSingleList (_3, _4, 1);
  3403. uxTask = D.7836 + uxTask;
  3404. if (uxQueue != 0)
  3405. goto <bb 3>; [INV]
  3406. else
  3407. goto <bb 4>; [INV]
  3408. <bb 4> :
  3409. _5 = uxTask * 36;
  3410. _6 = pxTaskStatusArray + _5;
  3411. pxDelayedTaskList.55_7 = pxDelayedTaskList;
  3412. D.7837 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2);
  3413. uxTask = D.7837 + uxTask;
  3414. _8 = uxTask * 36;
  3415. _9 = pxTaskStatusArray + _8;
  3416. pxOverflowDelayedTaskList.56_10 = pxOverflowDelayedTaskList;
  3417. D.7838 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2);
  3418. uxTask = D.7838 + uxTask;
  3419. _11 = uxTask * 36;
  3420. _12 = pxTaskStatusArray + _11;
  3421. D.7839 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4);
  3422. uxTask = D.7839 + uxTask;
  3423. _13 = uxTask * 36;
  3424. _14 = pxTaskStatusArray + _13;
  3425. D.7840 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3);
  3426. uxTask = D.7840 + uxTask;
  3427. if (pulTotalRunTime != 0B)
  3428. goto <bb 5>; [INV]
  3429. else
  3430. goto <bb 6>; [INV]
  3431. <bb 5> :
  3432. *pulTotalRunTime = 0;
  3433. <bb 6> :
  3434. xTaskResumeAll ();
  3435. D.7844 = uxTask;
  3436. <bb 7> :
  3437. <L7>:
  3438. return D.7844;
  3439. }
  3440. xTaskGetHandle (const char * pcNameToQuery)
  3441. {
  3442. struct TCB_t * pxTCB;
  3443. UBaseType_t uxQueue;
  3444. struct tskTaskControlBlock * D.7832;
  3445. <bb 2> :
  3446. uxQueue = 5;
  3447. _1 = strlen (pcNameToQuery);
  3448. if (_1 > 9)
  3449. goto <bb 3>; [INV]
  3450. else
  3451. goto <bb 5>; [INV]
  3452. <bb 3> :
  3453. vPortRaiseBASEPRI ();
  3454. <bb 4> :
  3455. goto <bb 4>; [INV]
  3456. <bb 5> :
  3457. vTaskSuspendAll ();
  3458. <bb 6> :
  3459. uxQueue = uxQueue + 4294967295;
  3460. _2 = &pxReadyTasksLists[uxQueue];
  3461. pxTCB = prvSearchForNameWithinSingleList (_2, pcNameToQuery);
  3462. if (pxTCB != 0B)
  3463. goto <bb 7>; [INV]
  3464. else
  3465. goto <bb 8>; [INV]
  3466. <bb 7> :
  3467. goto <bb 9>; [INV]
  3468. <bb 8> :
  3469. if (uxQueue != 0)
  3470. goto <bb 6>; [INV]
  3471. else
  3472. goto <bb 9>; [INV]
  3473. <bb 9> :
  3474. if (pxTCB == 0B)
  3475. goto <bb 10>; [INV]
  3476. else
  3477. goto <bb 11>; [INV]
  3478. <bb 10> :
  3479. pxDelayedTaskList.52_3 = pxDelayedTaskList;
  3480. pxTCB = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery);
  3481. <bb 11> :
  3482. if (pxTCB == 0B)
  3483. goto <bb 12>; [INV]
  3484. else
  3485. goto <bb 13>; [INV]
  3486. <bb 12> :
  3487. pxOverflowDelayedTaskList.53_4 = pxOverflowDelayedTaskList;
  3488. pxTCB = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery);
  3489. <bb 13> :
  3490. if (pxTCB == 0B)
  3491. goto <bb 14>; [INV]
  3492. else
  3493. goto <bb 15>; [INV]
  3494. <bb 14> :
  3495. pxTCB = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery);
  3496. <bb 15> :
  3497. if (pxTCB == 0B)
  3498. goto <bb 16>; [INV]
  3499. else
  3500. goto <bb 17>; [INV]
  3501. <bb 16> :
  3502. pxTCB = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery);
  3503. <bb 17> :
  3504. xTaskResumeAll ();
  3505. D.7832 = pxTCB;
  3506. <bb 18> :
  3507. <L15>:
  3508. return D.7832;
  3509. }
  3510. prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery)
  3511. {
  3512. struct List_t * const pxConstList;
  3513. struct List_t * const pxConstList;
  3514. BaseType_t xBreakLoop;
  3515. char cNextChar;
  3516. UBaseType_t x;
  3517. struct TCB_t * pxReturn;
  3518. struct TCB_t * pxFirstTCB;
  3519. struct TCB_t * pxNextTCB;
  3520. struct TCB_t * D.7818;
  3521. <bb 2> :
  3522. pxReturn = 0B;
  3523. _1 = pxList->uxNumberOfItems;
  3524. if (_1 != 0)
  3525. goto <bb 3>; [INV]
  3526. else
  3527. goto <bb 21>; [INV]
  3528. <bb 3> :
  3529. pxConstList = pxList;
  3530. _2 = pxConstList->pxIndex;
  3531. _3 = _2->pxNext;
  3532. pxConstList->pxIndex = _3;
  3533. _4 = pxConstList->pxIndex;
  3534. _5 = &pxConstList->xListEnd;
  3535. if (_4 == _5)
  3536. goto <bb 4>; [INV]
  3537. else
  3538. goto <bb 5>; [INV]
  3539. <bb 4> :
  3540. _6 = pxConstList->pxIndex;
  3541. _7 = _6->pxNext;
  3542. pxConstList->pxIndex = _7;
  3543. <bb 5> :
  3544. _8 = pxConstList->pxIndex;
  3545. pxFirstTCB = _8->pvOwner;
  3546. <bb 6> :
  3547. pxConstList = pxList;
  3548. _9 = pxConstList->pxIndex;
  3549. _10 = _9->pxNext;
  3550. pxConstList->pxIndex = _10;
  3551. _11 = pxConstList->pxIndex;
  3552. _12 = &pxConstList->xListEnd;
  3553. if (_11 == _12)
  3554. goto <bb 7>; [INV]
  3555. else
  3556. goto <bb 8>; [INV]
  3557. <bb 7> :
  3558. _13 = pxConstList->pxIndex;
  3559. _14 = _13->pxNext;
  3560. pxConstList->pxIndex = _14;
  3561. <bb 8> :
  3562. _15 = pxConstList->pxIndex;
  3563. pxNextTCB = _15->pvOwner;
  3564. xBreakLoop = 0;
  3565. x = 0;
  3566. goto <bb 16>; [INV]
  3567. <bb 9> :
  3568. cNextChar = pxNextTCB->pcTaskName[x];
  3569. _16 = pcNameToQuery + x;
  3570. _17 = *_16;
  3571. if (cNextChar != _17)
  3572. goto <bb 10>; [INV]
  3573. else
  3574. goto <bb 11>; [INV]
  3575. <bb 10> :
  3576. xBreakLoop = 1;
  3577. goto <bb 13>; [INV]
  3578. <bb 11> :
  3579. if (cNextChar == 0)
  3580. goto <bb 12>; [INV]
  3581. else
  3582. goto <bb 13>; [INV]
  3583. <bb 12> :
  3584. pxReturn = pxNextTCB;
  3585. xBreakLoop = 1;
  3586. <bb 13> :
  3587. if (xBreakLoop != 0)
  3588. goto <bb 14>; [INV]
  3589. else
  3590. goto <bb 15>; [INV]
  3591. <bb 14> :
  3592. goto <bb 17>; [INV]
  3593. <bb 15> :
  3594. x = x + 1;
  3595. <bb 16> :
  3596. if (x <= 9)
  3597. goto <bb 9>; [INV]
  3598. else
  3599. goto <bb 17>; [INV]
  3600. <bb 17> :
  3601. if (pxReturn != 0B)
  3602. goto <bb 18>; [INV]
  3603. else
  3604. goto <bb 19>; [INV]
  3605. <bb 18> :
  3606. goto <bb 20>; [INV]
  3607. <bb 19> :
  3608. if (pxNextTCB != pxFirstTCB)
  3609. goto <bb 6>; [INV]
  3610. else
  3611. goto <bb 20>; [INV]
  3612. <bb 20> :
  3613. <bb 21> :
  3614. D.7818 = pxReturn;
  3615. <bb 22> :
  3616. <L22>:
  3617. return D.7818;
  3618. }
  3619. pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery)
  3620. {
  3621. struct TCB_t * pxTCB;
  3622. char * D.7799;
  3623. struct TCB_t * iftmp.51;
  3624. <bb 2> :
  3625. if (xTaskToQuery == 0B)
  3626. goto <bb 3>; [INV]
  3627. else
  3628. goto <bb 4>; [INV]
  3629. <bb 3> :
  3630. iftmp.51 = pxCurrentTCB;
  3631. goto <bb 5>; [INV]
  3632. <bb 4> :
  3633. iftmp.51 = xTaskToQuery;
  3634. <bb 5> :
  3635. pxTCB = iftmp.51;
  3636. if (pxTCB == 0B)
  3637. goto <bb 6>; [INV]
  3638. else
  3639. goto <bb 8>; [INV]
  3640. <bb 6> :
  3641. vPortRaiseBASEPRI ();
  3642. <bb 7> :
  3643. goto <bb 7>; [INV]
  3644. <bb 8> :
  3645. D.7799 = &pxTCB->pcTaskName[0];
  3646. <bb 9> :
  3647. <L6>:
  3648. return D.7799;
  3649. }
  3650. uxTaskGetNumberOfTasks ()
  3651. {
  3652. UBaseType_t D.7791;
  3653. <bb 2> :
  3654. D.7791 = uxCurrentNumberOfTasks;
  3655. <bb 3> :
  3656. <L0>:
  3657. return D.7791;
  3658. }
  3659. xTaskGetTickCountFromISR ()
  3660. {
  3661. UBaseType_t uxSavedInterruptStatus;
  3662. TickType_t xReturn;
  3663. TickType_t D.7789;
  3664. <bb 2> :
  3665. vPortValidateInterruptPriority ();
  3666. uxSavedInterruptStatus = 0;
  3667. xReturn = xTickCount;
  3668. D.7789 = xReturn;
  3669. <bb 3> :
  3670. <L0>:
  3671. return D.7789;
  3672. }
  3673. xTaskGetTickCount ()
  3674. {
  3675. TickType_t xTicks;
  3676. TickType_t D.7787;
  3677. <bb 2> :
  3678. xTicks = xTickCount;
  3679. D.7787 = xTicks;
  3680. <bb 3> :
  3681. <L0>:
  3682. return D.7787;
  3683. }
  3684. xTaskResumeAll ()
  3685. {
  3686. TickType_t xPendedCounts;
  3687. struct ListItem_t * const pxIndex;
  3688. struct List_t * const pxList;
  3689. struct List_t * const pxList;
  3690. BaseType_t xAlreadyYielded;
  3691. struct TCB_t * pxTCB;
  3692. BaseType_t D.7785;
  3693. <bb 2> :
  3694. pxTCB = 0B;
  3695. xAlreadyYielded = 0;
  3696. uxSchedulerSuspended.44_1 = uxSchedulerSuspended;
  3697. if (uxSchedulerSuspended.44_1 == 0)
  3698. goto <bb 3>; [INV]
  3699. else
  3700. goto <bb 5>; [INV]
  3701. <bb 3> :
  3702. vPortRaiseBASEPRI ();
  3703. <bb 4> :
  3704. goto <bb 4>; [INV]
  3705. <bb 5> :
  3706. vPortEnterCritical ();
  3707. uxSchedulerSuspended.45_2 = uxSchedulerSuspended;
  3708. _3 = uxSchedulerSuspended.45_2 + 4294967295;
  3709. uxSchedulerSuspended = _3;
  3710. uxSchedulerSuspended.46_4 = uxSchedulerSuspended;
  3711. if (uxSchedulerSuspended.46_4 == 0)
  3712. goto <bb 6>; [INV]
  3713. else
  3714. goto <bb 26>; [INV]
  3715. <bb 6> :
  3716. uxCurrentNumberOfTasks.47_5 = uxCurrentNumberOfTasks;
  3717. if (uxCurrentNumberOfTasks.47_5 != 0)
  3718. goto <bb 7>; [INV]
  3719. else
  3720. goto <bb 26>; [INV]
  3721. <bb 7> :
  3722. goto <bb 16>; [INV]
  3723. <bb 8> :
  3724. _6 = xPendingReadyList.xListEnd.pxNext;
  3725. pxTCB = _6->pvOwner;
  3726. pxList = pxTCB->xEventListItem.pvContainer;
  3727. _7 = pxTCB->xEventListItem.pxNext;
  3728. _8 = pxTCB->xEventListItem.pxPrevious;
  3729. _7->pxPrevious = _8;
  3730. _9 = pxTCB->xEventListItem.pxPrevious;
  3731. _10 = pxTCB->xEventListItem.pxNext;
  3732. _9->pxNext = _10;
  3733. _11 = pxList->pxIndex;
  3734. _12 = &pxTCB->xEventListItem;
  3735. if (_11 == _12)
  3736. goto <bb 9>; [INV]
  3737. else
  3738. goto <bb 10>; [INV]
  3739. <bb 9> :
  3740. _13 = pxTCB->xEventListItem.pxPrevious;
  3741. pxList->pxIndex = _13;
  3742. <bb 10> :
  3743. pxTCB->xEventListItem.pvContainer = 0B;
  3744. _14 = pxList->uxNumberOfItems;
  3745. _15 = _14 + 4294967295;
  3746. pxList->uxNumberOfItems = _15;
  3747. __asm__ __volatile__("" : : : "memory");
  3748. pxList = pxTCB->xStateListItem.pvContainer;
  3749. _16 = pxTCB->xStateListItem.pxNext;
  3750. _17 = pxTCB->xStateListItem.pxPrevious;
  3751. _16->pxPrevious = _17;
  3752. _18 = pxTCB->xStateListItem.pxPrevious;
  3753. _19 = pxTCB->xStateListItem.pxNext;
  3754. _18->pxNext = _19;
  3755. _20 = pxList->pxIndex;
  3756. _21 = &pxTCB->xStateListItem;
  3757. if (_20 == _21)
  3758. goto <bb 11>; [INV]
  3759. else
  3760. goto <bb 12>; [INV]
  3761. <bb 11> :
  3762. _22 = pxTCB->xStateListItem.pxPrevious;
  3763. pxList->pxIndex = _22;
  3764. <bb 12> :
  3765. pxTCB->xStateListItem.pvContainer = 0B;
  3766. _23 = pxList->uxNumberOfItems;
  3767. _24 = _23 + 4294967295;
  3768. pxList->uxNumberOfItems = _24;
  3769. _25 = pxTCB->uxPriority;
  3770. uxTopReadyPriority.48_26 = uxTopReadyPriority;
  3771. if (_25 > uxTopReadyPriority.48_26)
  3772. goto <bb 13>; [INV]
  3773. else
  3774. goto <bb 14>; [INV]
  3775. <bb 13> :
  3776. _27 = pxTCB->uxPriority;
  3777. uxTopReadyPriority = _27;
  3778. <bb 14> :
  3779. _28 = pxTCB->uxPriority;
  3780. pxIndex = pxReadyTasksLists[_28].pxIndex;
  3781. pxTCB->xStateListItem.pxNext = pxIndex;
  3782. _29 = pxIndex->pxPrevious;
  3783. pxTCB->xStateListItem.pxPrevious = _29;
  3784. _30 = pxIndex->pxPrevious;
  3785. _31 = &pxTCB->xStateListItem;
  3786. _30->pxNext = _31;
  3787. _32 = &pxTCB->xStateListItem;
  3788. pxIndex->pxPrevious = _32;
  3789. _33 = pxTCB->uxPriority;
  3790. _34 = &pxReadyTasksLists[_33];
  3791. pxTCB->xStateListItem.pvContainer = _34;
  3792. _35 = pxTCB->uxPriority;
  3793. _36 = pxReadyTasksLists[_35].uxNumberOfItems;
  3794. _37 = _36 + 1;
  3795. pxReadyTasksLists[_35].uxNumberOfItems = _37;
  3796. _38 = pxTCB->uxPriority;
  3797. pxCurrentTCB.49_39 = pxCurrentTCB;
  3798. _40 = pxCurrentTCB.49_39->uxPriority;
  3799. if (_38 >= _40)
  3800. goto <bb 15>; [INV]
  3801. else
  3802. goto <bb 16>; [INV]
  3803. <bb 15> :
  3804. xYieldPending = 1;
  3805. <bb 16> :
  3806. _41 = xPendingReadyList.uxNumberOfItems;
  3807. if (_41 != 0)
  3808. goto <bb 8>; [INV]
  3809. else
  3810. goto <bb 17>; [INV]
  3811. <bb 17> :
  3812. if (pxTCB != 0B)
  3813. goto <bb 18>; [INV]
  3814. else
  3815. goto <bb 19>; [INV]
  3816. <bb 18> :
  3817. prvResetNextTaskUnblockTime ();
  3818. <bb 19> :
  3819. xPendedCounts = xPendedTicks;
  3820. if (xPendedCounts != 0)
  3821. goto <bb 20>; [INV]
  3822. else
  3823. goto <bb 24>; [INV]
  3824. <bb 20> :
  3825. _42 = xTaskIncrementTick ();
  3826. if (_42 != 0)
  3827. goto <bb 21>; [INV]
  3828. else
  3829. goto <bb 22>; [INV]
  3830. <bb 21> :
  3831. xYieldPending = 1;
  3832. <bb 22> :
  3833. xPendedCounts = xPendedCounts + 4294967295;
  3834. if (xPendedCounts != 0)
  3835. goto <bb 20>; [INV]
  3836. else
  3837. goto <bb 23>; [INV]
  3838. <bb 23> :
  3839. xPendedTicks = 0;
  3840. <bb 24> :
  3841. xYieldPending.50_43 = xYieldPending;
  3842. if (xYieldPending.50_43 != 0)
  3843. goto <bb 25>; [INV]
  3844. else
  3845. goto <bb 26>; [INV]
  3846. <bb 25> :
  3847. xAlreadyYielded = 1;
  3848. _44 = 3758157060B;
  3849. *_44 = 268435456;
  3850. __asm__ __volatile__("dsb" : : : "memory");
  3851. __asm__ __volatile__("isb");
  3852. <bb 26> :
  3853. vPortExitCritical ();
  3854. D.7785 = xAlreadyYielded;
  3855. <bb 27> :
  3856. <L33>:
  3857. return D.7785;
  3858. }
  3859. vTaskSuspendAll ()
  3860. {
  3861. <bb 2> :
  3862. uxSchedulerSuspended.43_1 = uxSchedulerSuspended;
  3863. _2 = uxSchedulerSuspended.43_1 + 1;
  3864. uxSchedulerSuspended = _2;
  3865. __asm__ __volatile__("" : : : "memory");
  3866. return;
  3867. }
  3868. vTaskEndScheduler ()
  3869. {
  3870. <bb 2> :
  3871. vPortRaiseBASEPRI ();
  3872. xSchedulerRunning = 0;
  3873. vPortEndScheduler ();
  3874. return;
  3875. }
  3876. vTaskStartScheduler ()
  3877. {
  3878. BaseType_t xReturn;
  3879. long unsigned int vol.42;
  3880. <bb 2> :
  3881. xReturn = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle);
  3882. if (xReturn == 1)
  3883. goto <bb 3>; [INV]
  3884. else
  3885. goto <bb 4>; [INV]
  3886. <bb 3> :
  3887. xReturn = xTimerCreateTimerTask ();
  3888. <bb 4> :
  3889. if (xReturn == 1)
  3890. goto <bb 5>; [INV]
  3891. else
  3892. goto <bb 6>; [INV]
  3893. <bb 5> :
  3894. vPortRaiseBASEPRI ();
  3895. xNextTaskUnblockTime = 4294967295;
  3896. xSchedulerRunning = 1;
  3897. xTickCount = 0;
  3898. _1 = xPortStartScheduler ();
  3899. goto <bb 9>; [INV]
  3900. <bb 6> :
  3901. if (xReturn == -1)
  3902. goto <bb 7>; [INV]
  3903. else
  3904. goto <bb 9>; [INV]
  3905. <bb 7> :
  3906. vPortRaiseBASEPRI ();
  3907. <bb 8> :
  3908. goto <bb 8>; [INV]
  3909. <bb 9> :
  3910. vol.42 = uxTopUsedPriority;
  3911. return;
  3912. }
  3913. xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume)
  3914. {
  3915. struct ListItem_t * const pxIndex;
  3916. UBaseType_t uxSavedInterruptStatus;
  3917. struct TCB_t * const pxTCB;
  3918. BaseType_t xYieldRequired;
  3919. BaseType_t D.7744;
  3920. <bb 2> :
  3921. xYieldRequired = 0;
  3922. pxTCB = xTaskToResume;
  3923. if (xTaskToResume == 0B)
  3924. goto <bb 3>; [INV]
  3925. else
  3926. goto <bb 5>; [INV]
  3927. <bb 3> :
  3928. vPortRaiseBASEPRI ();
  3929. <bb 4> :
  3930. goto <bb 4>; [INV]
  3931. <bb 5> :
  3932. vPortValidateInterruptPriority ();
  3933. uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  3934. _1 = prvTaskIsTaskSuspended (pxTCB);
  3935. if (_1 != 0)
  3936. goto <bb 6>; [INV]
  3937. else
  3938. goto <bb 13>; [INV]
  3939. <bb 6> :
  3940. uxSchedulerSuspended.39_2 = uxSchedulerSuspended;
  3941. if (uxSchedulerSuspended.39_2 == 0)
  3942. goto <bb 7>; [INV]
  3943. else
  3944. goto <bb 12>; [INV]
  3945. <bb 7> :
  3946. _3 = pxTCB->uxPriority;
  3947. pxCurrentTCB.40_4 = pxCurrentTCB;
  3948. _5 = pxCurrentTCB.40_4->uxPriority;
  3949. if (_3 >= _5)
  3950. goto <bb 8>; [INV]
  3951. else
  3952. goto <bb 9>; [INV]
  3953. <bb 8> :
  3954. xYieldRequired = 1;
  3955. xYieldPending = 1;
  3956. <bb 9> :
  3957. _6 = &pxTCB->xStateListItem;
  3958. uxListRemove (_6);
  3959. _7 = pxTCB->uxPriority;
  3960. uxTopReadyPriority.41_8 = uxTopReadyPriority;
  3961. if (_7 > uxTopReadyPriority.41_8)
  3962. goto <bb 10>; [INV]
  3963. else
  3964. goto <bb 11>; [INV]
  3965. <bb 10> :
  3966. _9 = pxTCB->uxPriority;
  3967. uxTopReadyPriority = _9;
  3968. <bb 11> :
  3969. _10 = pxTCB->uxPriority;
  3970. pxIndex = pxReadyTasksLists[_10].pxIndex;
  3971. pxTCB->xStateListItem.pxNext = pxIndex;
  3972. _11 = pxIndex->pxPrevious;
  3973. pxTCB->xStateListItem.pxPrevious = _11;
  3974. _12 = pxIndex->pxPrevious;
  3975. _13 = &pxTCB->xStateListItem;
  3976. _12->pxNext = _13;
  3977. _14 = &pxTCB->xStateListItem;
  3978. pxIndex->pxPrevious = _14;
  3979. _15 = pxTCB->uxPriority;
  3980. _16 = &pxReadyTasksLists[_15];
  3981. pxTCB->xStateListItem.pvContainer = _16;
  3982. _17 = pxTCB->uxPriority;
  3983. _18 = pxReadyTasksLists[_17].uxNumberOfItems;
  3984. _19 = _18 + 1;
  3985. pxReadyTasksLists[_17].uxNumberOfItems = _19;
  3986. goto <bb 13>; [INV]
  3987. <bb 12> :
  3988. _20 = &pxTCB->xEventListItem;
  3989. vListInsertEnd (&xPendingReadyList, _20);
  3990. <bb 13> :
  3991. vPortSetBASEPRI (uxSavedInterruptStatus);
  3992. D.7744 = xYieldRequired;
  3993. <bb 14> :
  3994. <L14>:
  3995. return D.7744;
  3996. }
  3997. vTaskResume (struct tskTaskControlBlock * xTaskToResume)
  3998. {
  3999. struct ListItem_t * const pxIndex;
  4000. struct TCB_t * const pxTCB;
  4001. <bb 2> :
  4002. pxTCB = xTaskToResume;
  4003. if (xTaskToResume == 0B)
  4004. goto <bb 3>; [INV]
  4005. else
  4006. goto <bb 5>; [INV]
  4007. <bb 3> :
  4008. vPortRaiseBASEPRI ();
  4009. <bb 4> :
  4010. goto <bb 4>; [INV]
  4011. <bb 5> :
  4012. pxCurrentTCB.36_1 = pxCurrentTCB;
  4013. if (pxTCB != pxCurrentTCB.36_1)
  4014. goto <bb 6>; [INV]
  4015. else
  4016. goto <bb 13>; [INV]
  4017. <bb 6> :
  4018. if (pxTCB != 0B)
  4019. goto <bb 7>; [INV]
  4020. else
  4021. goto <bb 13>; [INV]
  4022. <bb 7> :
  4023. vPortEnterCritical ();
  4024. _2 = prvTaskIsTaskSuspended (pxTCB);
  4025. if (_2 != 0)
  4026. goto <bb 8>; [INV]
  4027. else
  4028. goto <bb 12>; [INV]
  4029. <bb 8> :
  4030. _3 = &pxTCB->xStateListItem;
  4031. uxListRemove (_3);
  4032. _4 = pxTCB->uxPriority;
  4033. uxTopReadyPriority.37_5 = uxTopReadyPriority;
  4034. if (_4 > uxTopReadyPriority.37_5)
  4035. goto <bb 9>; [INV]
  4036. else
  4037. goto <bb 10>; [INV]
  4038. <bb 9> :
  4039. _6 = pxTCB->uxPriority;
  4040. uxTopReadyPriority = _6;
  4041. <bb 10> :
  4042. _7 = pxTCB->uxPriority;
  4043. pxIndex = pxReadyTasksLists[_7].pxIndex;
  4044. pxTCB->xStateListItem.pxNext = pxIndex;
  4045. _8 = pxIndex->pxPrevious;
  4046. pxTCB->xStateListItem.pxPrevious = _8;
  4047. _9 = pxIndex->pxPrevious;
  4048. _10 = &pxTCB->xStateListItem;
  4049. _9->pxNext = _10;
  4050. _11 = &pxTCB->xStateListItem;
  4051. pxIndex->pxPrevious = _11;
  4052. _12 = pxTCB->uxPriority;
  4053. _13 = &pxReadyTasksLists[_12];
  4054. pxTCB->xStateListItem.pvContainer = _13;
  4055. _14 = pxTCB->uxPriority;
  4056. _15 = pxReadyTasksLists[_14].uxNumberOfItems;
  4057. _16 = _15 + 1;
  4058. pxReadyTasksLists[_14].uxNumberOfItems = _16;
  4059. _17 = pxTCB->uxPriority;
  4060. pxCurrentTCB.38_18 = pxCurrentTCB;
  4061. _19 = pxCurrentTCB.38_18->uxPriority;
  4062. if (_17 >= _19)
  4063. goto <bb 11>; [INV]
  4064. else
  4065. goto <bb 12>; [INV]
  4066. <bb 11> :
  4067. _20 = 3758157060B;
  4068. *_20 = 268435456;
  4069. __asm__ __volatile__("dsb" : : : "memory");
  4070. __asm__ __volatile__("isb");
  4071. <bb 12> :
  4072. vPortExitCritical ();
  4073. <bb 13> :
  4074. return;
  4075. }
  4076. prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask)
  4077. {
  4078. const struct TCB_t * const pxTCB;
  4079. BaseType_t xReturn;
  4080. BaseType_t D.7714;
  4081. <bb 2> :
  4082. xReturn = 0;
  4083. pxTCB = xTask;
  4084. if (xTask == 0B)
  4085. goto <bb 3>; [INV]
  4086. else
  4087. goto <bb 5>; [INV]
  4088. <bb 3> :
  4089. vPortRaiseBASEPRI ();
  4090. <bb 4> :
  4091. goto <bb 4>; [INV]
  4092. <bb 5> :
  4093. _1 = pxTCB->xStateListItem.pvContainer;
  4094. if (_1 == &xSuspendedTaskList)
  4095. goto <bb 6>; [INV]
  4096. else
  4097. goto <bb 9>; [INV]
  4098. <bb 6> :
  4099. _2 = pxTCB->xEventListItem.pvContainer;
  4100. if (_2 != &xPendingReadyList)
  4101. goto <bb 7>; [INV]
  4102. else
  4103. goto <bb 9>; [INV]
  4104. <bb 7> :
  4105. _3 = pxTCB->xEventListItem.pvContainer;
  4106. if (_3 == 0B)
  4107. goto <bb 8>; [INV]
  4108. else
  4109. goto <bb 9>; [INV]
  4110. <bb 8> :
  4111. xReturn = 1;
  4112. <bb 9> :
  4113. D.7714 = xReturn;
  4114. <bb 10> :
  4115. <L12>:
  4116. return D.7714;
  4117. }
  4118. vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend)
  4119. {
  4120. BaseType_t x;
  4121. struct TCB_t * pxTCB;
  4122. struct TCB_t * iftmp.30;
  4123. <bb 2> :
  4124. vPortEnterCritical ();
  4125. if (xTaskToSuspend == 0B)
  4126. goto <bb 3>; [INV]
  4127. else
  4128. goto <bb 4>; [INV]
  4129. <bb 3> :
  4130. iftmp.30 = pxCurrentTCB;
  4131. goto <bb 5>; [INV]
  4132. <bb 4> :
  4133. iftmp.30 = xTaskToSuspend;
  4134. <bb 5> :
  4135. pxTCB = iftmp.30;
  4136. _1 = &pxTCB->xStateListItem;
  4137. _2 = uxListRemove (_1);
  4138. <bb 6> :
  4139. _3 = pxTCB->xEventListItem.pvContainer;
  4140. if (_3 != 0B)
  4141. goto <bb 7>; [INV]
  4142. else
  4143. goto <bb 8>; [INV]
  4144. <bb 7> :
  4145. _4 = &pxTCB->xEventListItem;
  4146. uxListRemove (_4);
  4147. <bb 8> :
  4148. _5 = &pxTCB->xStateListItem;
  4149. vListInsertEnd (&xSuspendedTaskList, _5);
  4150. x = 0;
  4151. goto <bb 12>; [INV]
  4152. <bb 9> :
  4153. _6 = pxTCB->ucNotifyState[x];
  4154. if (_6 == 1)
  4155. goto <bb 10>; [INV]
  4156. else
  4157. goto <bb 11>; [INV]
  4158. <bb 10> :
  4159. pxTCB->ucNotifyState[x] = 0;
  4160. <bb 11> :
  4161. x = x + 1;
  4162. <bb 12> :
  4163. if (x <= 0)
  4164. goto <bb 9>; [INV]
  4165. else
  4166. goto <bb 13>; [INV]
  4167. <bb 13> :
  4168. vPortExitCritical ();
  4169. xSchedulerRunning.31_7 = xSchedulerRunning;
  4170. if (xSchedulerRunning.31_7 != 0)
  4171. goto <bb 14>; [INV]
  4172. else
  4173. goto <bb 15>; [INV]
  4174. <bb 14> :
  4175. vPortEnterCritical ();
  4176. prvResetNextTaskUnblockTime ();
  4177. vPortExitCritical ();
  4178. <bb 15> :
  4179. pxCurrentTCB.32_8 = pxCurrentTCB;
  4180. if (pxTCB == pxCurrentTCB.32_8)
  4181. goto <bb 16>; [INV]
  4182. else
  4183. goto <bb 24>; [INV]
  4184. <bb 16> :
  4185. xSchedulerRunning.33_9 = xSchedulerRunning;
  4186. if (xSchedulerRunning.33_9 != 0)
  4187. goto <bb 17>; [INV]
  4188. else
  4189. goto <bb 21>; [INV]
  4190. <bb 17> :
  4191. uxSchedulerSuspended.34_10 = uxSchedulerSuspended;
  4192. if (uxSchedulerSuspended.34_10 != 0)
  4193. goto <bb 18>; [INV]
  4194. else
  4195. goto <bb 20>; [INV]
  4196. <bb 18> :
  4197. vPortRaiseBASEPRI ();
  4198. <bb 19> :
  4199. goto <bb 19>; [INV]
  4200. <bb 20> :
  4201. _11 = 3758157060B;
  4202. *_11 = 268435456;
  4203. __asm__ __volatile__("dsb" : : : "memory");
  4204. __asm__ __volatile__("isb");
  4205. goto <bb 24>; [INV]
  4206. <bb 21> :
  4207. _12 = xSuspendedTaskList.uxNumberOfItems;
  4208. uxCurrentNumberOfTasks.35_13 = uxCurrentNumberOfTasks;
  4209. if (_12 == uxCurrentNumberOfTasks.35_13)
  4210. goto <bb 22>; [INV]
  4211. else
  4212. goto <bb 23>; [INV]
  4213. <bb 22> :
  4214. pxCurrentTCB = 0B;
  4215. goto <bb 24>; [INV]
  4216. <bb 23> :
  4217. vTaskSwitchContext ();
  4218. <bb 24> :
  4219. return;
  4220. }
  4221. vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority)
  4222. {
  4223. struct ListItem_t * const pxIndex;
  4224. BaseType_t xYieldRequired;
  4225. UBaseType_t uxPriorityUsedOnEntry;
  4226. UBaseType_t uxCurrentBasePriority;
  4227. struct TCB_t * pxTCB;
  4228. struct TCB_t * iftmp.25;
  4229. <bb 2> :
  4230. xYieldRequired = 0;
  4231. if (uxNewPriority > 4)
  4232. goto <bb 3>; [INV]
  4233. else
  4234. goto <bb 5>; [INV]
  4235. <bb 3> :
  4236. vPortRaiseBASEPRI ();
  4237. <bb 4> :
  4238. goto <bb 4>; [INV]
  4239. <bb 5> :
  4240. if (uxNewPriority > 4)
  4241. goto <bb 6>; [INV]
  4242. else
  4243. goto <bb 7>; [INV]
  4244. <bb 6> :
  4245. uxNewPriority = 4;
  4246. <bb 7> :
  4247. vPortEnterCritical ();
  4248. if (xTask == 0B)
  4249. goto <bb 8>; [INV]
  4250. else
  4251. goto <bb 9>; [INV]
  4252. <bb 8> :
  4253. iftmp.25 = pxCurrentTCB;
  4254. goto <bb 10>; [INV]
  4255. <bb 9> :
  4256. iftmp.25 = xTask;
  4257. <bb 10> :
  4258. pxTCB = iftmp.25;
  4259. uxCurrentBasePriority = pxTCB->uxBasePriority;
  4260. if (uxCurrentBasePriority != uxNewPriority)
  4261. goto <bb 11>; [INV]
  4262. else
  4263. goto <bb 28>; [INV]
  4264. <bb 11> :
  4265. if (uxNewPriority > uxCurrentBasePriority)
  4266. goto <bb 12>; [INV]
  4267. else
  4268. goto <bb 15>; [INV]
  4269. <bb 12> :
  4270. pxCurrentTCB.26_1 = pxCurrentTCB;
  4271. if (pxTCB != pxCurrentTCB.26_1)
  4272. goto <bb 13>; [INV]
  4273. else
  4274. goto <bb 17>; [INV]
  4275. <bb 13> :
  4276. pxCurrentTCB.27_2 = pxCurrentTCB;
  4277. _3 = pxCurrentTCB.27_2->uxPriority;
  4278. if (uxNewPriority >= _3)
  4279. goto <bb 14>; [INV]
  4280. else
  4281. goto <bb 17>; [INV]
  4282. <bb 14> :
  4283. xYieldRequired = 1;
  4284. goto <bb 17>; [INV]
  4285. <bb 15> :
  4286. pxCurrentTCB.28_4 = pxCurrentTCB;
  4287. if (pxTCB == pxCurrentTCB.28_4)
  4288. goto <bb 16>; [INV]
  4289. else
  4290. goto <bb 17>; [INV]
  4291. <bb 16> :
  4292. xYieldRequired = 1;
  4293. <bb 17> :
  4294. uxPriorityUsedOnEntry = pxTCB->uxPriority;
  4295. _5 = pxTCB->uxBasePriority;
  4296. _6 = pxTCB->uxPriority;
  4297. if (_5 == _6)
  4298. goto <bb 18>; [INV]
  4299. else
  4300. goto <bb 19>; [INV]
  4301. <bb 18> :
  4302. pxTCB->uxPriority = uxNewPriority;
  4303. <bb 19> :
  4304. pxTCB->uxBasePriority = uxNewPriority;
  4305. _7 = pxTCB->xEventListItem.xItemValue;
  4306. _8 = (signed int) _7;
  4307. if (_8 >= 0)
  4308. goto <bb 20>; [INV]
  4309. else
  4310. goto <bb 21>; [INV]
  4311. <bb 20> :
  4312. _9 = 5 - uxNewPriority;
  4313. pxTCB->xEventListItem.xItemValue = _9;
  4314. <bb 21> :
  4315. _10 = pxTCB->xStateListItem.pvContainer;
  4316. _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry];
  4317. if (_10 == _11)
  4318. goto <bb 22>; [INV]
  4319. else
  4320. goto <bb 26>; [INV]
  4321. <bb 22> :
  4322. _12 = &pxTCB->xStateListItem;
  4323. _13 = uxListRemove (_12);
  4324. <bb 23> :
  4325. _14 = pxTCB->uxPriority;
  4326. uxTopReadyPriority.29_15 = uxTopReadyPriority;
  4327. if (_14 > uxTopReadyPriority.29_15)
  4328. goto <bb 24>; [INV]
  4329. else
  4330. goto <bb 25>; [INV]
  4331. <bb 24> :
  4332. _16 = pxTCB->uxPriority;
  4333. uxTopReadyPriority = _16;
  4334. <bb 25> :
  4335. _17 = pxTCB->uxPriority;
  4336. pxIndex = pxReadyTasksLists[_17].pxIndex;
  4337. pxTCB->xStateListItem.pxNext = pxIndex;
  4338. _18 = pxIndex->pxPrevious;
  4339. pxTCB->xStateListItem.pxPrevious = _18;
  4340. _19 = pxIndex->pxPrevious;
  4341. _20 = &pxTCB->xStateListItem;
  4342. _19->pxNext = _20;
  4343. _21 = &pxTCB->xStateListItem;
  4344. pxIndex->pxPrevious = _21;
  4345. _22 = pxTCB->uxPriority;
  4346. _23 = &pxReadyTasksLists[_22];
  4347. pxTCB->xStateListItem.pvContainer = _23;
  4348. _24 = pxTCB->uxPriority;
  4349. _25 = pxReadyTasksLists[_24].uxNumberOfItems;
  4350. _26 = _25 + 1;
  4351. pxReadyTasksLists[_24].uxNumberOfItems = _26;
  4352. <bb 26> :
  4353. if (xYieldRequired != 0)
  4354. goto <bb 27>; [INV]
  4355. else
  4356. goto <bb 28>; [INV]
  4357. <bb 27> :
  4358. _27 = 3758157060B;
  4359. *_27 = 268435456;
  4360. __asm__ __volatile__("dsb" : : : "memory");
  4361. __asm__ __volatile__("isb");
  4362. <bb 28> :
  4363. vPortExitCritical ();
  4364. return;
  4365. }
  4366. uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask)
  4367. {
  4368. UBaseType_t uxSavedInterruptState;
  4369. UBaseType_t uxReturn;
  4370. const struct TCB_t * pxTCB;
  4371. UBaseType_t D.7633;
  4372. const struct TCB_t * iftmp.24;
  4373. <bb 2> :
  4374. vPortValidateInterruptPriority ();
  4375. uxSavedInterruptState = ulPortRaiseBASEPRI ();
  4376. if (xTask == 0B)
  4377. goto <bb 3>; [INV]
  4378. else
  4379. goto <bb 4>; [INV]
  4380. <bb 3> :
  4381. iftmp.24 = pxCurrentTCB;
  4382. goto <bb 5>; [INV]
  4383. <bb 4> :
  4384. iftmp.24 = xTask;
  4385. <bb 5> :
  4386. pxTCB = iftmp.24;
  4387. uxReturn = pxTCB->uxPriority;
  4388. vPortSetBASEPRI (uxSavedInterruptState);
  4389. D.7633 = uxReturn;
  4390. <bb 6> :
  4391. <L3>:
  4392. return D.7633;
  4393. }
  4394. uxTaskPriorityGet (struct tskTaskControlBlock * const xTask)
  4395. {
  4396. UBaseType_t uxReturn;
  4397. const struct TCB_t * pxTCB;
  4398. UBaseType_t D.7627;
  4399. const struct TCB_t * iftmp.23;
  4400. <bb 2> :
  4401. vPortEnterCritical ();
  4402. if (xTask == 0B)
  4403. goto <bb 3>; [INV]
  4404. else
  4405. goto <bb 4>; [INV]
  4406. <bb 3> :
  4407. iftmp.23 = pxCurrentTCB;
  4408. goto <bb 5>; [INV]
  4409. <bb 4> :
  4410. iftmp.23 = xTask;
  4411. <bb 5> :
  4412. pxTCB = iftmp.23;
  4413. uxReturn = pxTCB->uxPriority;
  4414. vPortExitCritical ();
  4415. D.7627 = uxReturn;
  4416. <bb 6> :
  4417. <L3>:
  4418. return D.7627;
  4419. }
  4420. eTaskGetState (struct tskTaskControlBlock * xTask)
  4421. {
  4422. BaseType_t x;
  4423. const struct TCB_t * const pxTCB;
  4424. const struct List_t * pxOverflowedDelayedList;
  4425. const struct List_t * pxDelayedList;
  4426. const struct List_t * pxStateList;
  4427. eTaskState eReturn;
  4428. eTaskState D.7621;
  4429. <bb 2> :
  4430. pxTCB = xTask;
  4431. if (pxTCB == 0B)
  4432. goto <bb 3>; [INV]
  4433. else
  4434. goto <bb 5>; [INV]
  4435. <bb 3> :
  4436. vPortRaiseBASEPRI ();
  4437. <bb 4> :
  4438. goto <bb 4>; [INV]
  4439. <bb 5> :
  4440. pxCurrentTCB.22_1 = pxCurrentTCB;
  4441. if (pxTCB == pxCurrentTCB.22_1)
  4442. goto <bb 6>; [INV]
  4443. else
  4444. goto <bb 7>; [INV]
  4445. <bb 6> :
  4446. eReturn = 0;
  4447. goto <bb 23>; [INV]
  4448. <bb 7> :
  4449. vPortEnterCritical ();
  4450. pxStateList = pxTCB->xStateListItem.pvContainer;
  4451. pxDelayedList = pxDelayedTaskList;
  4452. pxOverflowedDelayedList = pxOverflowDelayedTaskList;
  4453. vPortExitCritical ();
  4454. if (pxStateList == pxDelayedList)
  4455. goto <bb 9>; [INV]
  4456. else
  4457. goto <bb 8>; [INV]
  4458. <bb 8> :
  4459. if (pxStateList == pxOverflowedDelayedList)
  4460. goto <bb 9>; [INV]
  4461. else
  4462. goto <bb 10>; [INV]
  4463. <bb 9> :
  4464. eReturn = 2;
  4465. goto <bb 23>; [INV]
  4466. <bb 10> :
  4467. if (pxStateList == &xSuspendedTaskList)
  4468. goto <bb 11>; [INV]
  4469. else
  4470. goto <bb 19>; [INV]
  4471. <bb 11> :
  4472. _2 = pxTCB->xEventListItem.pvContainer;
  4473. if (_2 == 0B)
  4474. goto <bb 12>; [INV]
  4475. else
  4476. goto <bb 18>; [INV]
  4477. <bb 12> :
  4478. eReturn = 3;
  4479. x = 0;
  4480. goto <bb 16>; [INV]
  4481. <bb 13> :
  4482. _3 = pxTCB->ucNotifyState[x];
  4483. if (_3 == 1)
  4484. goto <bb 14>; [INV]
  4485. else
  4486. goto <bb 15>; [INV]
  4487. <bb 14> :
  4488. eReturn = 2;
  4489. goto <bb 17>; [INV]
  4490. <bb 15> :
  4491. x = x + 1;
  4492. <bb 16> :
  4493. if (x <= 0)
  4494. goto <bb 13>; [INV]
  4495. else
  4496. goto <bb 17>; [INV]
  4497. <bb 17> :
  4498. goto <bb 23>; [INV]
  4499. <bb 18> :
  4500. eReturn = 2;
  4501. goto <bb 23>; [INV]
  4502. <bb 19> :
  4503. if (pxStateList == &xTasksWaitingTermination)
  4504. goto <bb 21>; [INV]
  4505. else
  4506. goto <bb 20>; [INV]
  4507. <bb 20> :
  4508. if (pxStateList == 0B)
  4509. goto <bb 21>; [INV]
  4510. else
  4511. goto <bb 22>; [INV]
  4512. <bb 21> :
  4513. eReturn = 4;
  4514. goto <bb 23>; [INV]
  4515. <bb 22> :
  4516. eReturn = 1;
  4517. <bb 23> :
  4518. D.7621 = eReturn;
  4519. <bb 24> :
  4520. <L25>:
  4521. return D.7621;
  4522. }
  4523. vTaskDelay (const TickType_t xTicksToDelay)
  4524. {
  4525. BaseType_t xAlreadyYielded;
  4526. <bb 2> :
  4527. xAlreadyYielded = 0;
  4528. if (xTicksToDelay != 0)
  4529. goto <bb 3>; [INV]
  4530. else
  4531. goto <bb 7>; [INV]
  4532. <bb 3> :
  4533. uxSchedulerSuspended.21_1 = uxSchedulerSuspended;
  4534. if (uxSchedulerSuspended.21_1 != 0)
  4535. goto <bb 4>; [INV]
  4536. else
  4537. goto <bb 6>; [INV]
  4538. <bb 4> :
  4539. vPortRaiseBASEPRI ();
  4540. <bb 5> :
  4541. goto <bb 5>; [INV]
  4542. <bb 6> :
  4543. vTaskSuspendAll ();
  4544. prvAddCurrentTaskToDelayedList (xTicksToDelay, 0);
  4545. xAlreadyYielded = xTaskResumeAll ();
  4546. <bb 7> :
  4547. if (xAlreadyYielded == 0)
  4548. goto <bb 8>; [INV]
  4549. else
  4550. goto <bb 9>; [INV]
  4551. <bb 8> :
  4552. _2 = 3758157060B;
  4553. *_2 = 268435456;
  4554. __asm__ __volatile__("dsb" : : : "memory");
  4555. __asm__ __volatile__("isb");
  4556. <bb 9> :
  4557. return;
  4558. }
  4559. xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement)
  4560. {
  4561. const TickType_t xConstTickCount;
  4562. BaseType_t xShouldDelay;
  4563. BaseType_t xAlreadyYielded;
  4564. TickType_t xTimeToWake;
  4565. BaseType_t D.7590;
  4566. <bb 2> :
  4567. xShouldDelay = 0;
  4568. if (pxPreviousWakeTime == 0B)
  4569. goto <bb 3>; [INV]
  4570. else
  4571. goto <bb 5>; [INV]
  4572. <bb 3> :
  4573. vPortRaiseBASEPRI ();
  4574. <bb 4> :
  4575. goto <bb 4>; [INV]
  4576. <bb 5> :
  4577. if (xTimeIncrement == 0)
  4578. goto <bb 6>; [INV]
  4579. else
  4580. goto <bb 8>; [INV]
  4581. <bb 6> :
  4582. vPortRaiseBASEPRI ();
  4583. <bb 7> :
  4584. goto <bb 7>; [INV]
  4585. <bb 8> :
  4586. uxSchedulerSuspended.20_1 = uxSchedulerSuspended;
  4587. if (uxSchedulerSuspended.20_1 != 0)
  4588. goto <bb 9>; [INV]
  4589. else
  4590. goto <bb 11>; [INV]
  4591. <bb 9> :
  4592. vPortRaiseBASEPRI ();
  4593. <bb 10> :
  4594. goto <bb 10>; [INV]
  4595. <bb 11> :
  4596. vTaskSuspendAll ();
  4597. xConstTickCount = xTickCount;
  4598. _2 = *pxPreviousWakeTime;
  4599. xTimeToWake = xTimeIncrement + _2;
  4600. _3 = *pxPreviousWakeTime;
  4601. if (xConstTickCount < _3)
  4602. goto <bb 12>; [INV]
  4603. else
  4604. goto <bb 15>; [INV]
  4605. <bb 12> :
  4606. _4 = *pxPreviousWakeTime;
  4607. if (xTimeToWake < _4)
  4608. goto <bb 13>; [INV]
  4609. else
  4610. goto <bb 18>; [INV]
  4611. <bb 13> :
  4612. if (xTimeToWake > xConstTickCount)
  4613. goto <bb 14>; [INV]
  4614. else
  4615. goto <bb 18>; [INV]
  4616. <bb 14> :
  4617. xShouldDelay = 1;
  4618. goto <bb 18>; [INV]
  4619. <bb 15> :
  4620. _5 = *pxPreviousWakeTime;
  4621. if (xTimeToWake < _5)
  4622. goto <bb 17>; [INV]
  4623. else
  4624. goto <bb 16>; [INV]
  4625. <bb 16> :
  4626. if (xTimeToWake > xConstTickCount)
  4627. goto <bb 17>; [INV]
  4628. else
  4629. goto <bb 18>; [INV]
  4630. <bb 17> :
  4631. xShouldDelay = 1;
  4632. <bb 18> :
  4633. *pxPreviousWakeTime = xTimeToWake;
  4634. if (xShouldDelay != 0)
  4635. goto <bb 19>; [INV]
  4636. else
  4637. goto <bb 20>; [INV]
  4638. <bb 19> :
  4639. _6 = xTimeToWake - xConstTickCount;
  4640. prvAddCurrentTaskToDelayedList (_6, 0);
  4641. <bb 20> :
  4642. xAlreadyYielded = xTaskResumeAll ();
  4643. if (xAlreadyYielded == 0)
  4644. goto <bb 21>; [INV]
  4645. else
  4646. goto <bb 22>; [INV]
  4647. <bb 21> :
  4648. _7 = 3758157060B;
  4649. *_7 = 268435456;
  4650. __asm__ __volatile__("dsb" : : : "memory");
  4651. __asm__ __volatile__("isb");
  4652. <bb 22> :
  4653. D.7590 = xShouldDelay;
  4654. <bb 23> :
  4655. <L26>:
  4656. return D.7590;
  4657. }
  4658. vTaskDelete (struct tskTaskControlBlock * xTaskToDelete)
  4659. {
  4660. struct TCB_t * pxTCB;
  4661. struct TCB_t * iftmp.12;
  4662. <bb 2> :
  4663. vPortEnterCritical ();
  4664. if (xTaskToDelete == 0B)
  4665. goto <bb 3>; [INV]
  4666. else
  4667. goto <bb 4>; [INV]
  4668. <bb 3> :
  4669. iftmp.12 = pxCurrentTCB;
  4670. goto <bb 5>; [INV]
  4671. <bb 4> :
  4672. iftmp.12 = xTaskToDelete;
  4673. <bb 5> :
  4674. pxTCB = iftmp.12;
  4675. _1 = &pxTCB->xStateListItem;
  4676. _2 = uxListRemove (_1);
  4677. <bb 6> :
  4678. _3 = pxTCB->xEventListItem.pvContainer;
  4679. if (_3 != 0B)
  4680. goto <bb 7>; [INV]
  4681. else
  4682. goto <bb 8>; [INV]
  4683. <bb 7> :
  4684. _4 = &pxTCB->xEventListItem;
  4685. uxListRemove (_4);
  4686. <bb 8> :
  4687. uxTaskNumber.13_5 = uxTaskNumber;
  4688. _6 = uxTaskNumber.13_5 + 1;
  4689. uxTaskNumber = _6;
  4690. pxCurrentTCB.14_7 = pxCurrentTCB;
  4691. if (pxTCB == pxCurrentTCB.14_7)
  4692. goto <bb 9>; [INV]
  4693. else
  4694. goto <bb 10>; [INV]
  4695. <bb 9> :
  4696. _8 = &pxTCB->xStateListItem;
  4697. vListInsertEnd (&xTasksWaitingTermination, _8);
  4698. uxDeletedTasksWaitingCleanUp.15_9 = uxDeletedTasksWaitingCleanUp;
  4699. _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1;
  4700. uxDeletedTasksWaitingCleanUp = _10;
  4701. goto <bb 11>; [INV]
  4702. <bb 10> :
  4703. uxCurrentNumberOfTasks.16_11 = uxCurrentNumberOfTasks;
  4704. _12 = uxCurrentNumberOfTasks.16_11 + 4294967295;
  4705. uxCurrentNumberOfTasks = _12;
  4706. prvDeleteTCB (pxTCB);
  4707. prvResetNextTaskUnblockTime ();
  4708. <bb 11> :
  4709. vPortExitCritical ();
  4710. xSchedulerRunning.17_13 = xSchedulerRunning;
  4711. if (xSchedulerRunning.17_13 != 0)
  4712. goto <bb 12>; [INV]
  4713. else
  4714. goto <bb 17>; [INV]
  4715. <bb 12> :
  4716. pxCurrentTCB.18_14 = pxCurrentTCB;
  4717. if (pxTCB == pxCurrentTCB.18_14)
  4718. goto <bb 13>; [INV]
  4719. else
  4720. goto <bb 17>; [INV]
  4721. <bb 13> :
  4722. uxSchedulerSuspended.19_15 = uxSchedulerSuspended;
  4723. if (uxSchedulerSuspended.19_15 != 0)
  4724. goto <bb 14>; [INV]
  4725. else
  4726. goto <bb 16>; [INV]
  4727. <bb 14> :
  4728. vPortRaiseBASEPRI ();
  4729. <bb 15> :
  4730. goto <bb 15>; [INV]
  4731. <bb 16> :
  4732. _16 = 3758157060B;
  4733. *_16 = 268435456;
  4734. __asm__ __volatile__("dsb" : : : "memory");
  4735. __asm__ __volatile__("isb");
  4736. <bb 17> :
  4737. return;
  4738. }
  4739. prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB)
  4740. {
  4741. struct ListItem_t * const pxIndex;
  4742. <bb 2> :
  4743. vPortEnterCritical ();
  4744. uxCurrentNumberOfTasks.2_1 = uxCurrentNumberOfTasks;
  4745. _2 = uxCurrentNumberOfTasks.2_1 + 1;
  4746. uxCurrentNumberOfTasks = _2;
  4747. pxCurrentTCB.3_3 = pxCurrentTCB;
  4748. if (pxCurrentTCB.3_3 == 0B)
  4749. goto <bb 3>; [INV]
  4750. else
  4751. goto <bb 5>; [INV]
  4752. <bb 3> :
  4753. pxCurrentTCB = pxNewTCB;
  4754. uxCurrentNumberOfTasks.4_4 = uxCurrentNumberOfTasks;
  4755. if (uxCurrentNumberOfTasks.4_4 == 1)
  4756. goto <bb 4>; [INV]
  4757. else
  4758. goto <bb 8>; [INV]
  4759. <bb 4> :
  4760. prvInitialiseTaskLists ();
  4761. goto <bb 8>; [INV]
  4762. <bb 5> :
  4763. xSchedulerRunning.5_5 = xSchedulerRunning;
  4764. if (xSchedulerRunning.5_5 == 0)
  4765. goto <bb 6>; [INV]
  4766. else
  4767. goto <bb 8>; [INV]
  4768. <bb 6> :
  4769. pxCurrentTCB.6_6 = pxCurrentTCB;
  4770. _7 = pxCurrentTCB.6_6->uxPriority;
  4771. _8 = pxNewTCB->uxPriority;
  4772. if (_7 <= _8)
  4773. goto <bb 7>; [INV]
  4774. else
  4775. goto <bb 8>; [INV]
  4776. <bb 7> :
  4777. pxCurrentTCB = pxNewTCB;
  4778. <bb 8> :
  4779. uxTaskNumber.7_9 = uxTaskNumber;
  4780. _10 = uxTaskNumber.7_9 + 1;
  4781. uxTaskNumber = _10;
  4782. uxTaskNumber.8_11 = uxTaskNumber;
  4783. pxNewTCB->uxTCBNumber = uxTaskNumber.8_11;
  4784. _12 = pxNewTCB->uxPriority;
  4785. uxTopReadyPriority.9_13 = uxTopReadyPriority;
  4786. if (_12 > uxTopReadyPriority.9_13)
  4787. goto <bb 9>; [INV]
  4788. else
  4789. goto <bb 10>; [INV]
  4790. <bb 9> :
  4791. _14 = pxNewTCB->uxPriority;
  4792. uxTopReadyPriority = _14;
  4793. <bb 10> :
  4794. _15 = pxNewTCB->uxPriority;
  4795. pxIndex = pxReadyTasksLists[_15].pxIndex;
  4796. pxNewTCB->xStateListItem.pxNext = pxIndex;
  4797. _16 = pxIndex->pxPrevious;
  4798. pxNewTCB->xStateListItem.pxPrevious = _16;
  4799. _17 = pxIndex->pxPrevious;
  4800. _18 = &pxNewTCB->xStateListItem;
  4801. _17->pxNext = _18;
  4802. _19 = &pxNewTCB->xStateListItem;
  4803. pxIndex->pxPrevious = _19;
  4804. _20 = pxNewTCB->uxPriority;
  4805. _21 = &pxReadyTasksLists[_20];
  4806. pxNewTCB->xStateListItem.pvContainer = _21;
  4807. _22 = pxNewTCB->uxPriority;
  4808. _23 = pxReadyTasksLists[_22].uxNumberOfItems;
  4809. _24 = _23 + 1;
  4810. pxReadyTasksLists[_22].uxNumberOfItems = _24;
  4811. vPortExitCritical ();
  4812. xSchedulerRunning.10_25 = xSchedulerRunning;
  4813. if (xSchedulerRunning.10_25 != 0)
  4814. goto <bb 11>; [INV]
  4815. else
  4816. goto <bb 13>; [INV]
  4817. <bb 11> :
  4818. pxCurrentTCB.11_26 = pxCurrentTCB;
  4819. _27 = pxCurrentTCB.11_26->uxPriority;
  4820. _28 = pxNewTCB->uxPriority;
  4821. if (_27 < _28)
  4822. goto <bb 12>; [INV]
  4823. else
  4824. goto <bb 13>; [INV]
  4825. <bb 12> :
  4826. _29 = 3758157060B;
  4827. *_29 = 268435456;
  4828. __asm__ __volatile__("dsb" : : : "memory");
  4829. __asm__ __volatile__("isb");
  4830. <bb 13> :
  4831. return;
  4832. }
  4833. 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)
  4834. {
  4835. UBaseType_t x;
  4836. StackType_t * pxTopOfStack;
  4837. <bb 2> :
  4838. _1 = pxNewTCB->pxStack;
  4839. _2 = ulStackDepth * 4;
  4840. memset (_1, 165, _2);
  4841. _3 = pxNewTCB->pxStack;
  4842. _4 = ulStackDepth + 1073741823;
  4843. _5 = _4 * 4;
  4844. pxTopOfStack = _3 + _5;
  4845. pxTopOfStack.0_6 = (long unsigned int) pxTopOfStack;
  4846. _7 = pxTopOfStack.0_6 & 4294967288;
  4847. pxTopOfStack = (StackType_t *) _7;
  4848. pxTopOfStack.1_8 = (long unsigned int) pxTopOfStack;
  4849. _9 = pxTopOfStack.1_8 & 7;
  4850. if (_9 != 0)
  4851. goto <bb 3>; [INV]
  4852. else
  4853. goto <bb 5>; [INV]
  4854. <bb 3> :
  4855. vPortRaiseBASEPRI ();
  4856. <bb 4> :
  4857. goto <bb 4>; [INV]
  4858. <bb 5> :
  4859. pxNewTCB->pxEndOfStack = pxTopOfStack;
  4860. if (pcName != 0B)
  4861. goto <bb 6>; [INV]
  4862. else
  4863. goto <bb 12>; [INV]
  4864. <bb 6> :
  4865. x = 0;
  4866. goto <bb 10>; [INV]
  4867. <bb 7> :
  4868. _10 = pcName + x;
  4869. _11 = *_10;
  4870. pxNewTCB->pcTaskName[x] = _11;
  4871. _12 = pcName + x;
  4872. _13 = *_12;
  4873. if (_13 == 0)
  4874. goto <bb 8>; [INV]
  4875. else
  4876. goto <bb 9>; [INV]
  4877. <bb 8> :
  4878. goto <bb 11>; [INV]
  4879. <bb 9> :
  4880. x = x + 1;
  4881. <bb 10> :
  4882. if (x <= 9)
  4883. goto <bb 7>; [INV]
  4884. else
  4885. goto <bb 11>; [INV]
  4886. <bb 11> :
  4887. pxNewTCB->pcTaskName[9] = 0;
  4888. goto <bb 13>; [INV]
  4889. <bb 12> :
  4890. pxNewTCB->pcTaskName[0] = 0;
  4891. <bb 13> :
  4892. if (uxPriority > 4)
  4893. goto <bb 14>; [INV]
  4894. else
  4895. goto <bb 16>; [INV]
  4896. <bb 14> :
  4897. vPortRaiseBASEPRI ();
  4898. <bb 15> :
  4899. goto <bb 15>; [INV]
  4900. <bb 16> :
  4901. if (uxPriority > 4)
  4902. goto <bb 17>; [INV]
  4903. else
  4904. goto <bb 18>; [INV]
  4905. <bb 17> :
  4906. uxPriority = 4;
  4907. <bb 18> :
  4908. pxNewTCB->uxPriority = uxPriority;
  4909. pxNewTCB->uxBasePriority = uxPriority;
  4910. pxNewTCB->uxMutexesHeld = 0;
  4911. _14 = &pxNewTCB->xStateListItem;
  4912. vListInitialiseItem (_14);
  4913. _15 = &pxNewTCB->xEventListItem;
  4914. vListInitialiseItem (_15);
  4915. pxNewTCB->xStateListItem.pvOwner = pxNewTCB;
  4916. _16 = 5 - uxPriority;
  4917. pxNewTCB->xEventListItem.xItemValue = _16;
  4918. pxNewTCB->xEventListItem.pvOwner = pxNewTCB;
  4919. _17 = &pxNewTCB->ulNotifiedValue[0];
  4920. memset (_17, 0, 4);
  4921. _18 = &pxNewTCB->ucNotifyState[0];
  4922. memset (_18, 0, 1);
  4923. pxNewTCB->ucDelayAborted = 0;
  4924. _19 = pxPortInitialiseStack (pxTopOfStack, pxTaskCode, pvParameters);
  4925. pxNewTCB->pxTopOfStack = _19;
  4926. if (pxCreatedTask != 0B)
  4927. goto <bb 19>; [INV]
  4928. else
  4929. goto <bb 20>; [INV]
  4930. <bb 19> :
  4931. *pxCreatedTask = pxNewTCB;
  4932. <bb 20> :
  4933. return;
  4934. }
  4935. xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask)
  4936. {
  4937. StackType_t * pxStack;
  4938. BaseType_t xReturn;
  4939. struct TCB_t * pxNewTCB;
  4940. BaseType_t D.7510;
  4941. <bb 2> :
  4942. _1 = (unsigned int) usStackDepth;
  4943. _2 = _1 * 4;
  4944. pxStack = pvPortMalloc (_2);
  4945. if (pxStack != 0B)
  4946. goto <bb 3>; [INV]
  4947. else
  4948. goto <bb 6>; [INV]
  4949. <bb 3> :
  4950. pxNewTCB = pvPortMalloc (92);
  4951. if (pxNewTCB != 0B)
  4952. goto <bb 4>; [INV]
  4953. else
  4954. goto <bb 5>; [INV]
  4955. <bb 4> :
  4956. pxNewTCB->pxStack = pxStack;
  4957. goto <bb 7>; [INV]
  4958. <bb 5> :
  4959. vPortFree (pxStack);
  4960. goto <bb 7>; [INV]
  4961. <bb 6> :
  4962. pxNewTCB = 0B;
  4963. <bb 7> :
  4964. if (pxNewTCB != 0B)
  4965. goto <bb 8>; [INV]
  4966. else
  4967. goto <bb 9>; [INV]
  4968. <bb 8> :
  4969. _3 = (long unsigned int) usStackDepth;
  4970. prvInitialiseNewTask (pxTaskCode, pcName, _3, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, 0B);
  4971. prvAddNewTaskToReadyList (pxNewTCB);
  4972. xReturn = 1;
  4973. goto <bb 10>; [INV]
  4974. <bb 9> :
  4975. xReturn = -1;
  4976. <bb 10> :
  4977. D.7510 = xReturn;
  4978. <bb 11> :
  4979. <L9>:
  4980. return D.7510;
  4981. }
  4982. __attribute__((always_inline))
  4983. vPortSetBASEPRI (uint32_t ulNewMaskValue)
  4984. {
  4985. <bb 2> :
  4986. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory");
  4987. return;
  4988. }
  4989. __attribute__((always_inline))
  4990. ulPortRaiseBASEPRI ()
  4991. {
  4992. uint32_t ulNewBASEPRI;
  4993. uint32_t ulOriginalBASEPRI;
  4994. uint32_t D.7635;
  4995. <bb 2> :
  4996. __asm__ __volatile__(" mrs %0, basepri
  4997. mov %1, %2
  4998. msr basepri, %1
  4999. isb
  5000. dsb
  5001. " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory");
  5002. D.7635 = ulOriginalBASEPRI;
  5003. <bb 3> :
  5004. <L0>:
  5005. return D.7635;
  5006. }
  5007. __attribute__((always_inline))
  5008. vPortRaiseBASEPRI ()
  5009. {
  5010. uint32_t ulNewBASEPRI;
  5011. <bb 2> :
  5012. __asm__ __volatile__(" mov %0, %1
  5013. msr basepri, %0
  5014. isb
  5015. dsb
  5016. " : "=r" ulNewBASEPRI : "i" 16 : "memory");
  5017. return;
  5018. }