tasks.c.016i.visibility 184 KB

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