1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232 |
- /**
- * @file csl_srioAuxPhyLayer.h
- *
- * @brief
- * This is the SRIO Auxilary Physical Header File which exposes the various
- * CSL Functional Layer API's to configure the SRIO Switch.
- *
- * \par
- * ============================================================================
- * @n (C) Copyright 2008-2011, Texas Instruments, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- #ifndef CSL_SRIO_AUX_PHY_LAYER_H_
- #define CSL_SRIO_AUX_PHY_LAYER_H_
- #include <ti/csl/soc.h>
- #include <ti/csl/csl_srio.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** @addtogroup CSL_SRIO_FUNCTION
- @{ */
- /** ============================================================================
- * @n@b CSL_SRIO_GetDeviceInfo
- *
- * @b Description
- * @n The function reads the Device Identifier information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- deviceId Device Identity populated by this API.
- deviceVendorId Device Vendor Identity populated by this API
- deviceRev Device Revision populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DEV_ID_DEV_ID,SRIO_RIO_DEV_ID_DEV_VEN_ID,
- * @n SRIO_RIO_DEV_INFO_DEVICE_REV
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 deviceId;
- Uint16 deviceVendorId;
- Uint32 deviceRev;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Read the Device Identity CAR
- CSL_SRIO_GetDeviceInfo (hSrio, &deviceId, &deviceVendorId, &deviceRev);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDeviceInfo
- (
- CSL_SrioHandle hSrio,
- Uint16* deviceId,
- Uint16* deviceVendorId,
- Uint32* deviceRev
- )
- {
- Uint32 value = hSrio->RIO_DEV_ID;
- *deviceId = CSL_FEXT(value, SRIO_RIO_DEV_ID_DEV_ID);
- *deviceVendorId = CSL_FEXT(value, SRIO_RIO_DEV_ID_DEV_VEN_ID);
- *deviceRev = CSL_FEXT(hSrio->RIO_DEV_INFO, SRIO_RIO_DEV_INFO_DEVICE_REV);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDeviceInfo
- *
- * @b Description
- * @n The function sets up the Device Identifier information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- deviceId Device Identity to configure
- deviceVendorId Device Vendor Identity to configure
- deviceRev Device Revision to configure
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_DEV_ID_DEV_ID,SRIO_RIO_DEV_ID_DEV_VEN_ID,
- * @n SRIO_RIO_DEV_INFO_DEVICE_REV
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 deviceId;
- Uint16 deviceVendorId;
- Uint32 deviceRev;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Read the Device Identity CAR
- CSL_SRIO_GetDeviceInfo (hSrio, &deviceId, &deviceVendorId, &deviceRev);
- ...
- // Setup the device identity info
- CSL_SRIO_SetDeviceInfo (hSrio, deviceId, deviceVendorId, deviceRev);
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDeviceInfo
- (
- CSL_SrioHandle hSrio,
- Uint16 deviceId,
- Uint16 deviceVendorId,
- Uint32 deviceRev
- )
- {
- hSrio->RIO_DEV_ID = CSL_FMK(SRIO_RIO_DEV_ID_DEV_ID, deviceId) |
- CSL_FMK(SRIO_RIO_DEV_ID_DEV_VEN_ID, deviceVendorId);
- hSrio->RIO_DEV_INFO = CSL_FMK(SRIO_RIO_DEV_INFO_DEVICE_REV, deviceRev);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetAssemblyInfo
- *
- * @b Description
- * @n The function reads the Assembly Identifier information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- asblyId Assembly Identity populated by this API.
- asblyVendorId Assembly Vendor Identity populated by this API
- asblyRev Assembly Revision populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ASBLY_ID_ASBLY_ID,SRIO_RIO_ASBLY_ID_ASBLY_VEN_ID,
- * @n SRIO_RIO_ASBLY_INFO_ASBLY_REV,SRIO_RIO_ASBLY_INFO_EXT_FEAT_PTR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 asblyId;
- Uint16 asblyVendorId;
- Uint16 asblyRev;
- Uint16 extFeaturePtr;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Read the Assembly Identity CAR
- CSL_SRIO_GetAssemblyInfo (hSrio, &asblyId, &asblyVendorId, &asblyRev, &extFeaturePtr);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetAssemblyInfo
- (
- CSL_SrioHandle hSrio,
- Uint16* asblyId,
- Uint16* asblyVendorId,
- Uint16* asblyRev,
- Uint16* extFeaturePtr
- )
- {
- Uint32 value;
- /* Read the assembly and vendor identifier */
- value = hSrio->RIO_ASBLY_ID;
- *asblyId = CSL_FEXT(value, SRIO_RIO_ASBLY_ID_ASBLY_ID);
- *asblyVendorId = CSL_FEXT(value, SRIO_RIO_ASBLY_ID_ASBLY_VEN_ID);
- /* Read the assembly information and external features */
- value = hSrio->RIO_ASBLY_INFO;
- *asblyRev = CSL_FEXT(value, SRIO_RIO_ASBLY_INFO_ASBLY_REV);
- *extFeaturePtr = CSL_FEXT(value, SRIO_RIO_ASBLY_INFO_EXT_FEAT_PTR);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetAssemblyInfo
- *
- * @b Description
- * @n The function sets up the Assembly Identifier information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- asblyId Assembly Identity to configure.
- asblyVendorId Assembly Vendor Identity to configure
- asblyRev Assembly Revision to configure
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_ASBLY_ID_ASBLY_ID,SRIO_RIO_ASBLY_ID_ASBLY_VEN_ID,
- * @n SRIO_RIO_ASBLY_INFO_ASBLY_REV,SRIO_RIO_ASBLY_INFO_EXT_FEAT_PTR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 asblyId;
- Uint16 asblyVendorId;
- Uint16 asblyRev;
- Uint16 extFeaturePtr;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Read the Assembly Identity CAR
- CSL_SRIO_GetAssemblyInfo (hSrio, &asblyId, &asblyVendorId, &asblyRev, &extFeaturePtr);
- ...
- // Sets up the Assembly Identity info
- CSL_SRIO_SetAssemblyInfo (hSrio, asblyId, asblyVendorId, asblyRev, extFeaturePtr);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetAssemblyInfo
- (
- CSL_SrioHandle hSrio,
- Uint16 asblyId,
- Uint16 asblyVendorId,
- Uint16 asblyRev,
- Uint16 extFeaturePtr
- )
- {
- hSrio->RIO_ASBLY_ID = CSL_FMK(SRIO_RIO_ASBLY_ID_ASBLY_ID, asblyId) |
- CSL_FMK(SRIO_RIO_ASBLY_ID_ASBLY_VEN_ID, asblyVendorId);
- hSrio->RIO_ASBLY_INFO = CSL_FMK(SRIO_RIO_ASBLY_INFO_ASBLY_REV, asblyRev) |
- CSL_FMK(SRIO_RIO_ASBLY_INFO_EXT_FEAT_PTR,extFeaturePtr);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetProcessingElementFeatures
- *
- * @b Description
- * @n The function gets the processing element features.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- peFeatures Processing Element Features to be populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PE_FEAT_BRDG,SRIO_RIO_PE_FEAT_MEM,SRIO_RIO_PE_FEAT_PROC,
- * @n SRIO_RIO_PE_FEAT_SW,SRIO_RIO_PE_FEAT_MULT_P,SRIO_RIO_PE_FEAT_FLOW_ARB,
- * @n SRIO_RIO_PE_FEAT_MC,SRIO_RIO_PE_FEAT_ERTC,SRIO_RIO_PE_FEAT_SRTC,
- * @n SRIO_RIO_PE_FEAT_FLOW_CTRL, SRIO_RIO_PE_FEAT_CRF,
- * @n SRIO_RIO_PE_FEAT_CTLS,SRIO_RIO_PE_FEAT_EXT_FEA,SRIO_RIO_PE_FEAT_EXT_AS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PE_FEATURES peFeatures;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the processing element features.
- CSL_SRIO_GetProcessingElementFeatures (hSrio, &peFeatures);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetProcessingElementFeatures
- (
- CSL_SrioHandle hSrio,
- SRIO_PE_FEATURES* ptrPEFeatures
- )
- {
- Uint32 value = hSrio->RIO_PE_FEAT;
- /* Populate the structure. */
- ptrPEFeatures->isBridge = CSL_FEXT (value, SRIO_RIO_PE_FEAT_BRDG);
- ptrPEFeatures->isEndpoint = CSL_FEXT (value, SRIO_RIO_PE_FEAT_MEM);
- ptrPEFeatures->isProcessor = CSL_FEXT (value, SRIO_RIO_PE_FEAT_PROC);
- ptrPEFeatures->isSwitch = CSL_FEXT (value, SRIO_RIO_PE_FEAT_SW);
- ptrPEFeatures->isMultiport = CSL_FEXT (value, SRIO_RIO_PE_FEAT_MULT_P);
- ptrPEFeatures->isFlowArbiterationSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_FLOW_ARB);
- ptrPEFeatures->isMulticastSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_MC);
- ptrPEFeatures->isExtendedRouteConfigSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_ERTC);
- ptrPEFeatures->isStandardRouteConfigSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_SRTC);
- ptrPEFeatures->isFlowControlSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_FLOW_CTRL);
- ptrPEFeatures->isCRFSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_CRF);
- ptrPEFeatures->isCTLSSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_CTLS);
- ptrPEFeatures->isExtendedFeaturePtrValid = CSL_FEXT (value, SRIO_RIO_PE_FEAT_EXT_FEA);
- ptrPEFeatures->numAddressBitSupported = CSL_FEXT (value, SRIO_RIO_PE_FEAT_EXT_AS);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetProcessingElementFeatures
- *
- * @b Description
- * @n The function sets the processing element features.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- peFeatures Processing Element Features to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PE_FEAT_BRDG,SRIO_RIO_PE_FEAT_MEM,SRIO_RIO_PE_FEAT_PROC,
- * @n SRIO_RIO_PE_FEAT_SW,SRIO_RIO_PE_FEAT_MULT_P,SRIO_RIO_PE_FEAT_FLOW_ARB,
- * @n SRIO_RIO_PE_FEAT_MC,SRIO_RIO_PE_FEAT_ERTC,SRIO_RIO_PE_FEAT_SRTC,
- * @n SRIO_RIO_PE_FEAT_FLOW_CTRL, SRIO_RIO_PE_FEAT_CRF,
- * @n SRIO_RIO_PE_FEAT_CTLS,SRIO_RIO_PE_FEAT_EXT_FEA,SRIO_RIO_PE_FEAT_EXT_AS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PE_FEATURES peFeatures;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the processing element features.
- CSL_SRIO_GetProcessingElementFeatures (hSrio, &peFeatures);
-
- // Modify the processing element features and make this a BRIDGE
- peFeatures.isBridge = 1;
- CSL_SRIO_SetProcessingElementFeatures(hSrio, &peFeatures);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetProcessingElementFeatures
- (
- CSL_SrioHandle hSrio,
- SRIO_PE_FEATURES* ptrPEFeatures
- )
- {
- Uint32 value = 0;
- /* Initialize the various fields in the register */
- CSL_FINS (value, SRIO_RIO_PE_FEAT_BRDG, ptrPEFeatures->isBridge);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_MEM, ptrPEFeatures->isEndpoint);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_PROC, ptrPEFeatures->isProcessor);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_SW, ptrPEFeatures->isSwitch);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_MULT_P, ptrPEFeatures->isMultiport);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_FLOW_ARB, ptrPEFeatures->isFlowArbiterationSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_MC, ptrPEFeatures->isMulticastSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_ERTC, ptrPEFeatures->isExtendedRouteConfigSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_SRTC, ptrPEFeatures->isStandardRouteConfigSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_FLOW_CTRL,ptrPEFeatures->isFlowControlSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_CRF, ptrPEFeatures->isCRFSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_CTLS, ptrPEFeatures->isCTLSSupported);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_EXT_FEA, ptrPEFeatures->isExtendedFeaturePtrValid);
- CSL_FINS (value, SRIO_RIO_PE_FEAT_EXT_AS, ptrPEFeatures->numAddressBitSupported);
- hSrio->RIO_PE_FEAT = value;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetSwitchPortInfo
- *
- * @b Description
- * @n The function reads the Switch Port information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- numPorts The total number of ports populated by this API
- portNum The port number from which the Maintenance read operation
- accessed this register.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SW_PORT_PORT_TOTAL,SRIO_RIO_SW_PORT_PORT_NUM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 numPorts;
- Uint8 portNum;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Switch port information
- CSL_SRIO_GetSwitchPortInfo (hSrio, &numPorts, &portNum);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetSwitchPortInfo
- (
- CSL_SrioHandle hSrio,
- Uint8* numPorts,
- Uint8* portNum
- )
- {
- *numPorts = CSL_FEXT(hSrio->RIO_SW_PORT, SRIO_RIO_SW_PORT_PORT_TOTAL);
- *portNum = CSL_FEXT(hSrio->RIO_SW_PORT, SRIO_RIO_SW_PORT_PORT_NUM);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetSourceOperationCAR
- *
- * @b Description
- * @n The function reads the Switch Port Capabilities which are all the logical
- * operations that can be issued by the application.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ptrSrcOp Pointer to the Source CAR Structure populated by this
- API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SRC_OP_G_READ, SRIO_RIO_SRC_OP_G_IREAD, SRIO_RIO_SRC_OP_G_READ_OWN,
- * @n SRIO_RIO_SRC_OP_G_DC_INVALIDATE, SRIO_RIO_SRC_OP_G_CASTOUT, SRIO_RIO_SRC_OP_G_DC_FLUSH,
- * @n SRIO_RIO_SRC_OP_G_IO_READ, SRIO_RIO_SRC_OP_G_IC_INVALIDATE, SRIO_RIO_SRC_OP_G_TLB_INVALIDATE,
- * @n SRIO_RIO_SRC_OP_G_TLB_SYNC, SRIO_RIO_SRC_OP_DS_TM, SRIO_RIO_SRC_OP_DS,
- * @n SRIO_RIO_SRC_OP_IMPLEMENT_DEF, SRIO_RIO_SRC_OP_READ, SRIO_RIO_SRC_OP_WRITE,
- * @n SRIO_RIO_SRC_OP_STRM_WR, SRIO_RIO_SRC_OP_WR_RES, SRIO_RIO_SRC_OP_D_MSG, SRIO_RIO_SRC_OP_DBELL,
- * @n SRIO_RIO_SRC_OP_ACSWAP, SRIO_RIO_SRC_OP_ATSWAP, SRIO_RIO_SRC_OP_A_INC, SRIO_RIO_SRC_OP_A_DEC,
- * @n SRIO_RIO_SRC_OP_A_SET, SRIO_RIO_SRC_OP_A_CLEAR, SRIO_RIO_SRC_OP_A_SWAP, SRIO_RIO_SRC_OP_PORT_WR,
- * @n SRIO_RIO_SRC_OP_IMPLEMENT_DEF2
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_OP_CAR srcOPCAR;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Source Operation CAR
- CSL_SRIO_GetSourceOperationCAR (hSrio, &srcOPCAR);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetSourceOperationCAR
- (
- CSL_SrioHandle hSrio,
- SRIO_OP_CAR* ptrSrcOp
- )
- {
- Uint32 value = hSrio->RIO_SRC_OP;
- /* Extract the fields from the Source OP */
- ptrSrcOp->gsmRead = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_READ);
- ptrSrcOp->gsmInstrnRead = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_IREAD);
- ptrSrcOp->gsmReadOwn = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_READ_OWN);
- ptrSrcOp->gsmDataCacheInvalidate = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_DC_INVALIDATE);
- ptrSrcOp->gsmCastout = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_CASTOUT);
- ptrSrcOp->gsmDataCacheFlush = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_DC_FLUSH);
- ptrSrcOp->gsmIORead = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_IO_READ);
- ptrSrcOp->gsmInstrnCacheInvalidate = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_IC_INVALIDATE);
- ptrSrcOp->gsmTLBInvalidate = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_TLB_INVALIDATE);
- ptrSrcOp->gsmTLBSync = CSL_FEXT (value, SRIO_RIO_SRC_OP_G_TLB_SYNC);
- ptrSrcOp->dataStreamingTM = CSL_FEXT (value, SRIO_RIO_SRC_OP_DS_TM);
- ptrSrcOp->dataStreamingSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_DS);
- ptrSrcOp->implnDefined = CSL_FEXT (value, SRIO_RIO_SRC_OP_IMPLEMENT_DEF);
- ptrSrcOp->readSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_READ);
- ptrSrcOp->writeSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_WRITE);
- ptrSrcOp->streamWriteSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_STRM_WR);
- ptrSrcOp->writeResponseSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_WR_RES);
- ptrSrcOp->dataMessageSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_D_MSG);
- ptrSrcOp->doorbellSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_DBELL);
- ptrSrcOp->atomicCompareSwapSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_ACSWAP);
- ptrSrcOp->atomicTestSwapSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_ATSWAP);
- ptrSrcOp->atomicIncSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_A_INC);
- ptrSrcOp->atomicDecSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_A_DEC);
- ptrSrcOp->atomicSetSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_A_SET);
- ptrSrcOp->atomicClearSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_A_CLEAR);
- ptrSrcOp->atomicSwapSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_A_SWAP);
- ptrSrcOp->portWriteOperationSupport = CSL_FEXT (value, SRIO_RIO_SRC_OP_PORT_WR);
- ptrSrcOp->implnDefined2 = CSL_FEXT (value, SRIO_RIO_SRC_OP_IMPLEMENT_DEF2);
- return;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetSourceOperationCAR
- *
- * @b Description
- * @n The function sets the Switch Port Capabilities which are all the logical
- * operations that can be issued by the application.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ptrSrcOp Pointer to the Source CAR Structure to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SRC_OP_G_READ, SRIO_RIO_SRC_OP_G_IREAD, SRIO_RIO_SRC_OP_G_READ_OWN,
- * @n SRIO_RIO_SRC_OP_G_DC_INVALIDATE, SRIO_RIO_SRC_OP_G_CASTOUT, SRIO_RIO_SRC_OP_G_DC_FLUSH,
- * @n SRIO_RIO_SRC_OP_G_IO_READ, SRIO_RIO_SRC_OP_G_IC_INVALIDATE, SRIO_RIO_SRC_OP_G_TLB_INVALIDATE,
- * @n SRIO_RIO_SRC_OP_G_TLB_SYNC, SRIO_RIO_SRC_OP_DS_TM, SRIO_RIO_SRC_OP_DS,
- * @n SRIO_RIO_SRC_OP_IMPLEMENT_DEF, SRIO_RIO_SRC_OP_READ, SRIO_RIO_SRC_OP_WRITE,
- * @n SRIO_RIO_SRC_OP_STRM_WR, SRIO_RIO_SRC_OP_WR_RES, SRIO_RIO_SRC_OP_D_MSG, SRIO_RIO_SRC_OP_DBELL,
- * @n SRIO_RIO_SRC_OP_ACSWAP, SRIO_RIO_SRC_OP_ATSWAP, SRIO_RIO_SRC_OP_A_INC, SRIO_RIO_SRC_OP_A_DEC,
- * @n SRIO_RIO_SRC_OP_A_SET, SRIO_RIO_SRC_OP_A_CLEAR, SRIO_RIO_SRC_OP_A_SWAP, SRIO_RIO_SRC_OP_PORT_WR,
- * @n SRIO_RIO_SRC_OP_IMPLEMENT_DEF2
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_OP_CAR srcOPCAR;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Source Operation CAR
- CSL_SRIO_GetSourceOperationCAR (hSrio, &srcOPCAR);
- // Allow Doorbell support.
- srcOPCAR.doorbellSupport = 1;
- // Set the Source Operation CAR
- CSL_SRIO_SetSourceOperationCAR (hSrio, &srcOPCAR);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetSourceOperationCAR
- (
- CSL_SrioHandle hSrio,
- SRIO_OP_CAR* ptrSrcOp
- )
- {
- Uint32 value = 0;
- /* Populate the fields into the Source OP */
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_READ, ptrSrcOp->gsmRead);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_IREAD, ptrSrcOp->gsmInstrnRead);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_READ_OWN, ptrSrcOp->gsmReadOwn);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_DC_INVALIDATE, ptrSrcOp->gsmDataCacheInvalidate);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_CASTOUT, ptrSrcOp->gsmCastout);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_DC_FLUSH, ptrSrcOp->gsmDataCacheFlush);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_IO_READ, ptrSrcOp->gsmIORead);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_IC_INVALIDATE, ptrSrcOp->gsmInstrnCacheInvalidate);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_TLB_INVALIDATE, ptrSrcOp->gsmTLBInvalidate);
- CSL_FINS (value, SRIO_RIO_SRC_OP_G_TLB_SYNC, ptrSrcOp->gsmTLBSync);
- CSL_FINS (value, SRIO_RIO_SRC_OP_DS_TM, ptrSrcOp->dataStreamingTM);
- CSL_FINS (value, SRIO_RIO_SRC_OP_DS, ptrSrcOp->dataStreamingSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_IMPLEMENT_DEF, ptrSrcOp->implnDefined);
- CSL_FINS (value, SRIO_RIO_SRC_OP_READ, ptrSrcOp->readSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_WRITE, ptrSrcOp->writeSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_STRM_WR, ptrSrcOp->streamWriteSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_WR_RES, ptrSrcOp->writeResponseSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_D_MSG, ptrSrcOp->dataMessageSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_DBELL, ptrSrcOp->doorbellSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_ACSWAP, ptrSrcOp->atomicCompareSwapSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_ATSWAP, ptrSrcOp->atomicTestSwapSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_A_INC, ptrSrcOp->atomicIncSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_A_DEC, ptrSrcOp->atomicDecSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_A_SET, ptrSrcOp->atomicSetSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_A_CLEAR, ptrSrcOp->atomicClearSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_A_SWAP, ptrSrcOp->atomicSwapSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_PORT_WR, ptrSrcOp->portWriteOperationSupport);
- CSL_FINS (value, SRIO_RIO_SRC_OP_IMPLEMENT_DEF2, ptrSrcOp->implnDefined2);
- hSrio->RIO_SRC_OP = value;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDestOperationCAR
- *
- * @b Description
- * @n The function reads the Switch Port Capabilities which are all the logical
- * operations that can be issued by the application.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ptrDstOp Pointer to the Dest CAR Structure populated by this
- API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DEST_OP_G_READ, SRIO_RIO_DEST_OP_G_IREAD, SRIO_RIO_DEST_OP_G_READ_OWN,
- * @n SRIO_RIO_DEST_OP_G_DC_INVALIDATE, SRIO_RIO_DEST_OP_G_CASTOUT, SRIO_RIO_DEST_OP_G_DC_FLUSH,
- * @n SRIO_RIO_DEST_OP_G_IO_READ, SRIO_RIO_DEST_OP_G_IC_INVALIDATE, SRIO_RIO_DEST_OP_G_TLB_INVALIDATE,
- * @n SRIO_RIO_DEST_OP_G_TLB_SYNC, SRIO_RIO_DEST_OP_DS_TM, SRIO_RIO_DEST_OP_DS,
- * @n SRIO_RIO_DEST_OP_IMPLEMENT_DEF, SRIO_RIO_DEST_OP_READ, SRIO_RIO_DEST_OP_WRITE,
- * @n SRIO_RIO_DEST_OP_STRM_WR, SRIO_RIO_DEST_OP_WR_RES, SRIO_RIO_DEST_OP_D_MSG, SRIO_RIO_DEST_OP_DBELL,
- * @n SRIO_RIO_DEST_OP_ACSWAP, SRIO_RIO_DEST_OP_ATSWAP, SRIO_RIO_DEST_OP_A_INC, SRIO_RIO_DEST_OP_A_DEC,
- * @n SRIO_RIO_DEST_OP_A_SET, SRIO_RIO_DEST_OP_A_CLEAR, SRIO_RIO_DEST_OP_A_SWAP, SRIO_RIO_DEST_OP_PORT_WR,
- * @n SRIO_RIO_DEST_OP_IMPLEMENT_DEF2
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_OP_CAR dstOPCAR;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Destination Operation CAR
- CSL_SRIO_GetDestOperationCAR (hSrio, &dstOPCAR);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDestOperationCAR
- (
- CSL_SrioHandle hSrio,
- SRIO_OP_CAR* ptrDstOp
- )
- {
- Uint32 value = hSrio->RIO_DEST_OP;
- /* Extract the fields from the Destination OP */
- ptrDstOp->gsmRead = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_READ);
- ptrDstOp->gsmInstrnRead = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_IREAD);
- ptrDstOp->gsmReadOwn = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_READ_OWN);
- ptrDstOp->gsmDataCacheInvalidate = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_DC_INVALIDATE);
- ptrDstOp->gsmCastout = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_CASTOUT);
- ptrDstOp->gsmDataCacheFlush = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_DC_FLUSH);
- ptrDstOp->gsmIORead = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_IO_READ);
- ptrDstOp->gsmInstrnCacheInvalidate = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_IC_INVALIDATE);
- ptrDstOp->gsmTLBInvalidate = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_TLB_INVALIDATE);
- ptrDstOp->gsmTLBSync = CSL_FEXT (value, SRIO_RIO_DEST_OP_G_TLB_SYNC);
- ptrDstOp->dataStreamingTM = CSL_FEXT (value, SRIO_RIO_DEST_OP_DS_TM);
- ptrDstOp->dataStreamingSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_DS);
- ptrDstOp->implnDefined = CSL_FEXT (value, SRIO_RIO_DEST_OP_IMPLEMENT_DEF);
- ptrDstOp->readSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_READ);
- ptrDstOp->writeSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_WRITE);
- ptrDstOp->streamWriteSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_STRM_WR);
- ptrDstOp->writeResponseSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_WR_RES);
- ptrDstOp->dataMessageSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_D_MSG);
- ptrDstOp->doorbellSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_DBELL);
- ptrDstOp->atomicCompareSwapSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_ACSWAP);
- ptrDstOp->atomicTestSwapSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_ATSWAP);
- ptrDstOp->atomicIncSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_A_INC);
- ptrDstOp->atomicDecSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_A_DEC);
- ptrDstOp->atomicSetSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_A_SET);
- ptrDstOp->atomicClearSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_A_CLEAR);
- ptrDstOp->atomicSwapSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_A_SWAP);
- ptrDstOp->portWriteOperationSupport = CSL_FEXT (value, SRIO_RIO_DEST_OP_PORT_WR);
- ptrDstOp->implnDefined2 = CSL_FEXT (value, SRIO_RIO_DEST_OP_IMPLEMENT_DEF2);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDestOperationCAR
- *
- * @b Description
- * @n The function sets the Switch Port Capabilities which are all the logical
- * operations that can be issued by the application.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ptrDstOp Pointer to the Dest CAR Structure to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_DEST_OP_G_READ, SRIO_RIO_DEST_OP_G_IREAD, SRIO_RIO_DEST_OP_G_READ_OWN,
- * @n SRIO_RIO_DEST_OP_G_DC_INVALIDATE, SRIO_RIO_DEST_OP_G_CASTOUT, SRIO_RIO_DEST_OP_G_DC_FLUSH,
- * @n SRIO_RIO_DEST_OP_G_IO_READ, SRIO_RIO_DEST_OP_G_IC_INVALIDATE, SRIO_RIO_DEST_OP_G_TLB_INVALIDATE,
- * @n SRIO_RIO_DEST_OP_G_TLB_SYNC, SRIO_RIO_DEST_OP_DS_TM, SRIO_RIO_DEST_OP_DS,
- * @n SRIO_RIO_DEST_OP_IMPLEMENT_DEF, SRIO_RIO_DEST_OP_READ, SRIO_RIO_DEST_OP_WRITE,
- * @n SRIO_RIO_DEST_OP_STRM_WR, SRIO_RIO_DEST_OP_WR_RES, SRIO_RIO_DEST_OP_D_MSG, SRIO_RIO_DEST_OP_DBELL,
- * @n SRIO_RIO_DEST_OP_ACSWAP, SRIO_RIO_DEST_OP_ATSWAP, SRIO_RIO_DEST_OP_A_INC, SRIO_RIO_DEST_OP_A_DEC,
- * @n SRIO_RIO_DEST_OP_A_SET, SRIO_RIO_DEST_OP_A_CLEAR, SRIO_RIO_DEST_OP_A_SWAP, SRIO_RIO_DEST_OP_PORT_WR,
- * @n SRIO_RIO_DEST_OP_IMPLEMENT_DEF2
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_OP_CAR dstOPCAR;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Dest Operation CAR
- CSL_SRIO_GetDestOperationCAR (hSrio, &dstOPCAR);
- // Allow Doorbell support.
- dstOPCAR.doorbellSupport = 1;
- // Set the Dest Operation CAR
- CSL_SRIO_SetDestOperationCAR (hSrio, &dstOPCAR);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDestOperationCAR
- (
- CSL_SrioHandle hSrio,
- SRIO_OP_CAR* ptrDstOp
- )
- {
- Uint32 value = 0;
- /* Populate the fields into the Source OP */
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_READ, ptrDstOp->gsmRead);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_IREAD, ptrDstOp->gsmInstrnRead);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_READ_OWN, ptrDstOp->gsmReadOwn);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_DC_INVALIDATE, ptrDstOp->gsmDataCacheInvalidate);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_CASTOUT, ptrDstOp->gsmCastout);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_DC_FLUSH, ptrDstOp->gsmDataCacheFlush);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_IO_READ, ptrDstOp->gsmIORead);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_IC_INVALIDATE, ptrDstOp->gsmInstrnCacheInvalidate);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_TLB_INVALIDATE, ptrDstOp->gsmTLBInvalidate);
- CSL_FINS (value, SRIO_RIO_DEST_OP_G_TLB_SYNC, ptrDstOp->gsmTLBSync);
- CSL_FINS (value, SRIO_RIO_DEST_OP_DS_TM, ptrDstOp->dataStreamingTM);
- CSL_FINS (value, SRIO_RIO_DEST_OP_DS, ptrDstOp->dataStreamingSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_IMPLEMENT_DEF, ptrDstOp->implnDefined);
- CSL_FINS (value, SRIO_RIO_DEST_OP_READ, ptrDstOp->readSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_WRITE, ptrDstOp->writeSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_STRM_WR, ptrDstOp->streamWriteSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_WR_RES, ptrDstOp->writeResponseSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_D_MSG, ptrDstOp->dataMessageSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_DBELL, ptrDstOp->doorbellSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_ACSWAP, ptrDstOp->atomicCompareSwapSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_ATSWAP, ptrDstOp->atomicTestSwapSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_A_INC, ptrDstOp->atomicIncSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_A_DEC, ptrDstOp->atomicDecSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_A_SET, ptrDstOp->atomicSetSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_A_CLEAR, ptrDstOp->atomicClearSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_A_SWAP, ptrDstOp->atomicSwapSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_PORT_WR, ptrDstOp->portWriteOperationSupport);
- CSL_FINS (value, SRIO_RIO_DEST_OP_IMPLEMENT_DEF2, ptrDstOp->implnDefined2);
- hSrio->RIO_DEST_OP = value;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDataStreamingInfo
- *
- * @b Description
- * @n The function gets the data streaming information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- maxPDU Maximum PDU
- segSupport Num of segmentation context
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DS_INFO_MAX_PDU, SRIO_RIO_DS_INFO_SEG_SUPPORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 maxPDU;
- Uint16 segSupport;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Data Streaming Information
- CSL_SRIO_GetDataStreamingInfo (hSrio, &maxPDU, &segSupport);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDataStreamingInfo
- (
- CSL_SrioHandle hSrio,
- Uint16* maxPDU,
- Uint16* segSupport
- )
- {
- Uint32 value = hSrio->RIO_DS_INFO;
- *maxPDU = CSL_FEXT (value, SRIO_RIO_DS_INFO_MAX_PDU);
- *segSupport = CSL_FEXT (value, SRIO_RIO_DS_INFO_SEG_SUPPORT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDataStreamingInfo
- *
- * @b Description
- * @n The function sets the data streaming information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- maxPDU Maximum PDU
- segSupport Num of segmentation context
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_DS_INFO_MAX_PDU, SRIO_RIO_DS_INFO_SEG_SUPPORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 maxPDU;
- Uint16 segSupport;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Data Streaming Information: 64K bytes and 64K Segmentation Context
- CSL_SRIO_SetDataStreamingInfo (hSrio, 0x0, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDataStreamingInfo
- (
- CSL_SrioHandle hSrio,
- Uint16 maxPDU,
- Uint16 segSupport
- )
- {
- hSrio->RIO_DS_INFO = CSL_FMK(SRIO_RIO_DS_INFO_MAX_PDU, maxPDU) |
- CSL_FMK(SRIO_RIO_DS_INFO_SEG_SUPPORT, segSupport);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDataStreamingType
- *
- * @b Description
- * @n The function gets the data streaming traffic management type
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- type Data Streaming Type populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DS_LL_CTL_TM_TYPES
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 type;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Data Streaming Type
- CSL_SRIO_GetDataStreamingType (hSrio, &type);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDataStreamingType
- (
- CSL_SrioHandle hSrio,
- Uint8* type
- )
- {
- *type = CSL_FEXT (hSrio->RIO_DS_LL_CTL, SRIO_RIO_DS_LL_CTL_TM_TYPES);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDataStreamingMode
- *
- * @b Description
- * @n The function gets the data streaming traffic management mode of operation
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mode Traffic Management Mode populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DS_LL_CTL_TM_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mode;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Data Streaming TM Mode
- CSL_SRIO_GetDataStreamingMode (hSrio, &mode);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDataStreamingMode
- (
- CSL_SrioHandle hSrio,
- Uint8* mode
- )
- {
- *mode = CSL_FEXT (hSrio->RIO_DS_LL_CTL, SRIO_RIO_DS_LL_CTL_TM_MODE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDataStreamingMode
- *
- * @b Description
- * @n The function sets the data streaming traffic management mode of operation
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mode Traffic Management Mode to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_DS_LL_CTL_TM_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mode;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Data Streaming TM Mode
- CSL_SRIO_SetDataStreamingMode (hSrio, &mode);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDataStreamingMode
- (
- CSL_SrioHandle hSrio,
- Uint8 mode
- )
- {
- CSL_FINS (hSrio->RIO_DS_LL_CTL, SRIO_RIO_DS_LL_CTL_TM_MODE, mode);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDataStreamingMTU
- *
- * @b Description
- * @n The function gets the data streaming MTU
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mtu MTU populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_DS_LL_CTL_MTU
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mtu;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Data Streaming MTU
- CSL_SRIO_GetDataStreamingMTU (hSrio, &mtu);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDataStreamingMTU
- (
- CSL_SrioHandle hSrio,
- Uint8* mtu
- )
- {
- *mtu = CSL_FEXT (hSrio->RIO_DS_LL_CTL, SRIO_RIO_DS_LL_CTL_MTU);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDataStreamingMTU
- *
- * @b Description
- * @n The function sets the data streaming MTU
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mtu MTU to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_DS_LL_CTL_MTU
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Data Streaming MTU
- CSL_SRIO_SetDataStreamingMTU (hSrio, 64);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDataStreamingMTU
- (
- CSL_SrioHandle hSrio,
- Uint8 mtu
- )
- {
- CSL_FINS (hSrio->RIO_DS_LL_CTL, SRIO_RIO_DS_LL_CTL_MTU, mtu);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPEExtendedAddressingControl
- *
- * @b Description
- * @n The function sets the processing element extended addressing control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- controlInfo Extended Addressing Control Information to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PE_LL_CTL_EXT_ADDR_CTL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Extended Addressing Control Information to operate in 34 bit addresses
- CSL_SRIO_SetPEExtendedAddressingControl (hSrio, 0x1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPEExtendedAddressingControl
- (
- CSL_SrioHandle hSrio,
- Uint8 controlInfo
- )
- {
- CSL_FINS (hSrio->RIO_PE_LL_CTL, SRIO_RIO_PE_LL_CTL_EXT_ADDR_CTL, controlInfo);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPEExtendedAddressingControl
- *
- * @b Description
- * @n The function gets the processing element extended addressing control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- controlInfo Extended Addressing Control Information populated
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PE_LL_CTL_EXT_ADDR_CTL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 controlInfo;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Extended Addressing Control Information
- CSL_SRIO_GetPEExtendedAddressingControl (hSrio, &controlInfo);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPEExtendedAddressingControl
- (
- CSL_SrioHandle hSrio,
- Uint8* controlInfo
- )
- {
- *controlInfo = CSL_FEXT (hSrio->RIO_PE_LL_CTL, SRIO_RIO_PE_LL_CTL_EXT_ADDR_CTL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetLocalConfig0SpaceInfo
- *
- * @b Description
- * @n The function sets the local configuration space base address0 Information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseInfo0 Local Configuration Base Address0
- baseInfo1 Local Configuration Base Address1
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LCL_CFG_HBAR_LCSBA0,SRIO_RIO_LCL_CFG_HBAR_LCSBA1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Local configuration information
- CSL_SRIO_SetLocalConfig0SpaceInfo (hSrio, 0x100, 0x200);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetLocalConfig0SpaceInfo
- (
- CSL_SrioHandle hSrio,
- Uint16 baseInfo0,
- Uint16 baseInfo1
- )
- {
- hSrio->RIO_LCL_CFG_HBAR = CSL_FMK (SRIO_RIO_LCL_CFG_HBAR_LCSBA1, baseInfo1) |
- CSL_FMK (SRIO_RIO_LCL_CFG_HBAR_LCSBA0, baseInfo0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLocalConfig0SpaceInfo
- *
- * @b Description
- * @n The function gets the local configuration space base address0 information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseInfo0 Local Configuration Base Address0
- baseInfo1 Local Configuration Base Address1
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LCL_CFG_HBAR_LCSBA0,SRIO_RIO_LCL_CFG_HBAR_LCSBA1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 baseInfo0;
- Uint16 baseInfo1;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Local configuration information
- CSL_SRIO_GetLocalConfig0SpaceInfo (hSrio, &baseInfo0, &baseInfo1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLocalConfig0SpaceInfo
- (
- CSL_SrioHandle hSrio,
- Uint16* baseInfo0,
- Uint16* baseInfo1
- )
- {
- Uint32 value = hSrio->RIO_LCL_CFG_HBAR;
- *baseInfo0 = CSL_FEXT(value, SRIO_RIO_LCL_CFG_HBAR_LCSBA0);
- *baseInfo1 = CSL_FEXT(value, SRIO_RIO_LCL_CFG_HBAR_LCSBA1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetLocalConfig1SpaceInfo
- *
- * @b Description
- * @n The function sets the local configuration space base address1 Information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseInfo0 Local Configuration Base Address0
- baseInfo1 Local Configuration Base Address1
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LCL_CFG_BAR_LCSBA0,SRIO_RIO_LCL_CFG_BAR_LCSBA1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Local configuration1 information
- CSL_SRIO_SetLocalConfig1SpaceInfo (hSrio, 0x100, 0x200);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetLocalConfig1SpaceInfo
- (
- CSL_SrioHandle hSrio,
- Uint8 baseInfo0,
- Uint32 baseInfo1
- )
- {
- hSrio->RIO_LCL_CFG_BAR = CSL_FMK (SRIO_RIO_LCL_CFG_BAR_LCSBA1, baseInfo1) |
- CSL_FMK (SRIO_RIO_LCL_CFG_BAR_LCSBA0, baseInfo0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLocalConfig1SpaceInfo
- *
- * @b Description
- * @n The function gets the local configuration space base address1 Information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseInfo0 Local Configuration Base Address0
- baseInfo1 Local Configuration Base Address1
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LCL_CFG_BAR_LCSBA0,SRIO_RIO_LCL_CFG_BAR_LCSBA1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 baseInfo0;
- Uint32 baseInfo1;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Local configuration1 information
- CSL_SRIO_GetLocalConfig1SpaceInfo (hSrio, &baseInfo0, &baseInfo1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLocalConfig1SpaceInfo
- (
- CSL_SrioHandle hSrio,
- Uint8* baseInfo0,
- Uint32* baseInfo1
- )
- {
- Uint32 value = hSrio->RIO_LCL_CFG_BAR;
- *baseInfo0 = CSL_FEXT(value, SRIO_RIO_LCL_CFG_BAR_LCSBA0);
- *baseInfo1 = CSL_FEXT(value, SRIO_RIO_LCL_CFG_BAR_LCSBA1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetDeviceIDCSR
- *
- * @b Description
- * @n The function sets the 8bit and 16 device ID in the standard CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseID8Bit 8bit Device Identifier.
- baseID16Bit 16bit Device Identifier.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_BASE_ID_BASE_ID,SRIO_RIO_BASE_ID_LARGE_BASE_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Device Identifier CSR
- CSL_SRIO_SetDeviceIDCSR (hSrio, 0x0, 0xDEAD);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetDeviceIDCSR
- (
- CSL_SrioHandle hSrio,
- Uint8 baseID8Bit,
- Uint16 baseID16Bit
- )
- {
- /* Populate the fields into the Device ID CSR */
- hSrio->RIO_BASE_ID = CSL_FMK (SRIO_RIO_BASE_ID_BASE_ID, baseID8Bit) |
- CSL_FMK (SRIO_RIO_BASE_ID_LARGE_BASE_ID, baseID16Bit);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDeviceIDCSR
- *
- * @b Description
- * @n The function gets the 8bit and 16 device ID in the standard CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- baseID8Bit 8bit Device Identifier populated by this API
- baseID16Bit 16bit Device Identifier populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_BASE_ID_BASE_ID,SRIO_RIO_BASE_ID_LARGE_BASE_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 baseID8Bit;
- Uint16 baseID16Bit;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Device Identifier CSR
- CSL_SRIO_GetDeviceIDCSR (hSrio, &baseID8Bit, &baseID16Bit);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDeviceIDCSR
- (
- CSL_SrioHandle hSrio,
- Uint8* baseID8Bit,
- Uint16* baseID16Bit
- )
- {
- Uint32 value = hSrio->RIO_BASE_ID;
- *baseID8Bit = CSL_FEXT (value, SRIO_RIO_BASE_ID_BASE_ID);
- *baseID16Bit = CSL_FEXT (value, SRIO_RIO_BASE_ID_LARGE_BASE_ID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetHostDeviceID
- *
- * @b Description
- * @n The function sets the host device identifier which is responsible for
- * initializing the processing element.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- identifier Device Identifier to be configured.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_HOST_BASE_ID_LOCK_HOST_BASE_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Host Device Identifier.
- CSL_SRIO_SetHostDeviceID (hSrio, 0xBEEF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetHostDeviceID
- (
- CSL_SrioHandle hSrio,
- Uint16 identifier
- )
- {
- /* Populate the fields into the Device ID CSR */
- hSrio->RIO_HOST_BASE_ID_LOCK = CSL_FMK (SRIO_RIO_HOST_BASE_ID_LOCK_HOST_BASE_ID, identifier);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetHostDeviceID
- *
- * @b Description
- * @n The function gets the host device identifier which is responsible for
- * initializing the processing element.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- identifier Device Identifier to be populated by this API.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_HOST_BASE_ID_LOCK_HOST_BASE_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 deviceID;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Host Device Identifier.
- CSL_SRIO_GetHostDeviceID (hSrio, &deviceID);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetHostDeviceID
- (
- CSL_SrioHandle hSrio,
- Uint16* identifier
- )
- {
- *identifier = CSL_FEXT (hSrio->RIO_HOST_BASE_ID_LOCK, SRIO_RIO_HOST_BASE_ID_LOCK_HOST_BASE_ID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetCompTagCSR
- *
- * @b Description
- * @n The function sets the component tag CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ctag Component Tag to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_COMP_TAG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Component Tag CSR
- CSL_SRIO_SetCompTagCSR (hSrio, 0xBEEF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetCompTagCSR
- (
- CSL_SrioHandle hSrio,
- Uint32 ctag
- )
- {
- hSrio->RIO_COMP_TAG = ctag;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetCompTagCSR
- *
- * @b Description
- * @n The function gets the component tag CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ctag Component Tag to be populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_COMP_TAG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 tag;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the component TAG CSR
- CSL_SRIO_GetCompTagCSR (hSrio, &tag);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetCompTagCSR
- (
- CSL_SrioHandle hSrio,
- Uint32* ctag
- )
- {
- *ctag = hSrio->RIO_COMP_TAG;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetMaintBlockHeaderInfo
- *
- * @b Description
- * @n The function gets the maintainance block header information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- extFeatPtr Extended Feature Pointer populated by this API
- extFeatID Extended Feature ID populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_MB_HEAD_EF_PTR,SRIO_RIO_SP_MB_HEAD_EF_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 extFeatPtr;
- Uint16 extFeatID;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the maintainance block header
- CSL_SRIO_GetMaintBlockHeaderInfo (hSrio, &extFeatPtr, &extFeatID);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetMaintBlockHeaderInfo
- (
- CSL_SrioHandle hSrio,
- Uint16* extFeatPtr,
- Uint16* extFeatID
- )
- {
- Uint32 value = hSrio->RIO_SP_MB_HEAD;
- *extFeatPtr = CSL_FEXT (value, SRIO_RIO_SP_MB_HEAD_EF_PTR);
- *extFeatID = CSL_FEXT (value, SRIO_RIO_SP_MB_HEAD_EF_ID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortLinkTimeoutCSR
- *
- * @b Description
- * @n The functions gets the port link timeout. This timeout is for link events
- * such as sending a packet to receiving the corresponding acknowledge, and
- * sending a link-request to receiving the corresponding link-response
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- timeout Timeout value populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_LT_CTL_TVAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 timeout;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the port link timeout
- CSL_SRIO_GetPortLinkTimeoutCSR (hSrio, &timeout);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortLinkTimeoutCSR
- (
- CSL_SrioHandle hSrio,
- Uint32* timeout
- )
- {
- *timeout = CSL_FEXT (hSrio->RIO_SP_LT_CTL, SRIO_RIO_SP_LT_CTL_TVAL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortLinkTimeoutCSR
- *
- * @b Description
- * @n The functions sets the port link timeout.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- timeout Timeout value to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_LT_CTL_TVAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 timeout;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the port link timeout
- CSL_SRIO_SetPortLinkTimeoutCSR (hSrio, 10);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortLinkTimeoutCSR
- (
- CSL_SrioHandle hSrio,
- Uint32 timeout
- )
- {
- CSL_FINS (hSrio->RIO_SP_LT_CTL, SRIO_RIO_SP_LT_CTL_TVAL, timeout);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortResponseTimeoutCSR
- *
- * @b Description
- * @n The functions gets the port response timeout. This timeout is for
- * sending a packet to receiving the corresponding response packet
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- timeout Timeout value populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_RT_CTL_TVAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 timeout;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the port response timeout
- CSL_SRIO_GetPortResponseTimeoutCSR (hSrio, &timeout);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortResponseTimeoutCSR
- (
- CSL_SrioHandle hSrio,
- Uint32* timeout
- )
- {
- *timeout = CSL_FEXT (hSrio->RIO_SP_RT_CTL, SRIO_RIO_SP_RT_CTL_TVAL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortResponseTimeoutCSR
- *
- * @b Description
- * @n The functions sets the port response timeout. This timeout is for
- * sending a packet to receiving the corresponding response packet
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- timeout Timeout value to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RT_CTL_TVAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 timeout;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the port response timeout
- CSL_SRIO_SetPortResponseTimeoutCSR (hSrio, 0xFFFF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortResponseTimeoutCSR
- (
- CSL_SrioHandle hSrio,
- Uint32 timeout
- )
- {
- CSL_FINS (hSrio->RIO_SP_RT_CTL, SRIO_RIO_SP_RT_CTL_TVAL, timeout);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortGeneralCSR
- *
- * @b Description
- * @n The functions gets the CSR information for all ports.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- hostDev Host /Agent or Slave Device populated by this API
- masterEn Master Enable populated by this API
- disc Discovered flag populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_GEN_CTL_HOST,SRIO_RIO_SP_GEN_CTL_MAST_EN,SRIO_RIO_SP_GEN_CTL_DISC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 hostDev;
- Uint8 masterEn;
- Uint8 disc;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the port information.
- CSL_SRIO_GetPortGeneralCSR (hSrio, &hostDev, &masterEn, &disc);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortGeneralCSR
- (
- CSL_SrioHandle hSrio,
- Uint8* hostDev,
- Uint8* masterEn,
- Uint8* disc
- )
- {
- Uint32 value = hSrio->RIO_SP_GEN_CTL;
- *hostDev = CSL_FEXT (value, SRIO_RIO_SP_GEN_CTL_HOST);
- *masterEn = CSL_FEXT (value, SRIO_RIO_SP_GEN_CTL_MAST_EN);
- *disc = CSL_FEXT (value, SRIO_RIO_SP_GEN_CTL_DISC);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortGeneralCSR
- *
- * @b Description
- * @n The functions sets the CSR information for all ports.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- hostDev Host /Agent or Slave Device to be configured
- masterEn Master Enable to be configured
- disc Discovered flag to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_GEN_CTL_HOST,SRIO_RIO_SP_GEN_CTL_MAST_EN,SRIO_RIO_SP_GEN_CTL_DISC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the port information.
- CSL_SRIO_SetPortGeneralCSR (hSrio, 1, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortGeneralCSR
- (
- CSL_SrioHandle hSrio,
- Uint8 hostDev,
- Uint8 masterEn,
- Uint8 disc
- )
- {
- hSrio->RIO_SP_GEN_CTL = CSL_FMK(SRIO_RIO_SP_GEN_CTL_HOST, hostDev) |
- CSL_FMK(SRIO_RIO_SP_GEN_CTL_MAST_EN, masterEn) |
- CSL_FMK(SRIO_RIO_SP_GEN_CTL_DISC, disc);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SendPortLinkMaintRequest
- *
- * @b Description
- * @n The function sends a port link request control symbol on the specified
- * SRIO port.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- cmd Command to be sent in the link-request control symbol.
- The following values hold good:-
- - 0x3 i.e. Reset
- - 0x4 i.e. Input Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_LM_REQ_CMD
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Send a maintainance request on port 1 for reset
- CSL_SRIO_SendPortLinkMaintRequest (hSrio, 1, 3);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SendPortLinkMaintRequest
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 cmd
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_LM_REQ, SRIO_RIO_SP_LM_REQ_CMD, cmd);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsLinkResponseReceived
- *
- * @b Description
- * @n The function checks if a valid link response has been received to the
- * previously sent link request.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_LM_RESP_RESP_VALID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the Link response received or not?
- if (CSL_SRIO_IsLinkResponseReceived (hSrio, 1) == TRUE)
- {
- // Link Response was received.
- }
- else
- {
- // Link Response was NOT received
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsLinkResponseReceived
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_LM_RESP, SRIO_RIO_SP_LM_RESP_RESP_VALID) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLinkResponseStatusInfo
- *
- * @b Description
- * @n The function gets the status information about the link response.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ackIdStatus AckID status field populated by this API
- linkStatus Link status field populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_LM_RESP_ACK_ID_STAT,SRIO_RIO_SP_LM_RESP_LINK_STAT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 ackIdStatus;
- Uint8 linkStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the Link response received or not?
- if (CSL_SRIO_IsLinkResponseReceived (hSrio, 1) == TRUE)
- {
- // Link Response was received.
- CSL_SRIO_GetLinkResponseStatusInfo (hSrio, 1, &ackIdStatus, &linkStatus);
- }
- else
- {
- // Link Response was NOT received.
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLinkResponseStatusInfo
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* ackIdStatus,
- Uint8* linkStatus
- )
- {
- Uint32 value = hSrio->RIO_SP[portNum].RIO_SP_LM_RESP;
- *ackIdStatus = CSL_FEXT (value, SRIO_RIO_SP_LM_RESP_ACK_ID_STAT);
- *linkStatus = CSL_FEXT (value, SRIO_RIO_SP_LM_RESP_LINK_STAT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutstandingACK
- *
- * @b Description
- * @n The function is used to clear the outstanding acknowledgment ids and is
- * used for software assisted ackID realignment.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ACKID_STAT_CLR_OUTSTD_ACKID=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ACKID_STAT_OUTSTD_ACKID=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Clear outstanding ackID for SRIO Port 1
- CSL_SRIO_ClearOutstandingACK (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutstandingACK
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ACKID_STAT, SRIO_RIO_SP_ACKID_STAT_CLR_OUTSTD_ACKID, (Uint32)1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetACKStatus
- *
- * @b Description
- * @n The function is used to get the ACK status.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- inputAckID Input port next expected ACK ID
- outputUnAckID Output port unacknowledged ackID status
- outputAckID Output port next transmitted Acknowledge ID value
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ACKID_STAT_INB_ACKID,SRIO_RIO_SP_ACKID_STAT_OUTSTD_ACKID,SRIO_RIO_SP_ACKID_STAT_OUTB_ACKID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 inputAckID;
- Uint8 outputUnAckID;
- Uint8 outputAckID;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the ACK Status for Port 1
- CSL_SRIO_GetACKStatus (hSrio, 1, &inputAckID, &outputUnAckID, &outputAckID);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetACKStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* inputAckID,
- Uint8* outputUnAckID,
- Uint8* outputAckID
- )
- {
- Uint32 value = hSrio->RIO_SP[portNum].RIO_SP_ACKID_STAT;
- *inputAckID = CSL_FEXT (value, SRIO_RIO_SP_ACKID_STAT_INB_ACKID);
- *outputUnAckID = CSL_FEXT (value, SRIO_RIO_SP_ACKID_STAT_OUTSTD_ACKID);
- *outputAckID = CSL_FEXT (value, SRIO_RIO_SP_ACKID_STAT_OUTB_ACKID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetACKStatus
- *
- * @b Description
- * @n The function is used to set the ACK status.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- inputAckID Input port next expected ACK ID
- outputUnAckID Output port unacknowledged ackID status
- outputAckID Output port next transmitted Acknowledge ID value
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ACKID_STAT_INB_ACKID, SRIO_RIO_SP_ACKID_STAT_OUTB_ACKID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the ACK Status for Port 1
- CSL_SRIO_SetACKStatus (hSrio, 1, 100, 205);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetACKStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 inputAckID,
- Uint8 outputAckID
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ACKID_STAT, SRIO_RIO_SP_ACKID_STAT_INB_ACKID, inputAckID);
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ACKID_STAT, SRIO_RIO_SP_ACKID_STAT_OUTB_ACKID, outputAckID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortBaudRate
- *
- * @b Description
- * @n The function is used to get the initialized baud rate of the port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- baudSel Baud Rate Selection populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_BAUD_SEL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 baudSel;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port 1 Baud Rate
- CSL_SRIO_GetPortBaudRate (hSrio, 1, &baudSel);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortBaudRate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* baudSel
- )
- {
- *baudSel = CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_BAUD_SEL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsAutomaticBaudRateDiscoverySupported
- *
- * @b Description
- * @n The function is used to check if automatic baud rate discovery is
- * supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_BAUD_DISC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is Port1 Automatic Baud Rate Discovery supported
- if (CSL_SRIO_IsAutomaticBaudRateDiscoverySupported (hSrio, 1) == TRUE)
- {
- // Port1 Automatic Baud Rate Discovery supported
- }
- else
- {
- // Port1 Automatic Baud Rate Discovery NOT supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsAutomaticBaudRateDiscoverySupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_BAUD_DISC) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Is1_25GBaudSupported
- *
- * @b Description
- * @n The function is used to check if 1.25 GBaud is supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - 1.25GBaud is supported
- * @n FALSE - 1.25GBaud is not supported
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_GB_1P25
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if 1.25Gbaud is supported or not?
- if (CSL_SRIO_Is1_25GBaudSupported (hSrio, 1) == TRUE)
- {
- // 1.25Gbaud is supported
- }
- else
- {
- // 1.25Gbaud is not supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_Is1_25GBaudSupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_1P25) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Enable1_25GBaud
- *
- * @b Description
- * @n The function is used to enable 1.25GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_1P25_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 1.25G Baud
- CSL_SRIO_Enable1_25GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Enable1_25GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_1P25_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Disable1_25GBaud
- *
- * @b Description
- * @n The function is used to enable 1.25GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_1P25_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 1.25G Baud
- CSL_SRIO_Disable1_25GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Disable1_25GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_1P25_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Is2_5GBaudSupported
- *
- * @b Description
- * @n The function is used to check if 2.5GBaud is supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - 2.5GBaud is supported
- * @n FALSE - 2.5GBaud is not supported
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_GB_2P5
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if 2.5Gbaud is supported or not?
- if (CSL_SRIO_Is2_5GBaudSupported (hSrio, 1) == TRUE)
- {
- // 2.5Gbaud is supported
- }
- else
- {
- // 2.5Gbaud is not supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_Is2_5GBaudSupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_2P5) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Enable2_5GBaud
- *
- * @b Description
- * @n The function is used to enable 2.5GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_2P5_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 2.5GBaud
- CSL_SRIO_Enable2_5GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Enable2_5GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_2P5_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Disable2_5GBaud
- *
- * @b Description
- * @n The function is used to disable 2.5GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_2P5_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 2.5GBaud
- CSL_SRIO_Disable2_5GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Disable2_5GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_2P5_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Is3_125GBaudSupported
- *
- * @b Description
- * @n The function is used to check if 3.125GBaud is supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - 3.125GBaud is supported
- * @n FALSE - 3.125GBaud is not supported
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_GB_3P125
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if 3.125Gbaud is supported or not?
- if (CSL_SRIO_Is3_125GBaudSupported (hSrio, 1) == TRUE)
- {
- // 3.125Gbaud is supported
- }
- else
- {
- // 3.125Gbaud is not supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_Is3_125GBaudSupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_3P125) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Enable3_125GBaud
- *
- * @b Description
- * @n The function is used to enable 3.125GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_3P125_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 3.125GBaud
- CSL_SRIO_Enable3_125GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Enable3_125GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_3P125_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Disable3_125GBaud
- *
- * @b Description
- * @n The function is used to disable 3.125GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_3P125_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 3.125GBaud
- CSL_SRIO_Disable3_125GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Disable3_125GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_3P125_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Is5GBaudSupported
- *
- * @b Description
- * @n The function is used to check if 5GBaud is supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - 5GBaud is supported
- * @n FALSE - 5GBaud is not supported
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_GB_5P0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if 5Gbaud is supported or not?
- if (CSL_SRIO_Is5GBaudSupported (hSrio, 1) == TRUE)
- {
- // 5Gbaud is supported
- }
- else
- {
- // 5Gbaud is not supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_Is5GBaudSupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_5P0) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Enable5GBaud
- *
- * @b Description
- * @n The function is used to enable 5GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_5P0_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 5GBaud
- CSL_SRIO_Enable5GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Enable5GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_5P0_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Disable5GBaud
- *
- * @b Description
- * @n The function is used to disable 5GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_5P0_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 5GBaud
- CSL_SRIO_Disable5GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Disable5GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_5P0_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Is6_25GBaudSupported
- *
- * @b Description
- * @n The function is used to check if 6_25GBaud is supported or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - 6_25GBaud is supported
- * @n FALSE - 6_25GBaud is not supported
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_GB_6P25
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if 6_25Gbaud is supported or not?
- if (CSL_SRIO_Is6_25GBaudSupported (hSrio, 1) == TRUE)
- {
- // 6_25Gbaud is supported
- }
- else
- {
- // 6_25Gbaud is not supported
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_Is6_25GBaudSupported
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_6P25) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Enable6_25GBaud
- *
- * @b Description
- * @n The function is used to enable 6.25GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_6P25_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 6.25GBaud
- CSL_SRIO_Enable6_25GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Enable6_25GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_6P25_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_Disable6_25GBaud
- *
- * @b Description
- * @n The function is used to disable 6.25GBaud for the specified port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_GB_6P25_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 6.25GBaud
- CSL_SRIO_Disable6_25GBaud (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_Disable6_25GBaud
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_GB_6P25_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableDataScrambling
- *
- * @b Description
- * @n The function is used to enable data scrambling for the specific port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_D_SCRM_DIS=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable Port1 Data Scrambling
- CSL_SRIO_EnableDataScrambling (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableDataScrambling
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_D_SCRM_DIS, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableDataScrambling
- *
- * @b Description
- * @n The function is used to disable data scrambling for the specific port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL2_D_SCRM_DIS=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable Port1 Data Scrambling
- CSL_SRIO_DisableDataScrambling (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableDataScrambling
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_D_SCRM_DIS, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsRemoteTxEmphasisEnabled
- *
- * @b Description
- * @n The function is used to check if the remote transmit emphasis is enabled
- * or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL2_RTEC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if remote Transmit Emphasis is enabled or not?
- if (CSL_SRIO_IsRemoteTxEmphasisEnabled (hSrio, 1) == TRUE)
- {
- // Remote Transmit Emphasis is enabled
- }
- else
- {
- // Remote Transmit Emphasis is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsRemoteTxEmphasisEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL2, SRIO_RIO_SP_CTL2_RTEC) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputPktDropped
- *
- * @b Description
- * @n The function is used to check if the output port has discarded a packet
- * or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DROP
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has discarded a packet or not?
- if (CSL_SRIO_IsOutputPktDropped (hSrio, 1) == TRUE)
- {
- // Port1 has discarded the packet
- }
- else
- {
- // Port1 has NOT discarded the packet
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputPktDropped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_DROP) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutputPktDropped
- *
- * @b Description
- * @n The function is used to clear the status of the output port after the
- * output port discarded condition has been detected
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DROP=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DROP=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has discarded a packet or not?
- if (CSL_SRIO_IsOutputPktDropped (hSrio, 1) == TRUE)
- {
- // Port1 has discarded the packet
- ...
- // Clear this error condition
- CSL_SRIO_ClearOutputPktDropped (hSrio, 1);
- }
- else
- {
- // Port1 has NOT discarded the packet
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutputPktDropped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_DROP, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputFailed
- *
- * @b Description
- * @n The function is used to check if the output port has encountered a failed
- * condition.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_FAIL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT failed condition?
- if (CSL_SRIO_IsOutputFailed (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT failed condition
- }
- else
- {
- // Port1 has NOT detected an OUTPUT failed condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputFailed
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_FAIL) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutputFailed
- *
- * @b Description
- * @n The function is used to clear the status of the output port after a
- * failed condition was detected
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_FAIL=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_FAIL=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected a failed condition or not?
- if (CSL_SRIO_IsOutputFailed (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT failed condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearOutputFailed (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected an OUTPUT failed condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutputFailed
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_FAIL, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputDegraded
- *
- * @b Description
- * @n The function is used to check if the output port has encountered a degraded
- * condition or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DEGR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT degraded condition?
- if (CSL_SRIO_IsOutputDegraded (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT degraded condition
- }
- else
- {
- // Port1 has NOT detected an OUTPUT degraded condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputDegraded
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_DEGR) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutputDegrade
- *
- * @b Description
- * @n The function is used to clear the status of the output port after a
- * failed condition was detected
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DEGR=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_DEGR=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT degraded condition?
- if (CSL_SRIO_IsOutputDegraded (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT degraded condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearOutputDegrade (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected an OUTPUT degraded condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutputDegrade
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_DEGR, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputRetryStopped
- *
- * @b Description
- * @n The function is used to check if the output port has received a packet
- * retry control symbol.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_RETRY_STOPPED
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT Retry condition?
- if (CSL_SRIO_IsOutputRetryStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT Retry condition
- }
- else
- {
- // Port1 has NOT detected an OUTPUT Retry condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputRetryStopped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_RETRY_STOPPED) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutputRetry
- *
- * @b Description
- * @n The function is used to clear the status of the output port after the output
- * retry condition was detected.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_RETRY=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_RETRY_STOPPED=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT Retry condition?
- if (CSL_SRIO_IsOutputRetryStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT Retry condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearOutputRetry (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected an OUTPUT Retry condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutputRetry
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_RETRY, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputErrorStopped
- *
- * @b Description
- * @n The function is used to check if the output port has detected an error
- * and is in the output error stopped state
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_ERR_STOPPED
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT Error stopped condition?
- if (CSL_SRIO_IsOutputErrorStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT Error stopped condition
- }
- else
- {
- // Port1 has NOT detected an OUTPUT Error stopped condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputErrorStopped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_ERR_STOPPED) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearOutputErrorStopped
- *
- * @b Description
- * @n The function is used to clear the status of the output port after the output
- * error stopped condition was detected.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_ERR_ENCTR=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_OUTPUT_ERR_STOPPED=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an OUTPUT Error stopped condition?
- if (CSL_SRIO_IsOutputErrorStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an OUTPUT Error stopped condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearOutputErrorStopped (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected an OUTPUT Error stopped condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearOutputErrorStopped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_OUTPUT_ERR, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsInputErrorStopped
- *
- * @b Description
- * @n The function is used to check if the port has detected an error
- * and is in the input error stopped state
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_INPUT_ERR_STOPPED
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an INPUT Error stopped condition?
- if (CSL_SRIO_IsInputErrorStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an INPUT Error stopped condition
- }
- else
- {
- // Port1 has NOT detected an INPUT Error stopped condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsInputErrorStopped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_INPUT_ERR_STOPPED) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearInputErrorStopped
- *
- * @b Description
- * @n The function is used to clear the status of the input port after the input
- * error stopped condition was detected.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_INPUT_ERR_ENCTR=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_INPUT_ERR_STOPPED=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected an INPUT Error stopped condition?
- if (CSL_SRIO_IsInputErrorStopped (hSrio, 1) == TRUE)
- {
- // Port1 has detected an INPUT Error stopped condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearInputErrorStopped (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected an INPUT Error stopped condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearInputErrorStopped
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_INPUT_ERR_ENCTR, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortWritePending
- *
- * @b Description
- * @n The function is used to check if the port has encountered a condition
- * which required it to an issue an I/O logical port-write maintainance
- * request
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_PORT_WRITE_PEND
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected a port write pending condition?
- if (CSL_SRIO_IsPortWritePending (hSrio, 1) == TRUE)
- {
- // Port1 has detected a port write pending condition
- }
- else
- {
- // Port1 has NOT detected a port write pending condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortWritePending
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_WRITE_PEND) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPortWritePending
- *
- * @b Description
- * @n The function is used to clear the port write pending condition
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_STAT_PORT_WRITE_PEND=1
- *
- * @b Affects
- * @n SRIO_RIO_SP_ERR_STAT_PORT_WRITE_PEND=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 has detected a port write pending condition?
- if (CSL_SRIO_IsPortWritePending (hSrio, 1) == TRUE)
- {
- // Port1 has detected a port write pending condition
- ...
- // Clear this error condition
- CSL_SRIO_ClearInputErrorStopped (hSrio, 1);
- }
- else
- {
- // Port1 has NOT detected a port write pending condition
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPortWritePending
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_WRITE_PEND, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortAvailable
- *
- * @b Description
- * @n The function is used to check if the port is available?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_PORT_UNAVL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 is available or not?
- if (CSL_SRIO_IsPortAvailable (hSrio, 1) == TRUE)
- {
- // Port1 is available
- }
- else
- {
- // Port1 is not available
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortAvailable
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_UNAVL) == 0)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortFatalErrorDetected
- *
- * @b Description
- * @n The function is used to check if the port has detected an error from which
- * the hardware was unable to recover (a fatal error).
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port Fatal Error detected
- * @n FALSE - Port Fatal Error not detected
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_PORT_ERR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 fatal error was detected or not?
- if (CSL_SRIO_IsPortFatalErrorDetected (hSrio, 1) == TRUE)
- {
- // Port1 has FATAL Error
- }
- else
- {
- // Port1 does not have a FATAL Error
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortFatalErrorDetected
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_ERR) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortOk
- *
- * @b Description
- * @n The function is used to check if the port is initialized and can be
- * used for exchanging error free control symbols.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port is operational
- * @n FALSE - Port is NOT operational
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_PORT_OK
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 is ok and operational
- if (CSL_SRIO_IsPortOk (hSrio, 1) == TRUE)
- {
- // Port1 is OK and can be used
- }
- else
- {
- // Port1 is NOT OK and cannot be used
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortOk
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_OK) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortInitialized
- *
- * @b Description
- * @n The function is used to check if the port is initialized or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port is initialized
- * @n FALSE - Port is NOT initialized
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_STAT_PORT_UNINIT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if Port1 is initialized or not?
- if (CSL_SRIO_IsPortInitialized (hSrio, 1) == TRUE)
- {
- // Port1 is Initialized
- }
- else
- {
- // Port1 is NOT Initialized
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortInitialized
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_ERR_STAT, SRIO_RIO_SP_ERR_STAT_PORT_UNINIT) == 0)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetSupportedPortWidth
- *
- * @b Description
- * @n The function is used to get the supported port width for a specific port
- * in addition to the 1x mode which is supported by all ports.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWidth Port Width populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_PORT_WIDTH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portWidth;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the supported port width for port1
- CSL_SRIO_GetSupportedPortWidth(hSrio, 1, &portWidth);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetSupportedPortWidth
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portWidth
- )
- {
- *portWidth = CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_WIDTH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetInitializedPortWidth
- *
- * @b Description
- * @n The function is used to get the width of the port after initialization.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWidth Port Width populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_INIT_PWIDTH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portWidth;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the initialized port width for port1
- CSL_SRIO_GetInitializedPortWidth(hSrio, 1, &portWidth);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetInitializedPortWidth
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portWidth
- )
- {
- *portWidth = CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_INIT_PWIDTH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetSoftwarePortWidth
- *
- * @b Description
- * @n The function is used to get the software port configuration to override
- * the hardware sizes.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWidth Port Width populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_OVER_PWIDTH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portWidth;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the software port width override
- CSL_SRIO_GetSoftwarePortWidth(hSrio, 1, &portWidth);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetSoftwarePortWidth
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portWidth
- )
- {
- *portWidth = CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_OVER_PWIDTH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetSoftwarePortWidth
- *
- * @b Description
- * @n The function is used to set the software port configuration to override
- * the hardware sizes.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWidth Port Width to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_OVER_PWIDTH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the software port width override to force 2x mode
- CSL_SRIO_SetSoftwarePortWidth(hSrio, 1, 5);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetSoftwarePortWidth
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 portWidth
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_OVER_PWIDTH, portWidth);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePort
- *
- * @b Description
- * @n The function is used to enable the specific port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_PORT_DIS=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable port 1
- CSL_SRIO_EnablePort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_DIS, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePort
- *
- * @b Description
- * @n The function is used to disable the specific port
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_PORT_DIS=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable port 1
- CSL_SRIO_DisablePort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_DIS, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortEnabled
- *
- * @b Description
- * @n The function is used to check if the port is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port is enabled
- * @n FALSE - Port is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_PORT_DIS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if port 1 is enabled or not?
- if (CSL_SRIO_IsPortEnabled(hSrio, 1) == TRUE)
- {
- // Port1 is enabled
- }
- else
- {
- // Port1 is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_DIS) == 0)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableOutputPort
- *
- * @b Description
- * @n The function is used to enable the output port to issue any packets
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_OTP_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable output port 1
- CSL_SRIO_EnableOutputPort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableOutputPort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_OTP_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableOutputPort
- *
- * @b Description
- * @n The function is used to disable the output port and is unable to issue
- * any packets except to route or respond to MAINTENANCE packets.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_OTP_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable output port 1
- CSL_SRIO_DisableOutputPort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableOutputPort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_OTP_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsOutputPortEnabled
- *
- * @b Description
- * @n The function is used to check if the output port is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Output Port is enabled
- * @n FALSE - Output Port is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_OTP_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if output port 1 is enabled or not?
- if (CSL_SRIO_IsOutputPortEnabled(hSrio, 1) == TRUE)
- {
- // Output Port1 is enabled
- }
- else
- {
- // Output Port1 is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsOutputPortEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_OTP_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableInputPort
- *
- * @b Description
- * @n The function is used to enable the input port to issue any packets
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_INP_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable input port 1
- CSL_SRIO_EnableInputPort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableInputPort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_INP_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableInputPort
- *
- * @b Description
- * @n The function is used to disable the input port to issue any packets
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_INP_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable input port 1
- CSL_SRIO_DisableInputPort(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableInputPort
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_INP_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsInputPortEnabled
- *
- * @b Description
- * @n The function is used to check if the input port is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Input Port is enabled
- * @n FALSE - Input Port is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_INP_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if input port 1 is enabled or not?
- if (CSL_SRIO_IsInputPortEnabled(hSrio, 1) == TRUE)
- {
- // Input Port1 is enabled
- }
- else
- {
- // Input Port1 is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsInputPortEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_INP_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortErrorChecking
- *
- * @b Description
- * @n The function is used to enable the error checking
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_ERR_DIS=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable error checking for port 1
- CSL_SRIO_EnablePortErrorChecking(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortErrorChecking
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_ERR_DIS, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortErrorChecking
- *
- * @b Description
- * @n The function is used to disable the error checking
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_ERR_DIS=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable error checking for port 1
- CSL_SRIO_DisablePortErrorChecking(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortErrorChecking
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_ERR_DIS, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortErrorCheckingEnabled
- *
- * @b Description
- * @n The function is used to check if the error checking is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Error Checking is enabled
- * @n FALSE - Error Checking is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_ERR_DIS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if error checking for port 1 is enabled or not?
- if (CSL_SRIO_IsPortErrorCheckingEnabled(hSrio, 1) == TRUE)
- {
- // Port1 error checking is enabled
- }
- else
- {
- // Port1 error checking is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortErrorCheckingEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_ERR_DIS) == 0)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetMulticastEventParticipant
- *
- * @b Description
- * @n The function is used to get the Multicast Event Participant status for the
- * specific port.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- multicastEvent Multicast Event Participant status populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_MULT_CS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 multicastEvent;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Multicast Event Participant status for Port 1
- CSL_SRIO_GetMulticastEventParticipant(hSrio, 1, &multicastEvent);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetMulticastEventParticipant
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* multicastEvent
- )
- {
- *multicastEvent = CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_MULT_CS);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetMulticastEventParticipant
- *
- * @b Description
- * @n The function is used to set the Multicast Event Participant status for the
- * specific port.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- multicastEvent Multicast Event Participant status to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_MULT_CS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Multicast Event Participant status for Port 1
- CSL_SRIO_SetMulticastEventParticipant(hSrio, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetMulticastEventParticipant
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 multicastEvent
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_MULT_CS, multicastEvent);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortFlowControl
- *
- * @b Description
- * @n The function is used to enable the port flow control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_FLOW_CTRL=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable flow control for port 1
- CSL_SRIO_EnablePortFlowControl(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortFlowControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_CTRL, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortFlowControl
- *
- * @b Description
- * @n The function is used to disable the port flow control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_FLOW_CTRL=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable flow control for port 1
- CSL_SRIO_DisablePortFlowControl(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortFlowControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_CTRL, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortFlowControlEnabled
- *
- * @b Description
- * @n The function is used to check if the flow control on the specific port
- * is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Flow Control is enabled
- * @n FALSE - Flow Control is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_FLOW_CTRL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if flow control for port 1 is enabled or not?
- if (CSL_SRIO_IsPortFlowControlEnabled(hSrio, 1) == TRUE)
- {
- // Port1 flow control is enabled
- }
- else
- {
- // Port1 flow control is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortFlowControlEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_CTRL) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortFlowArbiteration
- *
- * @b Description
- * @n The function is used to enable the port flow arbiteration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_FLOW_ARB=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable flow arbiteration for port 1
- CSL_SRIO_EnablePortFlowArbiteration(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortFlowArbiteration
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_ARB, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortFlowArbiteration
- *
- * @b Description
- * @n The function is used to disable the port flow arbiteration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_FLOW_ARB=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable flow arbiteration for port 1
- CSL_SRIO_DisablePortFlowArbiteration(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortFlowArbiteration
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_ARB, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortFlowArbiterationEnabled
- *
- * @b Description
- * @n The function is used to check if the flow arbiteration on the specific port
- * is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Flow Arbiteration is enabled
- * @n FALSE - Flow Arbiteration is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_FLOW_ARB
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if flow arbiteration for port 1 is enabled or not?
- if (CSL_SRIO_IsPortFlowArbiterationEnabled(hSrio, 1) == TRUE)
- {
- // Port1 flow arbiteration is enabled
- }
- else
- {
- // Port1 flow arbiteration is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortFlowArbiterationEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_FLOW_ARB) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortStopFail
- *
- * @b Description
- * @n The function is used to enable the port stop fail
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_STOP_FAIL_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable stop fail for port 1
- CSL_SRIO_EnablePortStopFail(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortStopFail
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_STOP_FAIL_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortStopFail
- *
- * @b Description
- * @n The function is used to disable the port stop fail
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_STOP_FAIL_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable stop fail for port 1
- CSL_SRIO_DisablePortStopFail(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortStopFail
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_STOP_FAIL_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortStopFailEnabled
- *
- * @b Description
- * @n The function is used to check if the port stop failed is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Stop flow is enabled
- * @n FALSE - Stop flow is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_STOP_FAIL_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if stop fail for port 1 is enabled or not?
- if (CSL_SRIO_IsPortStopFailEnabled(hSrio, 1) == TRUE)
- {
- // Port1 stop fail is enabled
- }
- else
- {
- // Port1 stop fail is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortStopFailEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_STOP_FAIL_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortDrop
- *
- * @b Description
- * @n The function is used to enable the port drop
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_DROP_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable drop for port 1
- CSL_SRIO_EnablePortDrop(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortDrop
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_DROP_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortDrop
- *
- * @b Description
- * @n The function is used to disable the port drop
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_DROP_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable drop for port 1
- CSL_SRIO_DisablePortDrop(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortDrop
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_DROP_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortDropEnabled
- *
- * @b Description
- * @n The function is used to check if the port drop is enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port drop is enabled
- * @n FALSE - Port drop is disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_DROP_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if stop fail for port 1 is enabled or not?
- if (CSL_SRIO_IsPortDropEnabled(hSrio, 1) == TRUE)
- {
- // Port1 drop is enabled
- }
- else
- {
- // Port1 drop is disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortDropEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_DROP_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePortLockout
- *
- * @b Description
- * @n The function is used to enable the port lockout
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_PORT_LOCKOUT=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable port lockout for port 1
- CSL_SRIO_EnablePortLockout(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePortLockout
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_LOCKOUT, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePortLockout
- *
- * @b Description
- * @n The function is used to disable the port lockout
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_CTL_PORT_LOCKOUT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable port lockout for port 1
- CSL_SRIO_DisablePortLockout(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePortLockout
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_LOCKOUT, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPortLockedout
- *
- * @b Description
- * @n The function is used to check if the port is locked out or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port is Locked out
- * @n FALSE - Port is NOT Locked out
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_PORT_LOCKOUT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if port 1 is locked out or not?
- if (CSL_SRIO_IsPortLockedout(hSrio, 1) == TRUE)
- {
- // Port1 is locked out
- }
- else
- {
- // Port1 is NOT locked out
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPortLockedout
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PORT_LOCKOUT) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortType
- *
- * @b Description
- * @n The function is used to get the port type.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portType Port Type populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_CTL_PTYP
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portType;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable port lockout for port 1
- CSL_SRIO_GetPortType(hSrio, 1, &portType);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortType
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portType
- )
- {
- *portType = CSL_FEXT(hSrio->RIO_SP[portNum].RIO_SP_CTL, SRIO_RIO_SP_CTL_PTYP);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorReportBlockHeader
- *
- * @b Description
- * @n The function is used to get the error report block header information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- efPtr Extended Feature Pointer populated by this API
- efId Extended Feature ID populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ERR_RPT_BH_EF_PTR,SRIO_RIO_ERR_RPT_BH_EF_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 efPtr;
- Uint16 efId;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error reporting block header information
- CSL_SRIO_GetErrorReportBlockHeader(hSrio, &efPtr, &efId);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorReportBlockHeader
- (
- CSL_SrioHandle hSrio,
- Uint16* efPtr,
- Uint16* efId
- )
- {
- Uint32 value = hSrio->RIO_ERR_RPT_BH;
- *efPtr = CSL_FEXT(value, SRIO_RIO_ERR_RPT_BH_EF_PTR);
- *efId = CSL_FEXT(value, SRIO_RIO_ERR_RPT_BH_EF_ID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorDetectCSR
- *
- * @b Description
- * @n The function is used to get the error detected CSR information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- errDetect Error Detect Information populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ERR_DET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errDetect;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error detect information
- CSL_SRIO_GetErrorDetectCSR(hSrio, &errDetect);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorDetectCSR
- (
- CSL_SrioHandle hSrio,
- Uint32* errDetect
- )
- {
- *errDetect = hSrio->RIO_ERR_DET;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorDetectCSR
- *
- * @b Description
- * @n The function is used to set the error detected CSR information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- errDetect Error Detect Information to be cleared
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_ERR_DET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errDetect;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error detect information
- CSL_SRIO_GetErrorDetectCSR(hSrio, &errDetect);
- ...
- // Clear the error detect informatio
- CSL_SRIO_SetErrorDetectCSR(hSrio, errDetect);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorDetectCSR
- (
- CSL_SrioHandle hSrio,
- Uint32 errDetect
- )
- {
- hSrio->RIO_ERR_DET = errDetect;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorEnable
- *
- * @b Description
- * @n The function is used to get the error enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- errEnable Error Enable Status populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ERR_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errEnable;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error enable status information
- CSL_SRIO_GetErrorEnable(hSrio, &errEnable);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorEnable
- (
- CSL_SrioHandle hSrio,
- Uint32* errEnable
- )
- {
- *errEnable = hSrio->RIO_ERR_EN;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorEnable
- *
- * @b Description
- * @n The function is used to set the error enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- errEnable Error Enable Status populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_ERR_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errEnable;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error enable status information
- CSL_SRIO_GetErrorEnable(hSrio, &errEnable);
-
- // Ensure that IO Error response is enabled
- errEnable = errEnable | 0x80000000;
- CSL_SRIO_SetErrorEnable(hSrio, errEnable);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorEnable
- (
- CSL_SrioHandle hSrio,
- Uint32 errEnable
- )
- {
- hSrio->RIO_ERR_EN = errEnable;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetHighAddressCapture
- *
- * @b Description
- * @n The function is used to get the MSB 32 bits of the address which
- * caused the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- hiAddress High Address populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_H_ADDR_CAPT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 hiAddress;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the high address information
- CSL_SRIO_GetHighAddressCapture(hSrio, &hiAddress);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetHighAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32* hiAddress
- )
- {
- *hiAddress = hSrio->RIO_H_ADDR_CAPT;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetHighAddressCapture
- *
- * @b Description
- * @n The function is used to set the MSB 32 bits of the address which
- * caused the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- hiAddress High Address to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_H_ADDR_CAPT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Clear the High Address Error Capture
- CSL_SRIO_SetHighAddressCapture(hSrio, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetHighAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32 hiAddress
- )
- {
- hSrio->RIO_H_ADDR_CAPT = hiAddress;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetAddressCapture
- *
- * @b Description
- * @n The function is used to get the LSB 29 bits of the address which
- * caused the error and also the extended address bits
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- address Address populated by this API
- xamsbs Extended Address Information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ADDR_CAPT_ADDR_LOW,SRIO_RIO_ADDR_CAPT_XAMSBS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 address;
- Uint8 xamsbs;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the address information which caused the error
- CSL_SRIO_GetAddressCapture(hSrio, &hiAddress, &xamsbs);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32* address,
- Uint8* xamsbs
- )
- {
- *address = CSL_FEXT(hSrio->RIO_ADDR_CAPT, SRIO_RIO_ADDR_CAPT_ADDR_LOW);
- *xamsbs = CSL_FEXT(hSrio->RIO_ADDR_CAPT, SRIO_RIO_ADDR_CAPT_XAMSBS);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetAddressCapture
- *
- * @b Description
- * @n The function is used to set the LSB 29 bits of the address which
- * caused the error and also the extended address bits
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- address Address to be configured
- xamsbs Extended Address Information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_ADDR_CAPT_ADDR_LOW,SRIO_RIO_ADDR_CAPT_XAMSBS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Clear address information which caused the error
- CSL_SRIO_SetAddressCapture(hSrio, 0x0, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32 address,
- Uint8 xamsbs
- )
- {
- hSrio->RIO_ADDR_CAPT = CSL_FMK(SRIO_RIO_ADDR_CAPT_ADDR_LOW, address) |
- CSL_FMK(SRIO_RIO_ADDR_CAPT_XAMSBS, xamsbs);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetIDCapture
- *
- * @b Description
- * @n The function is used to get the source and destination id associated
- * with the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- msbdstId MSB Destination ID
- lsbdstID LSB Destination ID
- msbsrcId MSB Source ID
- lsbsrcId LSB Source ID
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_ID_CAPT_MSB_DSTID, SRIO_RIO_ID_CAPT_DSTID,
- * @n SRIO_RIO_ID_CAPT_MSB_SRCTID, SRIO_RIO_ID_CAPT_SRCID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 msbdstId;
- Uint8 lsbdstID;
- Uint8 msbsrcId;
- Uint8 lsbsrcId;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the address capture information which caused the error
- CSL_SRIO_GetIDCapture(hSrio, &msbdstId, &lsbdstID, &msbsrcId, &lsbsrcId);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetIDCapture
- (
- CSL_SrioHandle hSrio,
- Uint8* msbdstId,
- Uint8* lsbdstId,
- Uint8* msbsrcId,
- Uint8* lsbsrcId
- )
- {
- Uint32 value = hSrio->RIO_ID_CAPT;
- *msbdstId = CSL_FEXT (value, SRIO_RIO_ID_CAPT_MSB_DSTID);
- *lsbdstId = CSL_FEXT (value, SRIO_RIO_ID_CAPT_DSTID);
- *msbsrcId = CSL_FEXT (value, SRIO_RIO_ID_CAPT_MSB_SRCTID);
- *lsbsrcId = CSL_FEXT (value, SRIO_RIO_ID_CAPT_SRCID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetIDCapture
- *
- * @b Description
- * @n The function is used to set the source and destination id associated
- * with the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- msbdstId MSB Destination ID
- lsbdstID LSB Destination ID
- msbsrcId MSB Source ID
- lsbsrcId LSB Source ID
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_ID_CAPT_MSB_DSTID, SRIO_RIO_ID_CAPT_DSTID,
- * @n SRIO_RIO_ID_CAPT_MSB_SRCTID, SRIO_RIO_ID_CAPT_SRCID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 msbdstId;
- Uint8 lsbdstID;
- Uint8 msbsrcId;
- Uint8 lsbsrcId;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Clear the address capture information
- CSL_SRIO_SetIDCapture(hSrio, 0x0, 0x0, 0x0, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetIDCapture
- (
- CSL_SrioHandle hSrio,
- Uint8 msbdstId,
- Uint8 lsbdstId,
- Uint8 msbsrcId,
- Uint8 lsbsrcId
- )
- {
- hSrio->RIO_ID_CAPT = CSL_FMK (SRIO_RIO_ID_CAPT_MSB_DSTID, msbdstId) |
- CSL_FMK (SRIO_RIO_ID_CAPT_DSTID, lsbdstId) |
- CSL_FMK (SRIO_RIO_ID_CAPT_MSB_SRCTID,msbsrcId) |
- CSL_FMK (SRIO_RIO_ID_CAPT_SRCID, lsbsrcId);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetControlCapture
- *
- * @b Description
- * @n The function is used to get the control information associated with
- * the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ftype FTPYE associated with the error
- ttype TTPYE associated with the error
- msgInfo Message Information associated with the error
- implSpecific Implementation Specific information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_CTRL_CAPT_FTYPE, SRIO_RIO_CTRL_CAPT_TTYPE,
- * @n SRIO_RIO_CTRL_CAPT_MSG_INFO, SRIO_RIO_CTRL_CAPT_IMP_SPECIFIC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 ftype;
- Uint8 ttype;
- Uint8 msgInfo;
- Uint16 implSpecific;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the control capture information which caused the error
- CSL_SRIO_GetControlCapture(hSrio, &ftype, &ttype, &msgInfo, &implSpecific);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetControlCapture
- (
- CSL_SrioHandle hSrio,
- Uint8* ftype,
- Uint8* ttype,
- Uint8* msgInfo,
- Uint16* implSpecific
- )
- {
- Uint32 value = hSrio->RIO_CTRL_CAPT;
- *ftype = CSL_FEXT (value, SRIO_RIO_CTRL_CAPT_FTYPE);
- *ttype = CSL_FEXT (value, SRIO_RIO_CTRL_CAPT_TTYPE);
- *msgInfo = CSL_FEXT (value, SRIO_RIO_CTRL_CAPT_MSG_INFO);
- *implSpecific = CSL_FEXT (value, SRIO_RIO_CTRL_CAPT_IMP_SPECIFIC);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetControlCapture
- *
- * @b Description
- * @n The function is used to set the control information associated with
- * the error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ftype FTPYE associated with the error
- ttype TTPYE associated with the error
- msgInfo Message Information associated with the error
- implSpecific Implementation Specific information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_CTRL_CAPT_FTYPE, SRIO_RIO_CTRL_CAPT_TTYPE,
- * @n SRIO_RIO_CTRL_CAPT_MSG_INFO, SRIO_RIO_CTRL_CAPT_IMP_SPECIFIC
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Clear the control capture information which caused the error
- CSL_SRIO_SetControlCapture(hSrio, 0x0, 0x0, 0x0, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetControlCapture
- (
- CSL_SrioHandle hSrio,
- Uint8 ftype,
- Uint8 ttype,
- Uint8 msgInfo,
- Uint16 implSpecific
- )
- {
- hSrio->RIO_CTRL_CAPT = CSL_FMK (SRIO_RIO_CTRL_CAPT_FTYPE, ftype) |
- CSL_FMK (SRIO_RIO_CTRL_CAPT_TTYPE, ttype) |
- CSL_FMK (SRIO_RIO_CTRL_CAPT_MSG_INFO, msgInfo) |
- CSL_FMK (SRIO_RIO_CTRL_CAPT_IMP_SPECIFIC, implSpecific);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteDeviceId
- *
- * @b Description
- * @n The function is used to get the target device ID to be used when a
- * device generates a Maintenance Port-Write operation to report errors to
- * a system host.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- msbTargetId Most significant byte of Port-Write Target device ID
- lsbTargetID Least significant byte of Port-Write Target device ID
- lrgTrans DeviceID size to use for a port-write
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_TGT_ID_DEVICEID_MSB,SRIO_RIO_PW_TGT_ID_DEVICEID,
- * @n SRIO_RIO_PW_TGT_ID_ID_LARGE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 msbTargetId;
- Uint8 lsbTargetID;
- Uint8 lrgTrans;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Target Device ID information.
- CSL_SRIO_GetPortWriteDeviceId(hSrio, &msbTargetId, &lsbTargetID, &lrgTrans);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteDeviceId
- (
- CSL_SrioHandle hSrio,
- Uint8* msbTargetId,
- Uint8* lsbTargetID,
- Uint8* lrgTrans
- )
- {
- Uint32 value = hSrio->RIO_PW_TGT_ID;
- *msbTargetId = CSL_FEXT(value, SRIO_RIO_PW_TGT_ID_DEVICEID_MSB);
- *lsbTargetID = CSL_FEXT(value, SRIO_RIO_PW_TGT_ID_DEVICEID);
- *lrgTrans = CSL_FEXT(value, SRIO_RIO_PW_TGT_ID_ID_LARGE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortWriteDeviceId
- *
- * @b Description
- * @n The function is used to get the target device ID to be used when a
- * device generates a Maintenance Port-Write operation to report errors to
- * a system host.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- msbTargetId Most significant byte of Port-Write Target device ID
- lsbTargetID Least significant byte of Port-Write Target device ID
- lrgTrans DeviceID size to use for a port-write
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PW_TGT_ID_DEVICEID_MSB,SRIO_RIO_PW_TGT_ID_DEVICEID,
- * @n SRIO_RIO_PW_TGT_ID_ID_LARGE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Port Write Target Device ID information.
- CSL_SRIO_SetPortWriteDeviceId (hSrio, 0x0, 0x80, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortWriteDeviceId
- (
- CSL_SrioHandle hSrio,
- Uint8 msbTargetId,
- Uint8 lsbTargetID,
- Uint8 lrgTrans
- )
- {
- hSrio->RIO_PW_TGT_ID = CSL_FMK (SRIO_RIO_PW_TGT_ID_DEVICEID_MSB, msbTargetId) |
- CSL_FMK (SRIO_RIO_PW_TGT_ID_DEVICEID, lsbTargetID) |
- CSL_FMK (SRIO_RIO_PW_TGT_ID_ID_LARGE, lrgTrans);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortError
- *
- * @b Description
- * @n The function is used to get the physical layer errors that have been
- * detected by the Port hardware
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- errStatus Error Status populated by this API
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_DET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port 1 Error Status
- CSL_SRIO_GetPortError(hSrio, 1, &errStatus);
- if (errStatus != 0)
- {
- // Port Errors detected
- }
- else
- {
- // No Port Errors detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint32* errStatus
- )
- {
- *errStatus = hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_DET;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPortError
- *
- * @b Description
- * @n The function is used to clear any port errors which were detected by
- * the port Physical layer.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_DET=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port 1 Error Status
- CSL_SRIO_GetPortError(hSrio, 1, &errStatus);
- if (errStatus != 0)
- {
- // Port Errors detected
- ...
- // Clear port errors.
- CSL_SRIO_ClearPortError (hSrio, 1);
- }
- else
- {
- // No port errors detected
- }
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_DET = 0x0;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableImpSpecificPortError
- *
- * @b Description
- * @n The function is used to enable the ability for the SRIO port to rate count
- * implementation specific errors.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_IMP_SPEC_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the Implementation specific Port 1 Rate counting
- CSL_SRIO_EnableImpSpecificPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableImpSpecificPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_IMP_SPEC_EN, (Uint32)1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableImpSpecificPortError
- *
- * @b Description
- * @n The function is used to disable the ability for the SRIO port to rate count
- * implementation specific errors.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_IMP_SPEC_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the Implementation specific Port 1 Rate counting
- CSL_SRIO_DisableImpSpecificPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableImpSpecificPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_IMP_SPEC_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableControlSymBadCRCPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for Received
- * Control Symbol with a bad CRC
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_CRC_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the Control Symbol Bad CRC rate counting.
- CSL_SRIO_EnableControlSymBadCRCPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableControlSymBadCRCPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_CRC_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableControlSymBadCRCPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for Received
- * Control Symbol with a bad CRC
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_CRC_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the Control Symbol Bad CRC rate counting.
- CSL_SRIO_DisableControlSymBadCRCPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableControlSymBadCRCPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_CRC_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableUnexpectedAckIDPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for Received
- * Control Symbol with an unexpected ACK ID
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_ILL_ID_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the unexpected ACK ID Port Error
- CSL_SRIO_EnableUnexpectedAckIDPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableUnexpectedAckIDPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_ILL_ID_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableUnexpectedAckIDPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for Received
- * Control Symbol with an unexpected ACK ID
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_ILL_ID_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the unexpected ACK ID Port Error
- CSL_SRIO_DisableUnexpectedAckIDPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableUnexpectedAckIDPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_ILL_ID_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePacketNotAcceptedPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for packet not
- * accepted control symbol.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_NOT_ACC_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the packet not accepted port error
- CSL_SRIO_EnablePacketNotAcceptedPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePacketNotAcceptedPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_NOT_ACC_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePacketNotAcceptedPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for packet not
- * accepted control symbol.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_NOT_ACC_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the packet not accepted port error
- CSL_SRIO_DisablePacketNotAcceptedPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePacketNotAcceptedPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_NOT_ACC_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePacketUnexpectedAckIdError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for packets with
- * unexpected ack id
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_ILL_ACKID_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the packet with unexpected ack id rate counting
- CSL_SRIO_EnablePacketUnexpectedAckIdError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePacketUnexpectedAckIdError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_ILL_ACKID_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePacketUnexpectedAckIdError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for packets with
- * unexpected ack id
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_ILL_ACKID_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the packet with unexpected ack id rate counting
- CSL_SRIO_DisablePacketUnexpectedAckIdError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePacketUnexpectedAckIdError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_ILL_ACKID_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePacketBadCRCError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for packets with
- * bad CRC
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_CRC_ERR_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the packet with bad CRC error rate counting
- CSL_SRIO_EnablePacketBadCRCError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePacketBadCRCError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_CRC_ERR_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePacketBadCRCError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for packets with
- * bad CRC
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_CRC_ERR_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the packet with bad CRC error rate counting
- CSL_SRIO_DisablePacketBadCRCError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePacketBadCRCError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_CRC_ERR_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableIllegalSizePortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for packets with
- * illegal size
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_ILL_SIZE_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the rate counting of packets with illegal size error
- CSL_SRIO_EnableIllegalSizePortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableIllegalSizePortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_ILL_SIZE_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableIllegalSizePortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for packets with
- * illegal size
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PKT_ILL_SIZE_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the rate counting of packets with illegal size error
- CSL_SRIO_DisableIllegalSizePortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableIllegalSizePortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PKT_ILL_SIZE_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableDescramblingLOSPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting of the loss of
- * receiver de-scrambler synchronization when control symbol and packet data
- * is being scrambled before transmission.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_DSCRAM_LOS_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for the LOS Descrambling
- CSL_SRIO_EnableDescramblingLOSPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableDescramblingLOSPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_DSCRAM_LOS_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableDescramblingLOSPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting of the loss of
- * receiver de-scrambler synchronization when control symbol and packet data
- * is being scrambled before transmission.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_DSCRAM_LOS_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the error rate counting for the LOS Descrambling
- CSL_SRIO_DisableDescramblingLOSPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableDescramblingLOSPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_DSCRAM_LOS_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableIllegalAckIDPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for receiving an
- * ACK ID that is not outstanding.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_LR_ACKID_ILL_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for the illegal ACK ID.
- CSL_SRIO_EnableIllegalAckIDPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableIllegalAckIDPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_LR_ACKID_ILL_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableIllegalAckIDPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for receiving an
- * ACK ID that is not outstanding.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_LR_ACKID_ILL_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the error rate counting for the illegal ACK ID.
- CSL_SRIO_DisableIllegalAckIDPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableIllegalAckIDPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_LR_ACKID_ILL_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableProtocolPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for protocol
- * errors
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PROT_ERR_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for protocol errors.
- CSL_SRIO_EnableProtocolPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableProtocolPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PROT_ERR_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableProtocolPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for protocol
- * errors
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_PROT_ERR_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the error rate counting for protocol errors.
- CSL_SRIO_DisableProtocolPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableProtocolPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_PROT_ERR_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableDelineationPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for delineation
- * errors
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_DELIN_ERR_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for delineation errors.
- CSL_SRIO_EnableDelineationPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableDelineationPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_DELIN_ERR_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableDelineationPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for delineation
- * errors
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_DELIN_ERR_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the error rate counting for delineation errors.
- CSL_SRIO_DisableDelineationPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableDelineationPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_DELIN_ERR_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableIllegalCSPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for illegal control
- * symbols.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_ACK_ILL_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for illegal control symbols.
- CSL_SRIO_EnableIllegalCSPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableIllegalCSPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_ACK_ILL_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableIllegalCSPortError
- *
- * @b Description
- * @n The function is used to disable the error rate counting for illegal control
- * symbols.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_CS_ACK_ILL_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the error rate counting for illegal control symbols.
- CSL_SRIO_DisableIllegalCSPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableIllegalCSPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_CS_ACK_ILL_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableLinkTimeoutPortError
- *
- * @b Description
- * @n The function is used to enable the error rate counting for link responses
- * not received within the specific timeout.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_RATE_EN_LINK_TO_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the error rate counting for link timeout errors.
- CSL_SRIO_EnableLinkTimeoutPortError (hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableLinkTimeoutPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_SP_ERR[portNum].RIO_SP_RATE_EN, SRIO_RIO_SP_RATE_EN_LINK_TO_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorCaptureInfo
- *
- * @b Description
- * @n The function is used to get the error capture information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- infoType Error Information Type
- errType Encoded Value of the the captured error bits
- implDep Implementation Dependent Error Information
- valCapt Capture Valid Information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_ATTR_CAPT_INFO_TYPE,SRIO_RIO_SP_ERR_ATTR_CAPT_ERR_TYPE,SRIO_RIO_SP_ERR_ATTR_CAPT_IMPL_DEP,SRIO_RIO_SP_ERR_ATTR_CAPT_VAL_CAPT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 infoType;
- Uint8 errType;
- Uint32 implDep;
- Uint8 valCapt;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error capture information
- CSL_SRIO_GetErrorCaptureInfo (hSrio, 1, &infoType, &errType, &implDep, &valCapt);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorCaptureInfo
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* infoType,
- Uint8* errType,
- Uint32* implDep,
- Uint8* valCapt
- )
- {
- *infoType = CSL_FEXT(hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_ATTR_CAPT, SRIO_RIO_SP_ERR_ATTR_CAPT_INFO_TYPE);
- *errType = CSL_FEXT(hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_ATTR_CAPT, SRIO_RIO_SP_ERR_ATTR_CAPT_ERR_TYPE);
- *implDep = CSL_FEXT(hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_ATTR_CAPT, SRIO_RIO_SP_ERR_ATTR_CAPT_IMPL_DEP);
- *valCapt = CSL_FEXT(hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_ATTR_CAPT, SRIO_RIO_SP_ERR_ATTR_CAPT_VAL_CAPT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorCapture
- *
- * @b Description
- * @n The function is used to get the error capture information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- errCap0 Error 0 Capture Information
- errCap1 Error 1 Capture Information
- errCap2 Error 2 Capture Information
- errCap3 Error 3 Capture Information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_CAPT_0,SRIO_RIO_SP_ERR_CAPT_1,
- * @n SRIO_RIO_SP_ERR_CAPT_2,SRIO_RIO_SP_ERR_CAPT_3
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 errCap0;
- Uint32 errCap1;
- Uint32 errCap2;
- Uint32 errCap3;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the error capture information
- CSL_SRIO_GetErrorCapture (hSrio, 1, &errCap0, &errCap1, &errCap2, &errCap3);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorCapture
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint32* errCap0,
- Uint32* errCap1,
- Uint32* errCap2,
- Uint32* errCap3
- )
- {
- *errCap0 = hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_CAPT_0;
- *errCap1 = hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_CAPT_1;
- *errCap2 = hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_CAPT_2;
- *errCap3 = hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_CAPT_3;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorRateCSR
- *
- * @b Description
- * @n The function is used to get the error rate CSR which is used to monitor
- * and control the reporting of the Port Physical layer errors.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrErrorRate Error Rate configuration.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_RATE_ERR_RB,SRIO_RIO_SP_ERR_RATE_ERR_RR,
- * @n SRIO_RIO_SP_ERR_RATE_ERR_PEAK,SRIO_RIO_SP_ERR_RATE_ERR_RATE_CNT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_ERR_RATE errorRate;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error Rate CSR Information.
- CSL_SRIO_GetErrorRateCSR (hSrio, 1, &errorRate);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorRateCSR
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_ERR_RATE* ptrErrorRate
- )
- {
- ptrErrorRate->errRateBias = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_RATE,SRIO_RIO_SP_ERR_RATE_ERR_RB);
- ptrErrorRate->errRateRecovery = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_RATE,SRIO_RIO_SP_ERR_RATE_ERR_RR);
- ptrErrorRate->peak = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_RATE,SRIO_RIO_SP_ERR_RATE_ERR_PEAK);
- ptrErrorRate->errRateCnt = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_RATE,SRIO_RIO_SP_ERR_RATE_ERR_RATE_CNT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorRateCSR
- *
- * @b Description
- * @n The function is used to set the error rate CSR which is used to monitor
- * and control the reporting of the Port Physical layer errors.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrErrorRate Error Rate configuration.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_RATE_ERR_RB,SRIO_RIO_SP_ERR_RATE_ERR_RR,
- * @n SRIO_RIO_SP_ERR_RATE_ERR_PEAK,SRIO_RIO_SP_ERR_RATE_ERR_RATE_CNT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_ERR_RATE errorRate;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error Rate CSR Information.
- CSL_SRIO_GetErrorRateCSR (hSrio, 1, &errorRate);
- // Modify the configuration to not decrement the error rate counter
- errorRate.errRateBias = 0x0;
- CSL_SRIO_SetErrorRateCSR (hSrio, 1, &errorRate);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorRateCSR
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_ERR_RATE* ptrErrorRate
- )
- {
- hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_RATE =
- CSL_FMK (SRIO_RIO_SP_ERR_RATE_ERR_RB, ptrErrorRate->errRateBias) |
- CSL_FMK (SRIO_RIO_SP_ERR_RATE_ERR_RR, ptrErrorRate->errRateRecovery) |
- CSL_FMK (SRIO_RIO_SP_ERR_RATE_ERR_PEAK,ptrErrorRate->peak) |
- CSL_FMK (SRIO_RIO_SP_ERR_RATE_ERR_RATE_CNT, ptrErrorRate->errRateCnt);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorRateThreshold
- *
- * @b Description
- * @n The function is used to get the error rate threshold.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- errRateFailedThreshold Threshold value for reporting an error condition
- due to possibly broken link
- errRateDegradeThreshold Threshold value for reporting an error condition
- due to a degrading link.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_ERR_THRESH_ERR_RFT, SRIO_RIO_SP_ERR_THRESH_ERR_RDT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 errRateFailedThreshold;
- Uint8 errRateDegradeThreshold;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error Rate Threshold Information.
- CSL_SRIO_GetErrorRateThreshold (hSrio, 1, &errRateFailedThreshold, &errRateDegradeThreshold);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorRateThreshold
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* errRateFailedThreshold,
- Uint8* errRateDegradeThreshold
- )
- {
- *errRateFailedThreshold = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_THRESH, SRIO_RIO_SP_ERR_THRESH_ERR_RFT);
- *errRateDegradeThreshold = CSL_FEXT (hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_THRESH, SRIO_RIO_SP_ERR_THRESH_ERR_RDT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorRateThreshold
- *
- * @b Description
- * @n The function is used to set the error rate threshold.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- errRateFailedThreshold Threshold value for reporting an error condition
- due to possibly broken link
- errRateDegradeThreshold Threshold value for reporting an error condition
- due to a degrading link.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_SP_ERR_THRESH_ERR_RFT, SRIO_RIO_SP_ERR_THRESH_ERR_RDT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
-
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Error Rate Threshold Information disabling both failed &
- // degraded triggers
- CSL_SRIO_SetErrorRateThreshold (hSrio, 1, 0x0, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorRateThreshold
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 errRateFailedThreshold,
- Uint8 errRateDegradeThreshold
- )
- {
- hSrio->RIO_SP_ERR[portNum].RIO_SP_ERR_THRESH =
- CSL_FMK (SRIO_RIO_SP_ERR_THRESH_ERR_RFT, errRateFailedThreshold) |
- CSL_FMK (SRIO_RIO_SP_ERR_THRESH_ERR_RDT, errRateDegradeThreshold);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLaneStatus
- *
- * @b Description
- * @n The function is used to get the lane status information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrLaneStatus Pointer to the Lane status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LANE_STAT0_PORT_NUM, SRIO_RIO_LANE_STAT0_LANE_NUM,
- * @n SRIO_RIO_LANE_STAT0_TX_TYPE, SRIO_RIO_LANE_STAT0_TX_MODE,
- * @n SRIO_RIO_LANE_STAT0_RX_TYPE, SRIO_RIO_LANE_STAT0_RX_INV,
- * @n SRIO_RIO_LANE_STAT0_RX_TRN, SRIO_RIO_LANE_STAT0_RX_SYNC,
- * @n SRIO_RIO_LANE_STAT0_RX_RDY, SRIO_RIO_LANE_STAT0_ERR_CNT,
- * @n SRIO_RIO_LANE_STAT0_CHG_SYNC, SRIO_RIO_LANE_STAT0_CHG_TRN,
- * @n SRIO_RIO_LANE_STAT0_STAT1, SRIO_RIO_LANE_STAT0_STAT2_7,
- * @n SRIO_RIO_LANE_STAT1_IDLE2, SRIO_RIO_LANE_STAT1_INFO_OK,
- * @n SRIO_RIO_LANE_STAT1_CHG, SRIO_RIO_LANE_STAT1_IMPL_SPEC,
- * @n SRIO_RIO_LANE_STAT1_LP_RX_TRN, SRIO_RIO_LANE_STAT1_LP_WIDTH,
- * @n SRIO_RIO_LANE_STAT1_LP_LANE_NUM, SRIO_RIO_LANE_STAT1_LP_TAP_M1,
- * @n SRIO_RIO_LANE_STAT1_LP_TAP_P1, SRIO_RIO_LANE_STAT1_LP_SCRM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_LANE_STATUS laneStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Lane Status Information.
- CSL_SRIO_GetLaneStatus (hSrio, 1, &laneStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLaneStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_LANE_STATUS* ptrLaneStatus
- )
- {
- Uint32 value = hSrio->RIO_LANE[portNum].RIO_LANE_STAT0;
- /* Populate the lane status */
- ptrLaneStatus->portNum = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_PORT_NUM);
- ptrLaneStatus->laneNum = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_LANE_NUM);
- ptrLaneStatus->txType = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_TX_TYPE);
- ptrLaneStatus->txMode = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_TX_MODE);
- ptrLaneStatus->rxType = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_RX_TYPE);
- ptrLaneStatus->rxInv = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_RX_INV);
- ptrLaneStatus->rxTrn = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_RX_TRN);
- ptrLaneStatus->rxSync = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_RX_SYNC);
- ptrLaneStatus->rxReady = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_RX_RDY);
- ptrLaneStatus->errCnt = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_ERR_CNT);
- ptrLaneStatus->chgSync = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_CHG_SYNC);
- ptrLaneStatus->chgTrn = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_CHG_TRN);
- ptrLaneStatus->stat1 = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_STAT1);
- ptrLaneStatus->stat2_7 = CSL_FEXT (value, SRIO_RIO_LANE_STAT0_STAT2_7);
- /* Get the lane status 1 */
- value = hSrio->RIO_LANE[portNum].RIO_LANE_STAT1;
- /* Populate the lane status */
- ptrLaneStatus->idle2 = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_IDLE2);
- ptrLaneStatus->infoOk = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_INFO_OK);
- ptrLaneStatus->chg = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_CHG);
- ptrLaneStatus->implSpecific = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_IMPL_SPEC);
- ptrLaneStatus->lpRxTrn = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_RX_TRN);
- ptrLaneStatus->lpWidth = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_WIDTH);
- ptrLaneStatus->lpLaneNum = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_LANE_NUM);
- ptrLaneStatus->lpTapM1 = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_TAP_M1);
- ptrLaneStatus->lpTapP1 = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_TAP_P1);
- ptrLaneStatus->lpScrm = CSL_FEXT (value, SRIO_RIO_LANE_STAT1_LP_SCRM);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortPLMImplSpecificControl
- *
- * @b Description
- * @n The function is used to get the PLM Implementation Specific control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrPLMControl Pointer to the PLM Implementation specific control
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PAYL_CAP, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE2,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE1, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLB_EN,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_FORCE_REINIT, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SOFT_RST_PORT,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_TX_BYPASS, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_LLB_EN,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PORT_SELF_RST, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SELF_RST,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_TX, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_RX,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLT_THRESH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_IMPL_CONTROL implControl;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Implementation specific control
- CSL_SRIO_GetPortPLMImplSpecificControl (hSrio, 1, &implControl);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortPLMImplSpecificControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_IMPL_CONTROL* ptrPLMControl
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_IMP_SPEC_CTL;
- /* Populate the PLM implementation specific control */
- ptrPLMControl->payloadCapture = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PAYL_CAP);
- ptrPLMControl->useIdle2 = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE2);
- ptrPLMControl->useIdle1 = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE1);
- ptrPLMControl->dlbEn = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLB_EN);
- ptrPLMControl->forceReinit = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_FORCE_REINIT);
- ptrPLMControl->softRstPort = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SOFT_RST_PORT);
- ptrPLMControl->txBypass = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_TX_BYPASS);
- ptrPLMControl->lineLoopbackMode = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_LLB_EN);
- ptrPLMControl->portSelfReset = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PORT_SELF_RST);
- ptrPLMControl->selfReset = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SELF_RST);
- ptrPLMControl->swapTx = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_TX);
- ptrPLMControl->swapRx = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_RX);
- ptrPLMControl->dltThresh = CSL_FEXT (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLT_THRESH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortImplSpecificControl
- *
- * @b Description
- * @n The function is used to set the PLM Implementation Specific control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrPLMControl Pointer to the PLM Implementation specific control
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PAYL_CAP, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE2,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE1, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLB_EN,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_FORCE_REINIT, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SOFT_RST_PORT,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_TX_BYPASS, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_LLB_EN,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PORT_SELF_RST, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SELF_RST,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_TX, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_RX,
- * @n SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLT_THRESH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_IMPL_CONTROL implControl;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Implementation specific control
- CSL_SRIO_GetPortPLMImplSpecificControl (hSrio, 1, &implControl);
- // Bypass the tx clock crossing the FIFO
- implControl.txBypass = 1;
- CSL_SRIO_SetPLMPortImplSpecificControl (hSrio, 1, &implControl);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortImplSpecificControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_IMPL_CONTROL* ptrPLMControl
- )
- {
- Uint32 value = 0;
- /* Populate the PLM implementation specific control */
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PAYL_CAP, ptrPLMControl->payloadCapture);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE2, ptrPLMControl->useIdle2);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_USE_IDLE1, ptrPLMControl->useIdle1);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLB_EN, ptrPLMControl->dlbEn);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_FORCE_REINIT, ptrPLMControl->forceReinit);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SOFT_RST_PORT, ptrPLMControl->softRstPort);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_TX_BYPASS, ptrPLMControl->txBypass);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_LLB_EN, ptrPLMControl->lineLoopbackMode);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_PORT_SELF_RST, ptrPLMControl->portSelfReset);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SELF_RST, ptrPLMControl->selfReset);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_TX, ptrPLMControl->swapTx);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_SWAP_RX, ptrPLMControl->swapRx);
- CSL_FINS (value, SRIO_RIO_PLM_SP_IMP_SPEC_CTL_DLT_THRESH, ptrPLMControl->dltThresh);
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_IMP_SPEC_CTL = value;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortPowerDownControl
- *
- * @b Description
- * @n The function is used to get the PLM Port Power Down status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- powerDownStatus Power Down Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_PWDN_CTL_PWDN_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 powerDownStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Power Down Status
- CSL_SRIO_GetPLMPortPowerDownControl (hSrio, 1, &powerDownStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortPowerDownControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* powerDownStatus
- )
- {
- *powerDownStatus = CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_PWDN_CTL, SRIO_RIO_PLM_SP_PWDN_CTL_PWDN_PORT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortPowerDownControl
- *
- * @b Description
- * @n The function is used to set the PLM Port Power Down status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- powerDownStatus Power Down Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_PWDN_CTL_PWDN_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PLM Port to be powered down
- CSL_SRIO_SetPLMPortPowerDownControl (hSrio, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortPowerDownControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 powerDownStatus
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_PWDN_CTL, SRIO_RIO_PLM_SP_PWDN_CTL_PWDN_PORT, powerDownStatus);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortMaxDenialErrorSet
- *
- * @b Description
- * @n The function is used to check if the PLM Port Max. Denial error set.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Max. Denial Error is set
- * @n FALSE - Max. Denial Error is not set
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_MAX_DENIAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the MAX Denial Error set?
- if (CSL_SRIO_IsPLMPortMaxDenialErrorSet (hSrio, 1) == TRUE)
- {
- // MAX Denial error is set
- }
- else
- {
- // MAX Denial error is NOT set
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortMaxDenialErrorSet
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_MAX_DENIAL) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortMaxDenialErrorSet
- *
- * @b Description
- * @n The function is used to clear the PLM Port Max. Denial error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_MAX_DENIAL=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_MAX_DENIAL=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the MAX Denial Error set?
- if (CSL_SRIO_IsPLMPortMaxDenialErrorSet (hSrio, 1) == TRUE)
- {
- // MAX Denial error is set
- ...
- // Clear the MAX Denial Error
- CSL_SRIO_ClearPLMPortMaxDenialErrorSet (hSrio, 1);
- }
- else
- {
- // MAX Denial error is NOT set
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortMaxDenialErrorSet
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_MAX_DENIAL, (Uint32)1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortLinkInitialized
- *
- * @b Description
- * @n The function is used to check if the PLM Port Link Initialized
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Port Link Initialized is set
- * @n FALSE - Port Link Initialized is not set
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_LINK_INIT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Link Initialized?
- if (CSL_SRIO_IsPLMPortLinkInitialized (hSrio, 1) == TRUE)
- {
- // PLM Port Link is initialized
- }
- else
- {
- // PLM Port Link is NOT initialized
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortLinkInitialized
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_LINK_INIT) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortLinkInitialized
- *
- * @b Description
- * @n The function is used to clear the PLM Port Link Initialization notification
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_LINK_INIT=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_LINK_INIT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Link Initialized?
- if (CSL_SRIO_IsPLMPortLinkInitialized (hSrio, 1) == TRUE)
- {
- // Link is initialized
- ...
- // Clear the Link initialization notification
- CSL_SRIO_ClearPLMPortMaxDenialErrorSet (hSrio, 1);
- }
- else
- {
- // Link is not initialized
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortLinkInitialized
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_LINK_INIT, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortDeadLink
- *
- * @b Description
- * @n The function is used to check if the PLM Port has detected that the link
- * partner has been removed
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Link partner has been removed
- * @n FALSE - Link partner has not been removed
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_DLT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Dead Link detected?
- if (CSL_SRIO_IsPLMPortDeadLink (hSrio, 1) == TRUE)
- {
- // PLM Port Dead Link detected
- }
- else
- {
- // PLM Port Dead Link NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortDeadLink
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_DLT) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortDeadLink
- *
- * @b Description
- * @n The function is used to clear the PLM Port Dead Link event
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_DLT=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_DLT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Dead Link detected?
- if (CSL_SRIO_IsPLMPortDeadLink (hSrio, 1) == TRUE)
- {
- // PLM Port Dead Link detected
- ...
- // Clear the Dead Link Event
- CSL_SRIO_ClearPLMPortDeadLink (hSrio, 1);
- }
- else
- {
- // PLM Port Dead Link NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortDeadLink
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_DLT, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortError
- *
- * @b Description
- * @n The function is used to check if the PLM Port has detected an error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Link error has been detected
- * @n FALSE - Link error has NOT been detected
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_PORT_ERR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port error detected?
- if (CSL_SRIO_IsPLMPortError (hSrio, 1) == TRUE)
- {
- // PLM Port error detected
- }
- else
- {
- // PLM Port error NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_PORT_ERR) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortError
- *
- * @b Description
- * @n The function is used to clear the PLM Port Error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_PORT_ERR=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_PORT_ERR=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port error detected?
- if (CSL_SRIO_IsPLMPortError (hSrio, 1) == TRUE)
- {
- // PLM Port error detected
- ...
- // Clear the PLM Port Error.
- CSL_SRIO_ClearPLMPortError(hSrio, 1);
- }
- else
- {
- // PLM Port error NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortError
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_PORT_ERR, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortOutputFail
- *
- * @b Description
- * @n The function is used to check if the PLM Port has detected an output fail
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Output fail has been detected
- * @n FALSE - Output fail has NOT been detected
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_FAIL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Output fail detected?
- if (CSL_SRIO_IsPLMPortOutputFail (hSrio, 1) == TRUE)
- {
- // PLM Port Output fail detected
- }
- else
- {
- // PLM Port Output fail NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortOutputFail
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_OUTPUT_FAIL) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortOutputFail
- *
- * @b Description
- * @n The function is used to clear the PLM Output Fail Port Error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_FAIL=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_FAIL=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Output fail detected?
- if (CSL_SRIO_IsPLMPortOutputFail (hSrio, 1) == TRUE)
- {
- // PLM Port Output fail detected
- ...
- // Clear the PLM Outport error
- CSL_SRIO_ClearPLMPortOutputFail (hSrio, 1);
- }
- else
- {
- // PLM Port Output fail NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortOutputFail
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_OUTPUT_FAIL, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortOutputDegrade
- *
- * @b Description
- * @n The function is used to check if the PLM Port has detected an output
- * degrade
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Output degrade has been detected
- * @n FALSE - Output degrade has NOT been detected
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_DEGR
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Output degrade detected?
- if (CSL_SRIO_IsPLMPortOutputDegrade (hSrio, 1) == TRUE)
- {
- // PLM Port Output degrade detected
- }
- else
- {
- // PLM Port Output degrade NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortOutputDegrade
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_OUTPUT_DEGR) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortOutputDegrade
- *
- * @b Description
- * @n The function is used to clear the PLM Output Degrade Port Error
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_DEGR=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_OUTPUT_DEGR=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Output degrade detected?
- if (CSL_SRIO_IsPLMPortOutputDegrade (hSrio, 1) == TRUE)
- {
- // PLM Port Output degrade detected
- ...
- // Clear the PLM Output degrade condition
- CSL_SRIO_ClearPLMPortOutputDegrade (hSrio, 1);
- }
- else
- {
- // PLM Port Output degrade NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortOutputDegrade
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_OUTPUT_DEGR, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortMulticastCSDetected
- *
- * @b Description
- * @n The function is used to check if the PLM Port Multicast event control
- * symbol detected
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Multicast event control symbol has been detected
- * @n FALSE - Multicast event control symbol has NOT been detected
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_STATUS_MECS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Multicast Event Control Symbol detected?
- if (CSL_SRIO_IsPLMPortMulticastCSDetected (hSrio, 1) == TRUE)
- {
- // PLM Port Multicast Event Control Symbol detected
- }
- else
- {
- // PLM Port Multicast Event Control Symbol NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortMulticastCSDetected
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_MECS) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortMulticastCS
- *
- * @b Description
- * @n The function is used to clear the PLM Port Multicast Control Symbol
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_STATUS_MECS=1
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_STATUS_MECS=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Is the PLM Port Multicast Event Control Symbol detected?
- if (CSL_SRIO_IsPLMPortMulticastCSDetected (hSrio, 1) == TRUE)
- {
- // PLM Port Multicast Event Control Symbol detected
- ...
- // Clear the PLM Port Multicast Event Control Symbol
- CSL_SRIO_ClearPLMPortMulticastCS (hSrio, 1);
- }
- else
- {
- // PLM Port Multicast Event Control Symbol NOT detected
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortMulticastCS
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_STATUS, SRIO_RIO_PLM_SP_STATUS_MECS, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortInterrupts
- *
- * @b Description
- * @n The function is used to get the current status of the PLM Port Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- intStatus Current Interrupt status of the PLM port interrupts
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_INT_ENABLE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 intStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current interrupt status
- CSL_SRIO_GetPLMPortInterrupts(hSrio, 1, &intStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* intStatus
- )
- {
- *intStatus = hSrio->RIO_PLM[portNum].RIO_PLM_SP_INT_ENABLE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortInterrupts
- *
- * @b Description
- * @n The function is used to set the current status of the PLM Port Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- intStatus Interrupt status to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_INT_ENABLE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 intStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current interrupt status
- CSL_SRIO_GetPLMPortInterrupts(hSrio, 1, &intStatus);
- // Enable the Max Denial interrupt.
- intStatus = intStatus | 0x1;
- CSL_SRIO_SetPLMPortInterrupts(hSrio, 1, intStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 intStatus
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_INT_ENABLE = intStatus;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortWriteEnables
- *
- * @b Description
- * @n The function is used to get the current status of the PLM Port Write
- * enables. These events will enable a port write notification
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWriteStatus Current port write event status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_PW_ENABLE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portWriteStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current interrupt status
- CSL_SRIO_GetPLMPortWriteEnables(hSrio, 1, &portWriteStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortWriteEnables
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portWriteStatus
- )
- {
- *portWriteStatus = hSrio->RIO_PLM[portNum].RIO_PLM_SP_PW_ENABLE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortWriteEnables
- *
- * @b Description
- * @n The function is used to set the current status of the PLM Port Write
- * enables. These events will enable a port write notification
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portWriteStatus Port write status to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_PW_ENABLE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portWriteStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current interrupt status
- CSL_SRIO_GetPLMPortWriteEnables(hSrio, 1, &portWriteStatus);
- // Ensure that Max Denial port write notification is set.
- portWriteStatus = portWriteStatus | 0x1;
- CSL_SRIO_SetPLMPortWriteEnables (hSrio, 1, portWriteStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortWriteEnables
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 portWriteStatus
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_PW_ENABLE = portWriteStatus;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortEventGenerate
- *
- * @b Description
- * @n The function is used to get the current status of the PLM events.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- eventStatus Current PLM event status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_EVENT_GEN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 eventStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current PLM event generate
- CSL_SRIO_GetPLMPortEventGenerate(hSrio, 1, &eventStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* eventStatus
- )
- {
- *eventStatus = hSrio->RIO_PLM[portNum].RIO_PLM_SP_EVENT_GEN;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortEventGenerate
- *
- * @b Description
- * @n The function is used to set the current status of the PLM events.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- eventStatus PLM event status to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_EVENT_GEN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 eventStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the current PLM event generate
- CSL_SRIO_GetPLMPortEventGenerate(hSrio, 1, &eventStatus);
- // Ensure MAX Denial event is set
- eventStatus = eventStatus | 0x1;
- CSL_SRIO_SetPLMPortEventGenerate (hSrio, 1, eventStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 eventStatus
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_EVENT_GEN = eventStatus;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePLMPortAllInterrupts
- *
- * @b Description
- * @n The function is used to enable all interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable all PLM Interrupts
- CSL_SRIO_EnablePLMPortAllInterrupts(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePLMPortAllInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_INT_EN, SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePLMPortAllInterrupts
- *
- * @b Description
- * @n The function is used to disable all interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable all PLM Interrupts
- CSL_SRIO_DisablePLMPortAllInterrupts(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePLMPortAllInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_INT_EN, SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortAllInterruptsEnabled
- *
- * @b Description
- * @n The function is used to check if the PLM port all interrupts are enabled
- * or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - PLM Port all interrupts are enabled
- * @n FALSE - PLM Port all interrupts are disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if PLM Interrupts are enabled or not?
- if (CSL_SRIO_IsPLMPortAllInterruptsEnabled(hSrio, 1) == TRUE)
- {
- // PLM Interrupts are enabled.
- }
- else
- {
- // PLM Interrupts are disabled.
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortAllInterruptsEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT(hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_INT_EN, SRIO_RIO_PLM_SP_ALL_INT_EN_IRQ_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnablePLMPortAllPortWrites
- *
- * @b Description
- * @n The function is used to enable all port writes
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable all PLM Port Writes
- CSL_SRIO_EnablePLMPortAllPortWrites(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnablePLMPortAllPortWrites
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_PW_EN, SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisablePLMPortAllPortWrites
- *
- * @b Description
- * @n The function is used to disable all port writes
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable all PLM Port Writes
- CSL_SRIO_DisablePLMPortAllPortWrites(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisablePLMPortAllPortWrites
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_PW_EN, SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsPLMPortAllPortWritesEnabled
- *
- * @b Description
- * @n The function is used to disable all port writes
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - PLM Port all Port Writes are enabled
- * @n TRUE - PLM Port all Port Writes are disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if all PLM Port Writes are enabled or not?
- if (CSL_SRIO_IsPLMPortAllPortWritesEnabled(hSrio, 1) == TRUE)
- {
- // PLM Port All Port Writes are enabled
- }
- else
- {
- // PLM Port All Port Writes are disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsPLMPortAllPortWritesEnabled
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum
- )
- {
- if (CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_ALL_PW_EN, SRIO_RIO_PLM_SP_ALL_PW_EN_PW_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortPathControl
- *
- * @b Description
- * @n The function is used to get the PLM Port Path control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- pathID Identifies the Path in which this port resides.
- pathConfig Indicates the Path’s configuration
- pathMode The mode of the path
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_PATH_CTL_PATH_ID,SRIO_RIO_PLM_SP_PATH_CTL_PATH_CONFIGURATION,
- * @n SRIO_RIO_PLM_SP_PATH_CTL_PATH_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 pathID;
- Uint8 pathConfig;
- Uint8 pathMode;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port1 Path Control
- CSL_SRIO_GetPLMPortPathControl(hSrio, 1, &pathID, &pathConfig, &pathMode);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortPathControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* pathID,
- Uint8* pathConfig,
- Uint8* pathMode
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_PATH_CTL;
- *pathID = CSL_FEXT (value, SRIO_RIO_PLM_SP_PATH_CTL_PATH_ID);
- *pathConfig = CSL_FEXT (value, SRIO_RIO_PLM_SP_PATH_CTL_PATH_CONFIGURATION);
- *pathMode = CSL_FEXT (value, SRIO_RIO_PLM_SP_PATH_CTL_PATH_MODE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortPathControlMode
- *
- * @b Description
- * @n The function is used to get the PLM Port Path control mode
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- pathMode The mode of the path
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_PATH_CTL_PATH_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the path mode for PLM Port 1 as 0
- CSL_SRIO_SetPLMPortPathControlMode(hSrio, 1, 0x0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortPathControlMode
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 pathMode
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_PATH_CTL, SRIO_RIO_PLM_SP_PATH_CTL_PATH_MODE, pathMode);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortDiscoveryTimer
- *
- * @b Description
- * @n The function is used to get the PLM Port Discovery timer
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portDiscoveryTimer PLM Port Discovery Timer
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_DISCOVERY_TIMER_DISCOVERY_TIMER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portDiscoveryTimer;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Discovery Timer
- CSL_SRIO_GetPLMPortDiscoveryTimer(hSrio, 1, &portDiscoveryTimer);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortDiscoveryTimer
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portDiscoveryTimer
- )
- {
- *portDiscoveryTimer = CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_DISCOVERY_TIMER,
- SRIO_RIO_PLM_SP_DISCOVERY_TIMER_DISCOVERY_TIMER);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortDiscoveryTimer
- *
- * @b Description
- * @n The function is used to set the PLM Port Discovery timer
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portDiscoveryTimer PLM Port Discovery Timer
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_DISCOVERY_TIMER_DISCOVERY_TIMER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PLM Discovery Timer
- CSL_SRIO_SetPLMPortDiscoveryTimer(hSrio, 1, 0x5);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortDiscoveryTimer
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 portDiscoveryTimer
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_DISCOVERY_TIMER, SRIO_RIO_PLM_SP_DISCOVERY_TIMER_DISCOVERY_TIMER,
- portDiscoveryTimer);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortSilenceTimer
- *
- * @b Description
- * @n The function is used to get the PLM Port Silence timer
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portSilenceTimer PLM Port Silence Timer
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_SILENCE_TIMER_SILENCE_TIMER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portSilenceTimer;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Silence Timer
- CSL_SRIO_GetPLMPortSilenceTimer(hSrio, 1, &portSilenceTimer);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortSilenceTimer
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* portSilenceTimer
- )
- {
- *portSilenceTimer = CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_SILENCE_TIMER,
- SRIO_RIO_PLM_SP_SILENCE_TIMER_SILENCE_TIMER);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortSilenceTimer
- *
- * @b Description
- * @n The function is used to set up the PLM Port Silence timer value.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- portSilenceTimer PLM Port Silence Timer value to configure
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_SILENCE_TIMER_SILENCE_TIMER=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portSilenceTimer;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Silence Timer
- CSL_SRIO_GetPLMPortSilenceTimer(hSrio, 1, &portSilenceTimer);
- ...
- // Set the PLM Silence Timer
- CSL_SRIO_SetPLMPortSilenceTimer(hSrio, 1, &portSilenceTimer);
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortSilenceTimer
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 portSilenceTimer
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_SILENCE_TIMER,
- SRIO_RIO_PLM_SP_SILENCE_TIMER_SILENCE_TIMER, portSilenceTimer);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortVMinExponentConfig
- *
- * @b Description
- * @n The function is used to get the PLM Port VMin Export configuration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrVminExponent PLM Port VMin Exponent configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_VMIN_EXP_VMIN_EXP, SRIO_RIO_PLM_SP_VMIN_EXP_IMAX,
- * @n SRIO_RIO_PLM_SP_VMIN_EXP_MMAX
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_VMIN_EXPONENT vminExponentConfig;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port VMin Exponent Configuration.
- CSL_SRIO_GetPLMPortVMinExponentConfig(hSrio, 1, &vminExponentConfig);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortVMinExponentConfig
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_VMIN_EXPONENT* ptrVminExponent
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_VMIN_EXP;
- ptrVminExponent->vminExp = CSL_FEXT (value, SRIO_RIO_PLM_SP_VMIN_EXP_VMIN_EXP);
- ptrVminExponent->imax = CSL_FEXT (value, SRIO_RIO_PLM_SP_VMIN_EXP_IMAX);
- ptrVminExponent->mmax = CSL_FEXT (value, SRIO_RIO_PLM_SP_VMIN_EXP_MMAX);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortVMinExponentConfig
- *
- * @b Description
- * @n The function is used to set the PLM Port VMin Export configuration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrVminExponent PLM Port VMin Exponent configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_VMIN_EXP_VMIN_EXP, SRIO_RIO_PLM_SP_VMIN_EXP_IMAX,
- * @n SRIO_RIO_PLM_SP_VMIN_EXP_MMAX
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_VMIN_EXPONENT vminExponentConfig;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port VMin Exponent Configuration.
- CSL_SRIO_GetPLMPortVMinExponentConfig(hSrio, 1, &vminExponentConfig);
- vminExponentConfig.imax = 2;
- CSL_SRIO_SetPLMPortVMinExponentConfig(hSrio, 1, &vminExponentConfig);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortVMinExponentConfig
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_VMIN_EXPONENT* ptrVminExponent
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_VMIN_EXP =
- CSL_FMK (SRIO_RIO_PLM_SP_VMIN_EXP_VMIN_EXP, ptrVminExponent->vminExp) |
- CSL_FMK (SRIO_RIO_PLM_SP_VMIN_EXP_IMAX, ptrVminExponent->imax) |
- CSL_FMK (SRIO_RIO_PLM_SP_VMIN_EXP_MMAX, ptrVminExponent->mmax);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortPolarityControl
- *
- * @b Description
- * @n The function is used to get the PLM Port Polarity Control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrPolarityConfig PLM Port Polarity configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_POL_CTL_TX3_POL, SRIO_RIO_PLM_SP_POL_CTL_TX2_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_TX1_POL, SRIO_RIO_PLM_SP_POL_CTL_TX0_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_RX3_POL, SRIO_RIO_PLM_SP_POL_CTL_RX2_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_RX1_POL, SRIO_RIO_PLM_SP_POL_CTL_RX0_POL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_POLARITY_CONTROL polarityControlConfig;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port Polarity Control Configuration.
- CSL_SRIO_GetPLMPortPolarityControl(hSrio, 1, &polarityControlConfig);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortPolarityControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_POLARITY_CONTROL* ptrPolarityConfig
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_POL_CTL;
- ptrPolarityConfig->tx3Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_TX3_POL);
- ptrPolarityConfig->tx2Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_TX2_POL);
- ptrPolarityConfig->tx1Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_TX1_POL);
- ptrPolarityConfig->tx0Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_TX0_POL);
- ptrPolarityConfig->rx3Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_RX3_POL);
- ptrPolarityConfig->rx2Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_RX2_POL);
- ptrPolarityConfig->rx1Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_RX1_POL);
- ptrPolarityConfig->rx0Pol = CSL_FEXT (value, SRIO_RIO_PLM_SP_POL_CTL_RX0_POL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortPolarityControl
- *
- * @b Description
- * @n The function is used to set the PLM Port Polarity Control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrPolarityConfig PLM Port Polarity configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_POL_CTL_TX3_POL, SRIO_RIO_PLM_SP_POL_CTL_TX2_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_TX1_POL, SRIO_RIO_PLM_SP_POL_CTL_TX0_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_RX3_POL, SRIO_RIO_PLM_SP_POL_CTL_RX2_POL,
- * @n SRIO_RIO_PLM_SP_POL_CTL_RX1_POL, SRIO_RIO_PLM_SP_POL_CTL_RX0_POL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_POLARITY_CONTROL polarityControlConfig;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port Polarity Control Configuration.
- CSL_SRIO_GetPLMPortPolarityControl(hSrio, 1, &polarityControlConfig);
- // Make sure that the TX3 Polarity is reversed
- polarityControlConfig.tx3Pol = 1;
- CSL_SRIO_SetPLMPortPolarityControl(hSrio, 1, &polarityControlConfig);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortPolarityControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_POLARITY_CONTROL* ptrPolarityConfig
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_POL_CTL =
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_TX3_POL, ptrPolarityConfig->tx3Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_TX2_POL, ptrPolarityConfig->tx2Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_TX1_POL, ptrPolarityConfig->tx1Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_TX0_POL, ptrPolarityConfig->tx0Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_RX3_POL, ptrPolarityConfig->rx3Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_RX2_POL, ptrPolarityConfig->rx2Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_RX1_POL, ptrPolarityConfig->rx1Pol) |
- CSL_FMK (SRIO_RIO_PLM_SP_POL_CTL_RX0_POL, ptrPolarityConfig->rx0Pol);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortPacketDenialControl
- *
- * @b Description
- * @n The function is used to get the PLM Port Packet Denial.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- cntPacketNotAccepted Controls whether Packet-Not-Accepted control
- symbols count toward the packet denial threshold value
- cntRetry Controls whether Retry control symbols count toward
- the packet denial threshold value
- denialThreshold Sets the threshold for reporting too many consecutive retries
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_PNA, SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_RTY,
- * @n SRIO_RIO_PLM_SP_DENIAL_CTL_DENIAL_THRESH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cntPacketNotAccepted;
- Uint8 cntRetry;
- Uint8 denialThreshold;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port Packet Denial
- CSL_SRIO_GetPLMPortPacketDenialControl(hSrio, 1, &cntPacketNotAccepted, &cntRetry, &denialThreshold);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortPacketDenialControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* cntPacketNotAccepted,
- Uint8* cntRetry,
- Uint8* denialThreshold
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_DENIAL_CTL;
- *cntPacketNotAccepted = CSL_FEXT (value, SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_PNA);
- *cntRetry = CSL_FEXT (value, SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_RTY);
- *denialThreshold = CSL_FEXT (value, SRIO_RIO_PLM_SP_DENIAL_CTL_DENIAL_THRESH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortPacketDenialControl
- *
- * @b Description
- * @n The function is used to set the PLM Port Packet Denial.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- cntPacketNotAccepted Controls whether Packet-Not-Accepted control
- symbols count toward the packet denial threshold value
- cntRetry Controls whether Retry control symbols count toward
- the packet denial threshold value
- denialThreshold Sets the threshold for reporting too many consecutive retries
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_PNA, SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_RTY,
- * @n SRIO_RIO_PLM_SP_DENIAL_CTL_DENIAL_THRESH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PLM Port Packet Denial
- CSL_SRIO_SetPLMPortPacketDenialControl(hSrio, 1, 1, 1, 2);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortPacketDenialControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 cntPacketNotAccepted,
- Uint8 cntRetry,
- Uint8 denialThreshold
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_DENIAL_CTL =
- CSL_FMK (SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_PNA, cntPacketNotAccepted) |
- CSL_FMK (SRIO_RIO_PLM_SP_DENIAL_CTL_CNT_RTY, cntRetry) |
- CSL_FMK (SRIO_RIO_PLM_SP_DENIAL_CTL_DENIAL_THRESH, denialThreshold);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortMECSStatus
- *
- * @b Description
- * @n The function is used to get the PLM Port MECS status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- cmd Indicates which MECS commands have been received.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_RCVD_MECS_CMD_STAT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmd;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port MECS Status
- CSL_SRIO_GetPLMPortMECSStatus(hSrio, 1, &cmd);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortMECSStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* cmd
- )
- {
- *cmd = CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_RCVD_MECS, SRIO_RIO_PLM_SP_RCVD_MECS_CMD_STAT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPLMPortMECSStatus
- *
- * @b Description
- * @n The function is used to clear the PLM Port MECS status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- cmd Indicates which MECS commands need to be cleared.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_RCVD_MECS_CMD_STAT
- *
- * @b Affects
- * @n SRIO_RIO_PLM_SP_RCVD_MECS_CMD_STAT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmd;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port MECS Status
- CSL_SRIO_GetPLMPortMECSStatus(hSrio, 1, &cmd);
- ...
- // Clear the PLM Port MECS Status.
- CSL_SRIO_ClearPLMPortMECSStatus(hSrio, 1, cmd);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPLMPortMECSStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 cmd
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_RCVD_MECS, SRIO_RIO_PLM_SP_RCVD_MECS_CMD_STAT, cmd);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortMECSForwarding
- *
- * @b Description
- * @n The function is used to get the PLM Port MECS Forwarding
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- subscription Specifies which MECS cmd values the port
- should forward to its link
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_MECS_FWD_SUBSCRIPTION
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 subscription;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port MECS Forwarding
- CSL_SRIO_GetPLMPortMECSForwarding(hSrio, 1, &subscription);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortMECSForwarding
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* subscription
- )
- {
- *subscription = CSL_FEXT (hSrio->RIO_PLM[portNum].RIO_PLM_SP_MECS_FWD,
- SRIO_RIO_PLM_SP_MECS_FWD_SUBSCRIPTION);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortMECSForwarding
- *
- * @b Description
- * @n The function is used to set the PLM Port MECS Forwarding
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- subscription Specifies which MECS cmd values the port
- should forward to its link
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_MECS_FWD_SUBSCRIPTION
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PLM Port MECS Forwarding
- CSL_SRIO_SetPLMPortMECSForwarding(hSrio, 1, 0x1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortMECSForwarding
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 subscription
- )
- {
- CSL_FINS (hSrio->RIO_PLM[portNum].RIO_PLM_SP_MECS_FWD, SRIO_RIO_PLM_SP_MECS_FWD_SUBSCRIPTION, subscription);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPLMPortCSTransmit
- *
- * @b Description
- * @n The function is used to get the Control Symbol Transmit1
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrCSTransmit Control Symbol Transmit Configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_0, SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_0,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_1, SRIO_RIO_PLM_SP_LONG_CS_TX1_CS_EMB,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_1, SRIO_RIO_PLM_SP_LONG_CS_TX1_CMD,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX2_STYPE_2, SRIO_RIO_PLM_SP_LONG_CS_TX2_PARM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_CONTROL_SYMBOL cntlSymbol;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PLM Port Control Symbol Transmit Configuration
- CSL_SRIO_GetPLMPortCSTransmit(hSrio, 1, &cntlSymbol);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPLMPortCSTransmit
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_CONTROL_SYMBOL* ptrCSTransmit
- )
- {
- Uint32 value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_LONG_CS_TX1;
- ptrCSTransmit->stype0 = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_0);
- ptrCSTransmit->par0 = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_0);
- ptrCSTransmit->par1 = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_1);
- ptrCSTransmit->csEmb = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_CS_EMB);
- ptrCSTransmit->stype1 = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_1);
- ptrCSTransmit->cmd = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX1_CMD);
- /* Get the value from the Control Symbol Transmit2 register */
- value = hSrio->RIO_PLM[portNum].RIO_PLM_SP_LONG_CS_TX2;
- ptrCSTransmit->stype2 = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX2_STYPE_2);
- ptrCSTransmit->parm = CSL_FEXT (value,SRIO_RIO_PLM_SP_LONG_CS_TX2_PARM);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPLMPortCSTransmit
- *
- * @b Description
- * @n The function is used to set the Control Symbol Transmit1
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrCSTransmit Control Symbol Transmit Configuration
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_0, SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_0,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_1, SRIO_RIO_PLM_SP_LONG_CS_TX1_CS_EMB,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_1, SRIO_RIO_PLM_SP_LONG_CS_TX1_CMD,
- * @n SRIO_RIO_PLM_SP_LONG_CS_TX2_STYPE_2, SRIO_RIO_PLM_SP_LONG_CS_TX2_PARM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_PLM_CONTROL_SYMBOL cntlSymbol;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PLM Port Control Symbol Transmit Configuration
- CSL_SRIO_SetPLMPortCSTransmit(hSrio, 1, &cntlSymbol);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPLMPortCSTransmit
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_PLM_CONTROL_SYMBOL* ptrCSTransmit
- )
- {
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_LONG_CS_TX1 =
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_0, ptrCSTransmit->stype0) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_0, ptrCSTransmit->par0) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_PAR_1, ptrCSTransmit->par1) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_CS_EMB, ptrCSTransmit->csEmb) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_STYPE_1, ptrCSTransmit->stype1) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX1_CMD, ptrCSTransmit->cmd);
- hSrio->RIO_PLM[portNum].RIO_PLM_SP_LONG_CS_TX2 =
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX2_STYPE_2, ptrCSTransmit->stype2) |
- CSL_FMK (SRIO_RIO_PLM_SP_LONG_CS_TX2_PARM, ptrCSTransmit->parm);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortControl
- *
- * @b Description
- * @n The function is used to get the TLM port control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrTLMControl TLM Port Control
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_CONTROL_PORTGROUP_SELECT, SRIO_RIO_TLM_SP_CONTROL_VOQ_SELECT,
- * @n SRIO_RIO_TLM_SP_CONTROL_TGT_ID_DIS, SRIO_RIO_TLM_SP_CONTROL_MTC_TGT_ID_DIS,
- * @n SRIO_RIO_TLM_SP_CONTROL_LENGTH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_TLM_CONTROL tlmCntlSymbol;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Control Configuration
- CSL_SRIO_GetTLMPortControl(hSrio, 1, &tlmCntlSymbol);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_TLM_CONTROL* ptrTLMControl
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].RIO_TLM_SP_CONTROL;
- ptrTLMControl->portGroupSelect = CSL_FEXT (value,SRIO_RIO_TLM_SP_CONTROL_PORTGROUP_SELECT);
- ptrTLMControl->voqSelect = CSL_FEXT (value,SRIO_RIO_TLM_SP_CONTROL_VOQ_SELECT);
- ptrTLMControl->tgtIDDis = CSL_FEXT (value,SRIO_RIO_TLM_SP_CONTROL_TGT_ID_DIS);
- ptrTLMControl->mtcTgtIDDis = CSL_FEXT (value,SRIO_RIO_TLM_SP_CONTROL_MTC_TGT_ID_DIS);
- ptrTLMControl->length = CSL_FEXT (value,SRIO_RIO_TLM_SP_CONTROL_LENGTH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortControl
- *
- * @b Description
- * @n The function is used to set the TLM port control
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- ptrTLMControl TLM Port Control
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_CONTROL_PORTGROUP_SELECT, SRIO_RIO_TLM_SP_CONTROL_VOQ_SELECT,
- * @n SRIO_RIO_TLM_SP_CONTROL_TGT_ID_DIS, SRIO_RIO_TLM_SP_CONTROL_MTC_TGT_ID_DIS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- SRIO_TLM_CONTROL tlmCntlSymbol;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Control Configuration
- CSL_SRIO_GetTLMPortControl(hSrio, 1, &tlmCntlSymbol);
- // Set Promiscuous mode.
- tlmCntlSymbol.tgtIDDis = 1;
- tlmCntlSymbol.mtcTgtIDDis = 1;
- CSL_SRIO_SetTLMPortControl (hSrio, 1, &tlmCntlSymbol);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- SRIO_TLM_CONTROL* ptrTLMControl
- )
- {
- hSrio->RIO_TLM[portNum].RIO_TLM_SP_CONTROL =
- CSL_FMK (SRIO_RIO_TLM_SP_CONTROL_PORTGROUP_SELECT, ptrTLMControl->portGroupSelect) |
- CSL_FMK (SRIO_RIO_TLM_SP_CONTROL_VOQ_SELECT, ptrTLMControl->voqSelect) |
- CSL_FMK (SRIO_RIO_TLM_SP_CONTROL_TGT_ID_DIS, ptrTLMControl->tgtIDDis) |
- CSL_FMK (SRIO_RIO_TLM_SP_CONTROL_MTC_TGT_ID_DIS, ptrTLMControl->mtcTgtIDDis);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortStatus
- *
- * @b Description
- * @n The function is used to get the TLM port status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC, SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Status
- CSL_SRIO_GetTLMPortStatus(hSrio, 1, &igBadVC, &igBrrFilter);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* igBadVC,
- Uint8* igBrrFilter
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].RIO_TLM_SP_STATUS;
- *igBadVC = CSL_FEXT (value, SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC);
- *igBrrFilter = CSL_FEXT (value, SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearTLMPortStatus
- *
- * @b Description
- * @n The function is used to clear the TLM port status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC=1, SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER=1
- *
- * @b Affects
- * @n SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC=0, SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Status
- CSL_SRIO_GetTLMPortStatus(hSrio, 1, &igBadVC, &igBrrFilter);
- ...
- // Clear the TLM Port Status
- CSL_SRIO_ClearTLMPortStatus (hSrio, 1, igBadVC, igBrrFilter);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearTLMPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 igBadVC,
- Uint8 igBrrFilter
- )
- {
- hSrio->RIO_TLM[portNum].RIO_TLM_SP_STATUS =
- CSL_FMK (SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC, igBadVC) |
- CSL_FMK (SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER, igBrrFilter);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortInterrupts
- *
- * @b Description
- * @n The function is used to get the TLM port interrupt status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_INT_ENABLE_IG_BAD_VC,
- * @n SRIO_RIO_TLM_SP_INT_ENABLE_IG_BRR_FILTER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Interrupt Status
- CSL_SRIO_GetTLMPortInterrupts(hSrio, 1, &igBadVC, &igBrrFilter);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* igBadVC,
- Uint8* igBrrFilter
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].RIO_TLM_SP_INT_ENABLE;
- *igBadVC = CSL_FEXT (value, SRIO_RIO_TLM_SP_INT_ENABLE_IG_BAD_VC);
- *igBrrFilter = CSL_FEXT (value, SRIO_RIO_TLM_SP_INT_ENABLE_IG_BRR_FILTER);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortInterrupts
- *
- * @b Description
- * @n The function is used to set the TLM Port Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_INT_ENABLE_IG_BAD_VC,
- * @n SRIO_RIO_TLM_SP_INT_ENABLE_IG_BRR_FILTER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable BadVC Interrupt & Disable BRR Filter Interrupts
- CSL_SRIO_SetTLMPortInterrupts(hSrio, 1, 1, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 igBadVC,
- Uint8 igBrrFilter
- )
- {
- hSrio->RIO_TLM[portNum].RIO_TLM_SP_INT_ENABLE =
- CSL_FMK (SRIO_RIO_TLM_SP_INT_ENABLE_IG_BAD_VC, igBadVC) |
- CSL_FMK (SRIO_RIO_TLM_SP_INT_ENABLE_IG_BRR_FILTER, igBrrFilter);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortWriteEnable
- *
- * @b Description
- * @n The function is used to get the TLM port write enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_PW_ENABLE_IG_BAD_VC,
- * @n SRIO_RIO_TLM_SP_PW_ENABLE_IG_BRR_FILTER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Write Enable status
- CSL_SRIO_GetTLMPortWriteEnable(hSrio, 1, &igBadVC, &igBrrFilter);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortWriteEnable
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* igBadVC,
- Uint8* igBrrFilter
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].RIO_TLM_SP_PW_ENABLE;
- *igBadVC = CSL_FEXT (value, SRIO_RIO_TLM_SP_PW_ENABLE_IG_BAD_VC);
- *igBrrFilter = CSL_FEXT (value, SRIO_RIO_TLM_SP_PW_ENABLE_IG_BRR_FILTER);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortWriteEnable
- *
- * @b Description
- * @n The function is used to set the TLM port write enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_PW_ENABLE_IG_BAD_VC,
- * @n SRIO_RIO_TLM_SP_PW_ENABLE_IG_BRR_FILTER
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the TLM Port Write Enable status for BAD VC and NOT for BRR Filter
- CSL_SRIO_SetTLMPortWriteEnable(hSrio, 1, 1, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortWriteEnable
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 igBadVC,
- Uint8 igBrrFilter
- )
- {
- hSrio->RIO_TLM[portNum].RIO_TLM_SP_PW_ENABLE =
- CSL_FMK (SRIO_RIO_TLM_SP_PW_ENABLE_IG_BAD_VC, igBadVC) |
- CSL_FMK (SRIO_RIO_TLM_SP_PW_ENABLE_IG_BRR_FILTER, igBrrFilter);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortEventGenerate
- *
- * @b Description
- * @n The function is used to set the TLM port event generates
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igBadVC Detected an inbound packet with the VC bit set
- igBrrFilter Discarded an inbound transaction based on the BRR
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_EVENT_GEN_IG_BAD_VC,
- * @n SRIO_RIO_TLM_SP_EVENT_GEN_IG_BRR_FILTER
- *
- * @b Affects
- * @n SRIO_RIO_TLM_SP_STATUS_IG_BAD_VC=1, SRIO_RIO_TLM_SP_STATUS_IG_BRR_FILTER=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igBadVC;
- Uint8 igBrrFilter;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the TLM Port Event Generate Status
- CSL_SRIO_SetTLMPortEventGenerate(hSrio, 1, 1, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 igBadVC,
- Uint8 igBrrFilter
- )
- {
- hSrio->RIO_TLM[portNum].RIO_TLM_SP_EVENT_GEN =
- CSL_FMK (SRIO_RIO_TLM_SP_EVENT_GEN_IG_BAD_VC, igBadVC) |
- CSL_FMK (SRIO_RIO_TLM_SP_EVENT_GEN_IG_BRR_FILTER, igBrrFilter);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortBaseRoutingInfo
- *
- * @b Description
- * @n The function is used to get the TLM Base Routing Information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- brrNum BRR Number for which this configuration is applied.
- enableStatus Status of the BRR for accepting & routing packets
- maintRouting Maintainance Packet Routing Status
- privateStatus Status of the BRR to be used by its port or by all
- ports
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_BRR_0_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_0_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_0_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_1_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_1_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_1_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_2_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_2_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_2_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_3_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_3_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_3_CTL_PRIVATE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 enableStatus;
- Uint8 maintRouting;
- Uint8 privateStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Base routing information.
- CSL_SRIO_GetTLMPortBaseRoutingInfo(hSrio, 1, 0, &enableStatus, &maintRouting, &privateStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortBaseRoutingInfo
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 brrNum,
- Uint8* enableStatus,
- Uint8* maintRouting,
- Uint8* privateStatus
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].brr[brrNum].RIO_TLM_SP_BRR_CTL;
- *enableStatus = CSL_FEXT (value, SRIO_RIO_TLM_SP_BRR_0_CTL_ENABLE);
- *maintRouting = CSL_FEXT (value, SRIO_RIO_TLM_SP_BRR_0_CTL_ROUTE_MR_TO_LLM);
- *privateStatus = CSL_FEXT (value, SRIO_RIO_TLM_SP_BRR_0_CTL_PRIVATE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortBaseRoutingInfo
- *
- * @b Description
- * @n The function is used to set the TLM Base Routing Information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- brrNum BRR Number for which this configuration is applied.
- enableStatus Status of the BRR for accepting & routing packets
- maintRouting Maintainance Packet Routing Status
- privateStatus Status of the BRR to be used by its port or by all
- ports
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_BRR_0_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_0_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_0_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_1_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_1_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_1_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_2_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_2_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_2_CTL_PRIVATE;
- * @n SRIO_RIO_TLM_SP_BRR_3_CTL_ENABLE, SRIO_RIO_TLM_SP_BRR_3_CTL_ROUTE_MR_TO_LLM,
- * @n SRIO_RIO_TLM_SP_BRR_3_CTL_PRIVATE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the TLM Port Base routing information.
- CSL_SRIO_SetTLMPortBaseRoutingInfo(hSrio, 1, 0, 1, 0, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortBaseRoutingInfo
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 brrNum,
- Uint8 enableStatus,
- Uint8 maintRouting,
- Uint8 privateStatus
- )
- {
- hSrio->RIO_TLM[portNum].brr[brrNum].RIO_TLM_SP_BRR_CTL =
- CSL_FMK (SRIO_RIO_TLM_SP_BRR_0_CTL_ENABLE, enableStatus) |
- CSL_FMK (SRIO_RIO_TLM_SP_BRR_0_CTL_ROUTE_MR_TO_LLM, maintRouting) |
- CSL_FMK (SRIO_RIO_TLM_SP_BRR_0_CTL_PRIVATE, privateStatus);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetTLMPortBaseRoutingPatternMatch
- *
- * @b Description
- * @n The function is used to get the TLM Base Routing Pattern Match information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- brrNum BRR Number for which this configuration is applied.
- pattern 16 bit ID used for comparison.
- match Indicates which of the 16bits should be used
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_1_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_1_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_2_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_2_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_3_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_3_PATTERN_MATCH_MATCH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 pattern;
- Uint16 match;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the TLM Port Base routing pattern match information
- CSL_SRIO_GetTLMPortBaseRoutingPatternMatch(hSrio, 1, &pattern, &match);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetTLMPortBaseRoutingPatternMatch
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 brrNum,
- Uint16* pattern,
- Uint16* match
- )
- {
- Uint32 value = hSrio->RIO_TLM[portNum].brr[brrNum].RIO_TLM_SP_BRR_PATTERN_MATCH;
- *pattern = CSL_FEXT (value, SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_PATTERN);
- *match = CSL_FEXT (value, SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_MATCH);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetTLMPortBaseRoutingPatternMatch
- *
- * @b Description
- * @n The function is used to set the TLM Base Routing Pattern Match information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- brrNum BRR Number for which this configuration is applied.
- pattern 16 bit ID used for comparison.
- match Indicates which of the 16bits should be used
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_1_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_1_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_2_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_2_PATTERN_MATCH_MATCH;
- * @n SRIO_RIO_TLM_SP_BRR_3_PATTERN_MATCH_PATTERN, SRIO_RIO_TLM_SP_BRR_3_PATTERN_MATCH_MATCH
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 pattern;
- Uint16 match;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the TLM Port Base routing pattern match information
- CSL_SRIO_SetTLMPortBaseRoutingPatternMatch(hSrio, 1, &pattern, &match);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetTLMPortBaseRoutingPatternMatch
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 brrNum,
- Uint16 pattern,
- Uint16 match
- )
- {
- hSrio->RIO_TLM[portNum].brr[brrNum].RIO_TLM_SP_BRR_PATTERN_MATCH =
- CSL_FMK (SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_PATTERN, pattern) |
- CSL_FMK (SRIO_RIO_TLM_SP_BRR_0_PATTERN_MATCH_MATCH, match);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortControl
- *
- * @b Description
- * @n The function is used to get the PBM Port Control information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egReorderMode Reorder Mode
- egReorderStick Number of repeat times the CRQ is reordered
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_MODE, SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_STICK
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 egReorderMode;
- Uint8 egReorderStick;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Control Information.
- CSL_SRIO_GetPBMPortControl(hSrio, 1, &egReorderMode, &egReorderStick);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* egReorderMode,
- Uint8* egReorderStick
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_CONTROL;
- *egReorderMode = CSL_FEXT (value, SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_MODE);
- *egReorderStick = CSL_FEXT (value, SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_STICK);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPBMPortControl
- *
- * @b Description
- * @n The function is used to set the PBM Port Control information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egReorderMode Reorder Mode
- egReorderStick Number of repeat times the CRQ is reordered
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_MODE, SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_STICK
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PBM Port Control Information.
- CSL_SRIO_GetPBMPortControl(hSrio, 1, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPBMPortControl
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 egReorderMode,
- Uint8 egReorderStick
- )
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_CONTROL =
- CSL_FMK (SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_MODE, egReorderMode) |
- CSL_FMK (SRIO_RIO_PBM_SP_CONTROL_EG_REORDER_STICK, egReorderStick);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortStatus
- *
- * @b Description
- * @n The function is used to get the PBM Port Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- igEmpty PBMi Queue Status
- egEmpty PBMe Queue Status
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_STATUS_IG_EMPTY, SRIO_RIO_PBM_SP_STATUS_EG_EMPTY,
- * @n SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW, SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL, SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igEmpty;
- Uint8 egEmpty;
- Uint8 egDataOverflow;
- Uint8 egCRQOverflow;
- Uint8 egBadChannel;
- Uint8 egBabblePacket;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Status
- CSL_SRIO_GetPBMPortStatus(hSrio, 1, &igEmpty, &egEmpty,
- &egDataOverflow, &egCRQOverflow, &egBadChannel, &egBabblePacket);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* igEmpty,
- Uint8* egEmpty,
- Uint8* egDataOverflow,
- Uint8* egCRQOverflow,
- Uint8* egBadChannel,
- Uint8* egBabblePacket
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_STATUS;
- *igEmpty = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_IG_EMPTY);
- *egEmpty = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_EG_EMPTY);
- *egDataOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW);
- *egCRQOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW);
- *egBadChannel = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL);
- *egBabblePacket = CSL_FEXT (value, SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearPBMPortStatus
- *
- * @b Description
- * @n The function is used to clear the PBM Port Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW=1, SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW=1,
- * @n SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL=1, SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET=1
- *
- * @b Affects
- * @n SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW=0, SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW=0,
- * @n SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL=0, SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igEmpty;
- Uint8 egEmpty;
- Uint8 egDataOverflow;
- Uint8 egCRQOverflow;
- Uint8 egBadChannel;
- Uint8 egBabblePacket;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Status
- CSL_SRIO_GetPBMPortStatus(hSrio, 1, &igEmpty, &egEmpty,
- &egDataOverflow, &egCRQOverflow, &egBadChannel, &egBabblePacket);
- ...
- // Clear the PBM Port Status
- CSL_SRIO_ClearPBMPortStatus(hSrio, 1, egDataOverflow, egCRQOverflow, egBadChannel, egBabblePacket);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearPBMPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 egDataOverflow,
- Uint8 egCRQOverflow,
- Uint8 egBadChannel,
- Uint8 egBabblePacket
- )
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_STATUS =
- CSL_FMK (SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW, egDataOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW, egCRQOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL, egBadChannel) |
- CSL_FMK (SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET, egBabblePacket);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortInterrupts
- *
- * @b Description
- * @n The function is used to get the PBM Port Interrupt status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 egDataOverflow;
- Uint8 egCRQOverflow;
- Uint8 egBadChannel;
- Uint8 egBabblePacket;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Interrupts
- CSL_SRIO_GetPBMPortInterrupts(hSrio, 1, &egDataOverflow, &egCRQOverflow,
- &egBadChannel, &egBabblePacket);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* egDataOverflow,
- Uint8* egCRQOverflow,
- Uint8* egBadChannel,
- Uint8* egBabblePacket
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_INT_ENABLE;
- *egDataOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_INT_ENABLE_EG_DATA_OVERFLOW);
- *egCRQOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_INT_ENABLE_EG_CRQ_OVERFLOW);
- *egBadChannel = CSL_FEXT (value, SRIO_RIO_PBM_SP_INT_ENABLE_EG_BAD_CHANNEL);
- *egBabblePacket = CSL_FEXT (value, SRIO_RIO_PBM_SP_INT_ENABLE_EG_BABBLE_PACKET);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPBMPortInterrupts
- *
- * @b Description
- * @n The function is used to set the PBM Port Interrupt status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_INT_ENABLE_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PBM Port Interrupts for Data Overflow only
- CSL_SRIO_SetPBMPortInterrupts(hSrio, 1, 1, 0, 0, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPBMPortInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 egDataOverflow,
- Uint8 egCRQOverflow,
- Uint8 egBadChannel,
- Uint8 egBabblePacket
- )
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_INT_ENABLE =
- CSL_FMK (SRIO_RIO_PBM_SP_INT_ENABLE_EG_DATA_OVERFLOW, egDataOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_INT_ENABLE_EG_CRQ_OVERFLOW, egCRQOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_INT_ENABLE_EG_BAD_CHANNEL, egBadChannel) |
- CSL_FMK (SRIO_RIO_PBM_SP_INT_ENABLE_EG_BABBLE_PACKET, egBabblePacket);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortWriteEnables
- *
- * @b Description
- * @n The function is used to get the PBM Port Write Enables
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 egDataOverflow;
- Uint8 egCRQOverflow;
- Uint8 egBadChannel;
- Uint8 egBabblePacket;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Write Enables
- CSL_SRIO_GetPBMPortWriteEnables(hSrio, 1, &egDataOverflow, &egCRQOverflow,
- &egBadChannel, &egBabblePacket);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortWriteEnables
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* egDataOverflow,
- Uint8* egCRQOverflow,
- Uint8* egBadChannel,
- Uint8* egBabblePacket
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_PW_ENABLE;
- *egDataOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_PW_ENABLE_EG_DATA_OVERFLOW);
- *egCRQOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_PW_ENABLE_EG_CRQ_OVERFLOW);
- *egBadChannel = CSL_FEXT (value, SRIO_RIO_PBM_SP_PW_ENABLE_EG_BAD_CHANNEL);
- *egBabblePacket = CSL_FEXT (value, SRIO_RIO_PBM_SP_PW_ENABLE_EG_BABBLE_PACKET);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPBMPortWriteEnables
- *
- * @b Description
- * @n The function is used to set the PBM Port Write Enables
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_PW_ENABLE_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PBM Port Write Enables for Data Overflow only
- CSL_SRIO_SetPBMPortWriteEnables(hSrio, 1, 1, 0, 0, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPBMPortWriteEnables
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 egDataOverflow,
- Uint8 egCRQOverflow,
- Uint8 egBadChannel,
- Uint8 egBabblePacket
- )
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_PW_ENABLE =
- CSL_FMK (SRIO_RIO_PBM_SP_PW_ENABLE_EG_DATA_OVERFLOW, egDataOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_PW_ENABLE_EG_CRQ_OVERFLOW, egCRQOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_PW_ENABLE_EG_BAD_CHANNEL, egBadChannel) |
- CSL_FMK (SRIO_RIO_PBM_SP_PW_ENABLE_EG_BABBLE_PACKET, egBabblePacket);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortEventGenerate
- *
- * @b Description
- * @n The function is used to get the PBM Port Event generates
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_BABBLE_PACKET
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 egDataOverflow;
- Uint8 egCRQOverflow;
- Uint8 egBadChannel;
- Uint8 egBabblePacket;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Event Generates
- CSL_SRIO_GetPBMPortEventGenerate(hSrio, 1, &egDataOverflow, &egCRQOverflow,
- &egBadChannel, &egBabblePacket);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8* egDataOverflow,
- Uint8* egCRQOverflow,
- Uint8* egBadChannel,
- Uint8* egBabblePacket
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_EVENT_GEN;
- *egDataOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_EVENT_GEN_EG_DATA_OVERFLOW);
- *egCRQOverflow = CSL_FEXT (value, SRIO_RIO_PBM_SP_EVENT_GEN_EG_CRQ_OVERFLOW);
- *egBadChannel = CSL_FEXT (value, SRIO_RIO_PBM_SP_EVENT_GEN_EG_BAD_CHANNEL);
- *egBabblePacket = CSL_FEXT (value, SRIO_RIO_PBM_SP_EVENT_GEN_EG_BABBLE_PACKET);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPBMPortEventGenerate
- *
- * @b Description
- * @n The function is used to set the PBM Port Event generates
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- egDataOverflow PBMe received a request to enqueue a packet
- for which it did not have enough data storage.
- egCRQOverflow PBMe received a request to enqueue a packet
- for which it did not have CRQ Entry.
- egBadChannel PBMe received a request to enqueue a packet
- on a channel enqueue interface which should be
- unused for the path’s Mode.
- egBabblePacket PBMe detected a packet that exceeded 276 bytes
- on its enqueue interface
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_DATA_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_CRQ_OVERFLOW,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_BAD_CHANNEL,
- * @n SRIO_RIO_PBM_SP_EVENT_GEN_EG_BABBLE_PACKET
- *
- * @b Affects
- * @n SRIO_RIO_PBM_SP_STATUS_EG_DATA_OVERFLOW=1, SRIO_RIO_PBM_SP_STATUS_EG_CRQ_OVERFLOW=1,
- * @n SRIO_RIO_PBM_SP_STATUS_EG_BAD_CHANNEL=1, SRIO_RIO_PBM_SP_STATUS_EG_BABBLE_PACKET=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PBM Port Event Generates for Data overflow only
- CSL_SRIO_SetPBMPortEventGenerate(hSrio, 1, 1, 0, 0, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPBMPortEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 egDataOverflow,
- Uint8 egCRQOverflow,
- Uint8 egBadChannel,
- Uint8 egBabblePacket
- )
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_EVENT_GEN =
- CSL_FMK (SRIO_RIO_PBM_SP_EVENT_GEN_EG_DATA_OVERFLOW, egDataOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_EVENT_GEN_EG_CRQ_OVERFLOW, egCRQOverflow) |
- CSL_FMK (SRIO_RIO_PBM_SP_EVENT_GEN_EG_BAD_CHANNEL, egBadChannel) |
- CSL_FMK (SRIO_RIO_PBM_SP_EVENT_GEN_EG_BABBLE_PACKET, egBabblePacket);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortIngressResources
- *
- * @b Description
- * @n The function is used to get the PBM Port Ingress resources
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- dataNodes Indicates the number of Data Nodes
- implemented in the PBMi for packet storage
- tags Indicates the number of Tags implemented in
- the PBMi for packet storage for the port
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_IG_RESOURCES_DATANODES,
- * @n SRIO_RIO_PBM_SP_IG_RESOURCES_TAGS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 dataNodes;
- Uint16 tags;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Ingress Resources
- CSL_SRIO_GetPBMPortIngressResources(hSrio, 1, &dataNodes, &tags);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortIngressResources
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint16* dataNodes,
- Uint16* tags
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_RESOURCES;
- *dataNodes = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_RESOURCES_DATANODES);
- *tags = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_RESOURCES_TAGS);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortEgressResources
- *
- * @b Description
- * @n The function is used to get the PBM Port Egress resources
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- dataNodes Indicates the number of Data Nodes
- implemented in the PBMe for packet storage
- crqEntries Indicates the number of CRQ Entries implemented in
- the PBMe for packet storage for the port
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_EG_RESOURCES_DATANODES,
- * @n SRIO_RIO_PBM_SP_EG_RESOURCES_CRQ_ENTRIES
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 dataNodes;
- Uint8 crqEntries;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Egress Resources
- CSL_SRIO_GetPBMPortEgressResources(hSrio, 1, &dataNodes, &crqEntries);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortEgressResources
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint16* dataNodes,
- Uint8* crqEntries
- )
- {
- Uint32 value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_EG_RESOURCES;
- *dataNodes = CSL_FEXT (value, SRIO_RIO_PBM_SP_EG_RESOURCES_DATANODES);
- *crqEntries = CSL_FEXT (value, SRIO_RIO_PBM_SP_EG_RESOURCES_CRQ_ENTRIES);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPBMPortIngressPriorityWatermark
- *
- * @b Description
- * @n The function is used to get the PBM Port Ingress Priority Watermark
- * configuration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- priority Priority 0,1,2 or 3
- crfWatermark CRF Watermark
- priWatermark Priority Watermark
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3_WM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint16 crfWatermark;
- Uint16 priWatermark;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the PBM Port Ingress 0 Watermarks
- CSL_SRIO_GetPBMPortIngressPriorityWatermark(hSrio, 1, 0, &crfWatermark, &priWatermark);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPBMPortIngressPriorityWatermark
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 priority,
- Uint16* crfWatermark,
- Uint16* priWatermark
- )
- {
- Uint32 value;
- switch (priority)
- {
- case 0:
- {
- value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK0;
- *crfWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0CRF_WM);
- *priWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0_WM);
- break;
- }
- case 1:
- {
- value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK1;
- *crfWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1CRF_WM);
- *priWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1_WM);
- break;
- }
- case 2:
- {
- value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK2;
- *crfWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2CRF_WM);
- *priWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2_WM);
- break;
- }
- case 3:
- {
- value = hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK3;
- *crfWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3CRF_WM);
- *priWatermark = CSL_FEXT (value, SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3_WM);
- break;
- }
- }
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPBMPortIngressPriorityWatermark
- *
- * @b Description
- * @n The function is used to set the PBM Port Ingress Priority Watermark
- * configuration
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum SRIO Port Number
- priority Priority 0,1,2 or 3
- crfWatermark CRF Watermark
- priWatermark Priority Watermark
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2_WM;
- * @n SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3CRF_WM, SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3_WM
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the PBM Port Ingress 0 Watermarks
- CSL_SRIO_SetPBMPortIngressPriorityWatermark(hSrio, 1, 0, 10, 12);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPBMPortIngressPriorityWatermark
- (
- CSL_SrioHandle hSrio,
- Uint8 portNum,
- Uint8 priority,
- Uint16 crfWatermark,
- Uint16 priWatermark
- )
- {
- switch (priority)
- {
- case 0:
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK0 =
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0CRF_WM, crfWatermark) |
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK0_PRIO0_WM, priWatermark);
- break;
- }
- case 1:
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK1 =
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1CRF_WM, crfWatermark) |
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK1_PRIO1_WM, priWatermark);
- break;
- }
- case 2:
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK2 =
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2CRF_WM, crfWatermark) |
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK2_PRIO2_WM, priWatermark);
- break;
- }
- case 3:
- {
- hSrio->RIO_PBM[portNum].RIO_PBM_SP_IG_WATERMARK3 =
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3CRF_WM, crfWatermark) |
- CSL_FMK (SRIO_RIO_PBM_SP_IG_WATERMARK3_PRIO3_WM, priWatermark);
- break;
- }
- }
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtInterruptStatus
- *
- * @b Description
- * @n The function is used to get the Event Management Interrupt Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- intStatus Event Management Interrupt Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_INT_STAT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 intStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Interrupt Status
- CSL_SRIO_GetEventMgmtInterruptStatus(hSrio, &intStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtInterruptStatus
- (
- CSL_SrioHandle hSrio,
- Uint32* intStatus
- )
- {
- *intStatus = hSrio->RIO_EM_INT_STAT;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtInterrupts
- *
- * @b Description
- * @n The function is used to get the Event Management Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- log When set, this field enables a logical layer event
- detected in the User Core to cause an interrupt
- mecs When set, this field enables an interrupt to be raised
- upon reception of an MECS with a command value that is
- enabled
- pwRx When set, this field enables the reception of a port-write
- to cause an interrupt
- localLog When set, this field enables an implementation-specific
- Logical/Transport Layer Error to cause an interrupt
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_INT_ENABLE_LOG, SRIO_RIO_EM_INT_ENABLE_MECS,
- * @n SRIO_RIO_EM_INT_ENABLE_PW_RX, SRIO_RIO_EM_INT_ENABLE_LOCALOG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 log;
- Uint8 mecs;
- Uint8 pwRx;
- Uint8 localLog;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Interrupts
- CSL_SRIO_GetEventMgmtInterrupts(hSrio, &log, &mecs, &pwRx, &localLog);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8* log,
- Uint8* mecs,
- Uint8* pwRx,
- Uint8* localLog
- )
- {
- Uint32 value = hSrio->RIO_EM_INT_ENABLE;
- *log = CSL_FEXT (value, SRIO_RIO_EM_INT_ENABLE_LOG);
- *mecs = CSL_FEXT (value, SRIO_RIO_EM_INT_ENABLE_MECS);
- *pwRx = CSL_FEXT (value, SRIO_RIO_EM_INT_ENABLE_PW_RX);
- *localLog = CSL_FEXT (value, SRIO_RIO_EM_INT_ENABLE_LOCALOG);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtInterrupts
- *
- * @b Description
- * @n The function is used to set the Event Management Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- log When set, this field enables a logical layer event
- detected in the User Core to cause an interrupt
- mecs When set, this field enables an interrupt to be raised
- upon reception of an MECS with a command value that is
- enabled
- pwRx When set, this field enables the reception of a port-write
- to cause an interrupt
- localLog When set, this field enables an implementation-specific
- Logical/Transport Layer Error to cause an interrupt
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_INT_ENABLE_LOG, SRIO_RIO_EM_INT_ENABLE_MECS,
- * @n SRIO_RIO_EM_INT_ENABLE_PW_RX, SRIO_RIO_EM_INT_ENABLE_LOCALOG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
-
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management Interrupts for logical layer events only
- CSL_SRIO_SetEventMgmtInterrupts(hSrio, 1, 0, 0, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtInterrupts
- (
- CSL_SrioHandle hSrio,
- Uint8 log,
- Uint8 mecs,
- Uint8 pwRx,
- Uint8 localLog
- )
- {
- hSrio->RIO_EM_INT_ENABLE =
- CSL_FMK (SRIO_RIO_EM_INT_ENABLE_LOG, log) |
- CSL_FMK (SRIO_RIO_EM_INT_ENABLE_MECS, mecs) |
- CSL_FMK (SRIO_RIO_EM_INT_ENABLE_PW_RX, pwRx) |
- CSL_FMK (SRIO_RIO_EM_INT_ENABLE_LOCALOG, localLog);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtInterruptPortStatus
- *
- * @b Description
- * @n The function is used to get the Event Management Interrupt port status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- irqPending Per-port interrupt pending status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_INT_PORT_STAT_IRQ_PENDING
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 irqPending;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Port Interrupt Status
- CSL_SRIO_GetEventMgmtInterruptPortStatus(hSrio, &irqPending);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtInterruptPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* irqPending
- )
- {
- *irqPending = CSL_FEXT (hSrio->RIO_EM_INT_PORT_STAT, SRIO_RIO_EM_INT_PORT_STAT_IRQ_PENDING);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtPortWriteStatus
- *
- * @b Description
- * @n The function is used to get the Event Management Port Write Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port When set, a port-specific event has been detected
- log An enabled logical layer event has been detected
- rcs A reset request has been detected by a port
- multiportErr Indicates that multiple ports have detected errors
- which use port-write notification
- localLog Implementation-specific local Logical/Transport Layer Error
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_PW_STAT_PORT, SRIO_RIO_EM_PW_STAT_LOG,
- * @n SRIO_RIO_EM_PW_STAT_RCS, SRIO_RIO_EM_PW_STAT_MULTIPORT_ERR,
- * @n SRIO_RIO_EM_PW_STAT_LOCALOG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 port;
- Uint8 log;
- Uint8 rcs;
- Uint8 multiportErr;
- Uint8 localLog;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Port Status
- CSL_SRIO_GetEventMgmtPortWriteStatus(hSrio, &port, &log, &rcs, &multiportErr, &localLog);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtPortWriteStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* port,
- Uint8* log,
- Uint8* rcs,
- Uint8* multiportErr,
- Uint8* localLog
- )
- {
- Uint32 value = hSrio->RIO_EM_PW_STAT;
- *port = CSL_FEXT (value, SRIO_RIO_EM_PW_STAT_PORT);
- *log = CSL_FEXT (value, SRIO_RIO_EM_PW_STAT_LOG);
- *rcs = CSL_FEXT (value, SRIO_RIO_EM_PW_STAT_RCS);
- *multiportErr = CSL_FEXT (value, SRIO_RIO_EM_PW_STAT_MULTIPORT_ERR);
- *localLog = CSL_FEXT (value, SRIO_RIO_EM_PW_STAT_LOCALOG);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtPortWriteEnable
- *
- * @b Description
- * @n The function is used to get the Event Management Port Write Enable
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- log When set, this field enables a logical layer event
- to cause a port-write to be sent.
- localLog When set, this field enables an implementation-specific
- Logical/Transport Layer Error to cause a port-write
- to be sent
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_PW_EN_LOG, SRIO_RIO_EM_PW_EN_LOCALOG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 log;
- Uint8 localLog;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Port Enable
- CSL_SRIO_GetEventMgmtPortWriteEnable(hSrio, &log, &localLog);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtPortWriteEnable
- (
- CSL_SrioHandle hSrio,
- Uint8* log,
- Uint8* localLog
- )
- {
- Uint32 value = hSrio->RIO_EM_PW_EN;
- *log = CSL_FEXT (value, SRIO_RIO_EM_PW_EN_LOG);
- *localLog = CSL_FEXT (value, SRIO_RIO_EM_PW_EN_LOCALOG);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtPortWriteEnable
- *
- * @b Description
- * @n The function is used to set the Event Management Port Write Enable
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- log When set, this field enables a logical layer event
- to cause a port-write to be sent.
- localLog When set, this field enables an implementation-specific
- Logical/Transport Layer Error to cause a port-write
- to be sent
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_PW_EN_LOG, SRIO_RIO_EM_PW_EN_LOCALOG
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management Port Enable for Log only events
- CSL_SRIO_SetEventMgmtPortWriteEnable(hSrio, 1, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtPortWriteEnable
- (
- CSL_SrioHandle hSrio,
- Uint8 log,
- Uint8 localLog
- )
- {
- hSrio->RIO_EM_PW_EN =
- CSL_FMK (SRIO_RIO_EM_PW_EN_LOG, log) |
- CSL_FMK (SRIO_RIO_EM_PW_EN_LOCALOG, localLog);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtPortWritePendingStatus
- *
- * @b Description
- * @n The function is used to get the Event Management Port Write Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- pwPending Per-port Port Write pending status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_PW_PORT_STAT_PW_PENDING
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 pwPending;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Port Write status
- CSL_SRIO_GetEventMgmtPortWritePendingStatus(hSrio, &pwPending);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtPortWritePendingStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* pwPending
- )
- {
- *pwPending = CSL_FEXT (hSrio->RIO_EM_PW_PORT_STAT, SRIO_RIO_EM_PW_PORT_STAT_PW_PENDING);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableEventMgmtInterrupts
- *
- * @b Description
- * @n The function is used to enable the Event Management Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_DEV_INT_EN_INT_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the Event Management Interrupts
- CSL_SRIO_EnableEventMgmtInterrupts(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableEventMgmtInterrupts
- (
- CSL_SrioHandle hSrio
- )
- {
- CSL_FINS (hSrio->RIO_EM_DEV_INT_EN, SRIO_RIO_EM_DEV_INT_EN_INT_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableEventMgmtInterrupts
- *
- * @b Description
- * @n The function is used to disable the Event Management Interrupts
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_DEV_INT_EN_INT_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the Event Management Interrupts
- CSL_SRIO_DisableEventMgmtInterrupts(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableEventMgmtInterrupts
- (
- CSL_SrioHandle hSrio
- )
- {
- CSL_FINS (hSrio->RIO_EM_DEV_INT_EN, SRIO_RIO_EM_DEV_INT_EN_INT_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsEventMgmtInterruptsEnabled
- *
- * @b Description
- * @n The function is used to check if the Event Management Interrupts are
- * enabled or disabled?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n TRUE - Event Management Interrupts are enabled
- * @n FALSE - Event Management Interrupts are disabled
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_DEV_INT_EN_INT_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the Event Management Interrupts
- if (CSL_SRIO_IsEventMgmtInterruptsEnabled(hSrio) == TRUE)
- {
- // Event Management Interrupts Enabled
- }
- else
- {
- // Event Management Interrupts Disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsEventMgmtInterruptsEnabled
- (
- CSL_SrioHandle hSrio
- )
- {
- if (CSL_FEXT(hSrio->RIO_EM_DEV_INT_EN, SRIO_RIO_EM_DEV_INT_EN_INT_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_EnableEventMgmtPortWrite
- *
- * @b Description
- * @n The function is used to enable the Event Management Port Write
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_DEV_PW_EN_PW_EN=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Enable the Event Management Port Writes
- CSL_SRIO_EnableEventMgmtPortWrite(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_EnableEventMgmtPortWrite
- (
- CSL_SrioHandle hSrio
- )
- {
- CSL_FINS (hSrio->RIO_EM_DEV_PW_EN, SRIO_RIO_EM_DEV_PW_EN_PW_EN, 1);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_DisableEventMgmtPortWrite
- *
- * @b Description
- * @n The function is used to disable the Event Management Port Write
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_DEV_PW_EN_PW_EN=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Disable the Event Management Port Writes
- CSL_SRIO_DisableEventMgmtPortWrite(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_DisableEventMgmtPortWrite
- (
- CSL_SrioHandle hSrio
- )
- {
- CSL_FINS (hSrio->RIO_EM_DEV_PW_EN, SRIO_RIO_EM_DEV_PW_EN_PW_EN, 0);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_IsEventMgmtPortWriteEnabled
- *
- * @b Description
- * @n The function is used to check if the Event Management Port Write is
- * enabled or not?
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_DEV_PW_EN_PW_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Check if the Event Management Port Writes are enabled or not?
- if (CSL_SRIO_IsEventMgmtPortWriteEnabled(hSrio) == TRUE)
- {
- // Event Management Port Writes are enabled
- }
- else
- {
- // Event Management Port Writes are disabled
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline Bool CSL_SRIO_IsEventMgmtPortWriteEnabled
- (
- CSL_SrioHandle hSrio
- )
- {
- if (CSL_FEXT(hSrio->RIO_EM_DEV_PW_EN, SRIO_RIO_EM_DEV_PW_EN_PW_EN) == 1)
- return TRUE;
- return FALSE;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSStatus
- *
- * @b Description
- * @n The function is used to get the event management MECS status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mecsStatus MECS Command received by any SRIO port
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_STAT_CMD_STAT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mecsStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Status
- CSL_SRIO_GetEventMgmtMECSStatus(hSrio, &mecsStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* mecsStatus
- )
- {
- *mecsStatus = CSL_FEXT (hSrio->RIO_EM_MECS_STAT, SRIO_RIO_EM_MECS_STAT_CMD_STAT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearEventMgmtMECSStatus
- *
- * @b Description
- * @n The function is used to clear the event management MECS status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mecsStatus MECS Command received by any SRIO port
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_STAT_CMD_STAT
- *
- * @b Affects
- * @n SRIO_RIO_EM_MECS_STAT_CMD_STAT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mecsStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Status
- CSL_SRIO_GetEventMgmtMECSStatus(hSrio, &mecsStatus);
- if (mecsStatus != 0)
- {
- // MECS with a command has been received.
- ...
- // Clear the MECS Event Management Status
- CSL_SRIO_ClearEventMgmtMECSStatus (hSrio, mecsStatus);
- }
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearEventMgmtMECSStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 mecsStatus
- )
- {
- CSL_FINS(hSrio->RIO_EM_MECS_STAT, SRIO_RIO_EM_MECS_STAT_CMD_STAT, mecsStatus);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSInterrupt
- *
- * @b Description
- * @n The function is used to get the event management MECS interrupt enable
- * status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mecsStatus Enables MECS with set cmd to raise an interrupt request
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_INT_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 mecsStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Interrupt status
- CSL_SRIO_GetEventMgmtMECSInterrupt(hSrio, &mecsStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSInterrupt
- (
- CSL_SrioHandle hSrio,
- Uint8* mecsStatus
- )
- {
- *mecsStatus = CSL_FEXT (hSrio->RIO_EM_MECS_INT_EN, SRIO_RIO_EM_MECS_INT_EN_CMD_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtMECSInterrupt
- *
- * @b Description
- * @n The function is used to set the event management MECS interrupt enable
- * status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- mecsStatus Enables MECS with set cmd to raise an interrupt request
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_INT_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management MECS Interrupt status for all cmds
- CSL_SRIO_SetEventMgmtMECSInterrupt(hSrio, 0xFF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtMECSInterrupt
- (
- CSL_SrioHandle hSrio,
- Uint8 mecsStatus
- )
- {
- CSL_FINS (hSrio->RIO_EM_MECS_INT_EN, SRIO_RIO_EM_MECS_INT_EN_CMD_EN, mecsStatus);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSCaptureOut
- *
- * @b Description
- * @n The function is used to get the event management MECS capture out
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdEn Enables the associated bit to toggle
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_CAP_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmdEn;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Capture out
- CSL_SRIO_GetEventMgmtMECSCaptureOut(hSrio, &cmdEn);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSCaptureOut
- (
- CSL_SrioHandle hSrio,
- Uint8* cmdEn
- )
- {
- *cmdEn = CSL_FEXT (hSrio->RIO_EM_MECS_CAP_EN, SRIO_RIO_EM_MECS_CAP_EN_CMD_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtMECSCaptureOut
- *
- * @b Description
- * @n The function is used to set the event management MECS capture out
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdEn Enables the associated bit to toggle
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_CAP_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management MECS Capture out for all commands
- CSL_SRIO_SetEventMgmtMECSCaptureOut(hSrio, 0xFF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtMECSCaptureOut
- (
- CSL_SrioHandle hSrio,
- Uint8 cmdEn
- )
- {
- CSL_FINS (hSrio->RIO_EM_MECS_CAP_EN, SRIO_RIO_EM_MECS_CAP_EN_CMD_EN, cmdEn);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSTriggerIn
- *
- * @b Description
- * @n The function is used to get the event management MECS Trigger In
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdStat Bit is set whenever an edge is detected on corresponding
- cmdEn Enables the associated bit to trigger a MECS command
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_TRIG_EN_CMD_STAT, SRIO_RIO_EM_MECS_TRIG_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmdEn;
- Uint8 cmdStat;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Trigger In
- CSL_SRIO_GetEventMgmtMECSTriggerIn(hSrio, &cmdStat, &cmdEn);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSTriggerIn
- (
- CSL_SrioHandle hSrio,
- Uint8* cmdStat,
- Uint8* cmdEn
- )
- {
- Uint32 value = hSrio->RIO_EM_MECS_TRIG_EN;
- *cmdStat = CSL_FEXT (value, SRIO_RIO_EM_MECS_TRIG_EN_CMD_STAT);
- *cmdEn = CSL_FEXT (value, SRIO_RIO_EM_MECS_TRIG_EN_CMD_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtMECSTriggerIn
- *
- * @b Description
- * @n The function is used to set the event management MECS Trigger In
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdStat Bit is set whenever an edge is detected on corresponding
- cmdEn Enables the associated bit to trigger a MECS command
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_TRIG_EN_CMD_STAT, SRIO_RIO_EM_MECS_TRIG_EN_CMD_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmdEn;
- Uint8 cmdStat;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Trigger In
- CSL_SRIO_GetEventMgmtMECSTriggerIn(hSrio, &cmdStat, &cmdEn);
- ...
- // Set the Event Management MECS Trigger In to enable all MECS cmds
- CSL_SRIO_SetEventMgmtMECSTriggerIn(hSrio, cmdStat, 0xFF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtMECSTriggerIn
- (
- CSL_SrioHandle hSrio,
- Uint8 cmdStat,
- Uint8 cmdEn
- )
- {
- hSrio->RIO_EM_MECS_TRIG_EN =
- CSL_FMK (SRIO_RIO_EM_MECS_TRIG_EN_CMD_STAT, cmdStat) |
- CSL_FMK (SRIO_RIO_EM_MECS_TRIG_EN_CMD_EN, cmdEn);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSRequest
- *
- * @b Description
- * @n The function is used to get the event management MECS Request
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- sendStatus Send Status
- cmd MECS command to be sent
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_REQ_SEND, SRIO_RIO_EM_MECS_REQ_CMD
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 sendStatus;
- Uint8 cmd;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Trigger In
- CSL_SRIO_GetEventMgmtMECSRequest(hSrio, &cmdStat, &cmdEn);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSRequest
- (
- CSL_SrioHandle hSrio,
- Uint8* sendStatus,
- Uint8* cmd
- )
- {
- Uint32 value = hSrio->RIO_EM_MECS_REQ;
- *sendStatus = CSL_FEXT (value, SRIO_RIO_EM_MECS_REQ_SEND);
- *cmd = CSL_FEXT (value, SRIO_RIO_EM_MECS_REQ_CMD);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtMECSRequest
- *
- * @b Description
- * @n The function is used to set the event management MECS Request
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- sendStatus Send Status
- cmd MECS command to be sent
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_REQ_SEND, SRIO_RIO_EM_MECS_REQ_CMD
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 sendStatus;
- Uint8 cmd;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Send the MECS Command 2.
- CSL_SRIO_SetEventMgmtMECSRequest(hSrio, 0x1, 0x2);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtMECSRequest
- (
- CSL_SrioHandle hSrio,
- Uint8 sendStatus,
- Uint8 cmd
- )
- {
- hSrio->RIO_EM_MECS_REQ =
- CSL_FMK (SRIO_RIO_EM_MECS_REQ_SEND, sendStatus) |
- CSL_FMK (SRIO_RIO_EM_MECS_REQ_CMD, cmd);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtMECSPortStatus
- *
- * @b Description
- * @n The function is used to get the event management MECS Port Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port MECS Received Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_MECS_PORT_STAT_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 port;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Port Status
- CSL_SRIO_GetEventMgmtMECSPortStatus(hSrio, &port);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtMECSPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* port
- )
- {
- *port = CSL_FEXT (hSrio->RIO_EM_MECS_PORT_STAT, SRIO_RIO_EM_MECS_PORT_STAT_PORT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtMECSPortStatus
- *
- * @b Description
- * @n The function is used to set the event management MECS Port Status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port MECS Received Status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_PORT_STAT_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 port;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Port Status
- CSL_SRIO_GetEventMgmtMECSPortStatus(hSrio, &port);
- ...
- // Clear the Event Management MECS Port Status
- CSL_SRIO_SetEventMgmtMECSPortStatus (hSrio, port);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtMECSPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 port
- )
- {
- CSL_FINS(hSrio->RIO_EM_MECS_PORT_STAT, SRIO_RIO_EM_MECS_PORT_STAT_PORT, port);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtCmdStatus
- *
- * @b Description
- * @n The function is used to get the event management command status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdStat MECS Command which were received
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_RST_PORT_STAT_RST_REQ
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmdStat;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Command Status
- CSL_SRIO_GetEventMgmtCmdStatus(hSrio, &cmdStat);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtCmdStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* cmdStat
- )
- {
- *cmdStat = CSL_FEXT (hSrio->RIO_EM_MECS_STAT, SRIO_RIO_EM_MECS_STAT_CMD_STAT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtCmdStatus
- *
- * @b Description
- * @n The function is used to set the event management command status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cmdStat MECS Command to be configured
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_MECS_STAT_CMD_STAT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 cmdStat;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Command Status
- CSL_SRIO_GetEventMgmtCmdStatus(hSrio, &cmdStat);
- ...
- // Clear the Event Management Command Status
- CSL_SRIO_SetEventMgmtCmdStatus(hSrio, cmdStat);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtCmdStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 cmdStat
- )
- {
- CSL_FINS (hSrio->RIO_EM_MECS_STAT, SRIO_RIO_EM_MECS_STAT_CMD_STAT, cmdStat);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtResetRequest
- *
- * @b Description
- * @n The function is used to get the event management reset request
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstReq Per-port Reset Control Symbol event received status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_RST_PORT_STAT_RST_REQ
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 rstReq;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management Reset Request Status
- CSL_SRIO_GetEventMgmtResetRequest(hSrio, &rstReq);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtResetRequest
- (
- CSL_SrioHandle hSrio,
- Uint8* rstReq
- )
- {
- *rstReq = CSL_FEXT (hSrio->RIO_EM_RST_PORT_STAT, SRIO_RIO_EM_RST_PORT_STAT_RST_REQ);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtResetRequest
- *
- * @b Description
- * @n The function is used to set the event management reset request
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstReq Per-port Reset Control Symbol event received status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_RST_PORT_STAT_RST_REQ
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 rstReq;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management Reset Request Status
- // and clear all the reset events
- CSL_SRIO_SetEventMgmtResetRequest(hSrio, 0xFF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtResetRequest
- (
- CSL_SrioHandle hSrio,
- Uint8 rstReq
- )
- {
- CSL_FINS (hSrio->RIO_EM_RST_PORT_STAT, SRIO_RIO_EM_RST_PORT_STAT_RST_REQ, rstReq);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtResetRequestInterrupt
- *
- * @b Description
- * @n The function is used to get the event management reset request interrupt
- * enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstIntEn Per-port Reset Request event interrupt enable
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_RST_INT_EN_RST_INT_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 rstReq;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Reset Request Status
- CSL_SRIO_GetEventMgmtResetRequestInterrupt(hSrio, &rstReq);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtResetRequestInterrupt
- (
- CSL_SrioHandle hSrio,
- Uint8* rstIntEn
- )
- {
- *rstIntEn = CSL_FEXT (hSrio->RIO_EM_RST_INT_EN, SRIO_RIO_EM_RST_INT_EN_RST_INT_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtResetRequestInterrupt
- *
- * @b Description
- * @n The function is used to set the event management reset request interrupt
- * enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstIntEn Per-port Reset Request event interrupt enable
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_RST_INT_EN_RST_INT_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management Reset Request Interrupt Enable for all ports
- CSL_SRIO_SetEventMgmtResetRequestInterrupt(hSrio, 0xF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtResetRequestInterrupt
- (
- CSL_SrioHandle hSrio,
- Uint8 rstIntEn
- )
- {
- CSL_FINS (hSrio->RIO_EM_RST_INT_EN, SRIO_RIO_EM_RST_INT_EN_RST_INT_EN, rstIntEn);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetEventMgmtResetRequestPortWrite
- *
- * @b Description
- * @n The function is used to get the event management reset request port write
- * enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstPwEn Per-port Reset Request port-write enable
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_EM_RST_PW_EN_RST_PW_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 rstReq;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Event Management MECS Reset Request Port Write Status
- CSL_SRIO_GetEventMgmtResetRequestPortWrite(hSrio, &rstReq);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetEventMgmtResetRequestPortWrite
- (
- CSL_SrioHandle hSrio,
- Uint8* rstPwEn
- )
- {
- *rstPwEn = CSL_FEXT (hSrio->RIO_EM_RST_PW_EN, SRIO_RIO_EM_RST_PW_EN_RST_PW_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetEventMgmtResetRequestPortWrite
- *
- * @b Description
- * @n The function is used to set the event management reset request port write
- * enable status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- rstPwEn Per-port Reset Request port-write enable
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_EM_RST_PW_EN_RST_PW_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 rstReq;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Event Management MECS Reset Request Port Write Status to
- // enable sending port write for reset request on all ports
- CSL_SRIO_SetEventMgmtResetRequestPortWrite(hSrio, 0xF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetEventMgmtResetRequestPortWrite
- (
- CSL_SrioHandle hSrio,
- Uint8 rstPwEn
- )
- {
- CSL_FINS (hSrio->RIO_EM_RST_PW_EN, SRIO_RIO_EM_RST_PW_EN_RST_PW_EN, rstPwEn);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteControl
- *
- * @b Description
- * @n The function is used to get the port write control information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- pwTimer Port Write Timer
- pwcMode Port Write Capture Mode
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_CTL_PW_TIMER, SRIO_RIO_PW_CTL_PWC_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 pwTimer;
- Uint8 pwcMode;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Control
- CSL_SRIO_GetPortWriteControl(hSrio, &pwTimer, &pwcMode);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteControl
- (
- CSL_SrioHandle hSrio,
- Uint8* pwTimer,
- Uint8* pwcMode
- )
- {
- *pwTimer = CSL_FEXT (hSrio->RIO_PW_CTL, SRIO_RIO_PW_CTL_PW_TIMER);
- *pwcMode = CSL_FEXT (hSrio->RIO_PW_CTL, SRIO_RIO_PW_CTL_PWC_MODE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortWriteControl
- *
- * @b Description
- * @n The function is used to set the port write control information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- pwTimer Port Write Timer
- pwcMode Port Write Capture Mode
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PW_CTL_PW_TIMER, SRIO_RIO_PW_CTL_PWC_MODE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Port Write Control to disable port write timer and to enable
- // continuous port capture
- CSL_SRIO_SetPortWriteControl(hSrio, 0, 0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortWriteControl
- (
- CSL_SrioHandle hSrio,
- Uint8 pwTimer,
- Uint8 pwcMode
- )
- {
- hSrio->RIO_PW_CTL =
- CSL_FMK (SRIO_RIO_PW_CTL_PW_TIMER, pwTimer) |
- CSL_FMK (SRIO_RIO_PW_CTL_PWC_MODE, pwcMode);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteRouting
- *
- * @b Description
- * @n The function is used to get the port write routing
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port Indicates if a port-write should be sent to this port.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_ROUTE_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 port;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Control
- CSL_SRIO_GetPortWriteRouting(hSrio, &port);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteRouting
- (
- CSL_SrioHandle hSrio,
- Uint8* port
- )
- {
- *port = CSL_FEXT (hSrio->RIO_PW_ROUTE, SRIO_RIO_PW_ROUTE_PORT);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortWriteRouting
- *
- * @b Description
- * @n The function is used to set the port write routing
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port Indicates if a port-write should be sent to this port.
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PW_ROUTE_PORT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 port;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Port Write Routing to ensure port writes are sent on all ports
- CSL_SRIO_SetPortWriteRouting(hSrio, 0xF);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortWriteRouting
- (
- CSL_SrioHandle hSrio,
- Uint8 port
- )
- {
- CSL_FINS (hSrio->RIO_PW_ROUTE, SRIO_RIO_PW_ROUTE_PORT, port);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteReceptionStatus
- *
- * @b Description
- * @n The function is used to get the port write reception status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- wrSize WRSIZE, in combination with WDPTR, are used to
- determine the maximum size of the port-write which has
- been received
- wdPtr WDPTR, in combination with WRSIZE, are used to
- determine the maximum size of the port-write which has
- been received
- pwDisc Port-write was discarded
- pwVal Port-write data registers contain valid data
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_RX_STAT_WR_SIZE, SRIO_RIO_PW_RX_STAT_WDPTR,
- * @n SRIO_RIO_PW_RX_STAT_PW_DISC, SRIO_RIO_PW_RX_STAT_PW_VAL,
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 wrSize;
- Uint8 wdPtr;
- Uint8 pwDisc;
- Uint8 pwVal;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Reception Status
- CSL_SRIO_GetPortWriteReceptionStatus(hSrio, &wrSize, &wdPtr, &pwDisc, &pwVal);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteReceptionStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* wrSize,
- Uint8* wdPtr,
- Uint8* pwDisc,
- Uint8* pwVal
- )
- {
- Uint32 value = hSrio->RIO_PW_RX_STAT;
- *wrSize = CSL_FEXT (value, SRIO_RIO_PW_RX_STAT_WR_SIZE);
- *wdPtr = CSL_FEXT (value, SRIO_RIO_PW_RX_STAT_WDPTR);
- *pwDisc = CSL_FEXT (value, SRIO_RIO_PW_RX_STAT_PW_DISC);
- *pwVal = CSL_FEXT (value, SRIO_RIO_PW_RX_STAT_PW_VAL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteEventGenerate
- *
- * @b Description
- * @n The function is used to get the port write reception status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- pwDisc Port-write discard event generate status
- pwVal Port-write data event generate status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_RX_EVENT_GEN_PW_DISC, SRIO_RIO_PW_RX_EVENT_GEN_PW_VAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 pwDisc;
- Uint8 pwVal;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Event Generate Status
- CSL_SRIO_GetPortWriteEventGenerate(hSrio, &pwDisc, &pwVal);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8* pwDisc,
- Uint8* pwVal
- )
- {
- Uint32 value = hSrio->RIO_PW_RX_EVENT_GEN;
- *pwDisc = CSL_FEXT (value, SRIO_RIO_PW_RX_EVENT_GEN_PW_DISC);
- *pwVal = CSL_FEXT (value, SRIO_RIO_PW_RX_EVENT_GEN_PW_VAL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortWriteEventGenerate
- *
- * @b Description
- * @n The function is used to set the port write reception status
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- pwDisc Port-write discard event generate status
- pwVal Port-write data event generate status
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PW_RX_EVENT_GEN_PW_DISC, SRIO_RIO_PW_RX_EVENT_GEN_PW_VAL
- *
- * @b Affects
- * @n SRIO_RIO_PW_RX_STAT_PW_DISC=1, SRIO_RIO_PW_RX_STAT_PW_VAL=1
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Port Write Event Generate Status
- CSL_SRIO_SetPortWriteEventGenerate(hSrio, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortWriteEventGenerate
- (
- CSL_SrioHandle hSrio,
- Uint8 pwDisc,
- Uint8 pwVal
- )
- {
- hSrio->RIO_PW_RX_EVENT_GEN = CSL_FMK(SRIO_RIO_PW_RX_EVENT_GEN_PW_DISC, pwDisc) |
- CSL_FMK(SRIO_RIO_PW_RX_EVENT_GEN_PW_VAL, pwVal);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortWriteReceptionCapture
- *
- * @b Description
- * @n The function is used to get the port write reception capture
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- cap0 Reception Capture 0
- cap1 Reception Capture 1
- cap2 Reception Capture 2
- cap3 Reception Capture 3
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PW_RX_CAPT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 cap0;
- Uint32 cap1;
- Uint32 cap2;
- Uint32 cap3;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Reception Capture
- CSL_SRIO_GetPortWriteReceptionCapture(hSrio, &cap0, &cap1, &cap2, &cap3);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortWriteReceptionCapture
- (
- CSL_SrioHandle hSrio,
- Uint32* cap0,
- Uint32* cap1,
- Uint32* cap2,
- Uint32* cap3
- )
- {
- *cap0 = hSrio->RIO_PW_RX_CAPT[0];
- *cap1 = hSrio->RIO_PW_RX_CAPT[1];
- *cap2 = hSrio->RIO_PW_RX_CAPT[2];
- *cap3 = hSrio->RIO_PW_RX_CAPT[3];
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetPortWriteReceptionCapture
- *
- * @b Description
- * @n The function is used to set the port write reception capture
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port Port number for which the write reception capture needs
- to be configured.
- cap Reception Capture value
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Affects
- * @n SRIO_RIO_PW_RX_CAPT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 cap0;
- Uint32 cap1;
- Uint32 cap2;
- Uint32 cap3;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Write Reception Capture
- CSL_SRIO_GetPortWriteReceptionCapture(hSrio, &cap0, &cap1, &cap2, &cap3);
- ...
- // Set the Port Write Reception Capture for port 0
- CSL_SRIO_SetPortWriteReceptionCapture(hSrio, 0, cap0);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetPortWriteReceptionCapture
- (
- CSL_SrioHandle hSrio,
- Uint8 port,
- Uint32 cap
- )
- {
- CSL_FINS (hSrio->RIO_PW_RX_CAPT[port], SRIO_RIO_PW_RX_CAPT_PW_CAPT, cap);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetPortNumberInfo
- *
- * @b Description
- * @n The function is used to get the port number information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- portNum Port Number
- totalPort Total number of ports
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PORT_NUMBER_PORT_NUM,SRIO_RIO_PORT_NUMBER_PORT_TOTAL
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 portNum;
- Uint8 totalPort;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Port Information
- CSL_SRIO_GetPortNumberInfo(hSrio, &portNum, &totalPort);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetPortNumberInfo
- (
- CSL_SrioHandle hSrio,
- Uint8* portNum,
- Uint8* totalPort
- )
- {
- Uint32 value = hSrio->RIO_PORT_NUMBER;
- *portNum = CSL_FEXT(value, SRIO_RIO_PORT_NUMBER_PORT_NUM);
- *totalPort = CSL_FEXT(value, SRIO_RIO_PORT_NUMBER_PORT_TOTAL);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLLMPortIPPrescalar
- *
- * @b Description
- * @n The function is used to get the LLM Port IP Prescalar
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- prescalarClock Prescalar clock
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_PRESCALAR_SRV_CLK_PRESCALAR_SRV_CLK
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 prescalarClock;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the LLM Port IP Prescalar Clock.
- CSL_SRIO_GetLLMPortIPPrescalar(hSrio, &prescalarClock);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLLMPortIPPrescalar
- (
- CSL_SrioHandle hSrio,
- Uint8* prescalarClock
- )
- {
- *prescalarClock = CSL_FEXT (hSrio->RIO_PRESCALAR_SRV_CLK, SRIO_RIO_PRESCALAR_SRV_CLK_PRESCALAR_SRV_CLK);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetLLMPortIPPrescalar
- *
- * @b Description
- * @n The function is used to set the LLM Port IP Prescalar
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- prescalarClock Prescalar clock
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_PRESCALAR_SRV_CLK_PRESCALAR_SRV_CLK
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 prescalarClock;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the LLM Port IP Prescalar Clock to the default value
- CSL_SRIO_SetLLMPortIPPrescalar(hSrio, 31);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetLLMPortIPPrescalar
- (
- CSL_SrioHandle hSrio,
- Uint8 prescalarClock
- )
- {
- CSL_FINS (hSrio->RIO_PRESCALAR_SRV_CLK, SRIO_RIO_PRESCALAR_SRV_CLK_PRESCALAR_SRV_CLK, prescalarClock);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLLMResetControl
- *
- * @b Description
- * @n The function is used to get the LLM Reset Control CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- clearSticky Allows the SELF_RST and PWDN_PORT resets to
- clear sticky register bits in addition to the
- normal configuration registers
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_REG_RST_CTL_CLEAR_STICKY
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 clearSticky;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the LLM Port Reset Control CSR
- CSL_SRIO_GetLLMResetControl(hSrio, &clearSticky);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLLMResetControl
- (
- CSL_SrioHandle hSrio,
- Uint8* clearSticky
- )
- {
- *clearSticky = CSL_FEXT (hSrio->RIO_REG_RST_CTL, SRIO_RIO_REG_RST_CTL_CLEAR_STICKY);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetLLMResetControl
- *
- * @b Description
- * @n The function is used to set the LLM Reset Control CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- clearSticky Allows the SELF_RST and PWDN_PORT resets to
- clear sticky register bits in addition to the
- normal configuration registers
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_REG_RST_CTL_CLEAR_STICKY
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the LLM Port Reset Control CSR
- CSL_SRIO_SetLLMResetControl(hSrio, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetLLMResetControl
- (
- CSL_SrioHandle hSrio,
- Uint8 clearSticky
- )
- {
- CSL_FINS (hSrio->RIO_REG_RST_CTL, SRIO_RIO_REG_RST_CTL_CLEAR_STICKY, clearSticky);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorDetect
- *
- * @b Description
- * @n The function is used to get the error detect CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- illID Illegal transaction target error
- illType Unsupported Transaction
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_ERR_DET_ILL_ID, SRIO_RIO_LOCAL_ERR_DET_ILL_TYPE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 illID;
- Uint8 illType;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error Detect CSR Information
- CSL_SRIO_GetErrorDetect(hSrio, &illID, &illType);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorDetect
- (
- CSL_SrioHandle hSrio,
- Uint8* illID,
- Uint8* illType
- )
- {
- Uint32 value = hSrio->RIO_LOCAL_ERR_DET;
- *illID = CSL_FEXT (value, SRIO_RIO_LOCAL_ERR_DET_ILL_ID);
- *illType = CSL_FEXT (value, SRIO_RIO_LOCAL_ERR_DET_ILL_TYPE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorDetect
- *
- * @b Description
- * @n The function is used to set the error detect CSR.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- illID Illegal transaction target error
- illType Unsupported Transaction
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LOCAL_ERR_DET_ILL_ID, SRIO_RIO_LOCAL_ERR_DET_ILL_TYPE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
-
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Error Detect CSR Information for illegal type
- CSL_SRIO_SetErrorDetect(hSrio, 0, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorDetect
- (
- CSL_SrioHandle hSrio,
- Uint8 illID,
- Uint8 illType
- )
- {
- hSrio->RIO_LOCAL_ERR_DET =
- CSL_FMK (SRIO_RIO_LOCAL_ERR_DET_ILL_ID, illID) |
- CSL_FMK (SRIO_RIO_LOCAL_ERR_DET_ILL_TYPE, illType);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetErrorDetectEnable
- *
- * @b Description
- * @n The function is used to get the error detect enable CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- illID Illegal transaction target error
- illType Unsupported Transaction
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_ERR_EN_ILL_ID_EN, SRIO_RIO_LOCAL_ERR_EN_ILL_TYPE_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 illID;
- Uint8 illType;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Error Detect Enable CSR Information
- CSL_SRIO_GetErrorDetectEnable(hSrio, &illID, &illType);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetErrorDetectEnable
- (
- CSL_SrioHandle hSrio,
- Uint8* illID,
- Uint8* illType
- )
- {
- Uint32 value = hSrio->RIO_LOCAL_ERR_EN;
- *illID = CSL_FEXT (value, SRIO_RIO_LOCAL_ERR_EN_ILL_ID_EN);
- *illType = CSL_FEXT (value, SRIO_RIO_LOCAL_ERR_EN_ILL_TYPE_EN);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_SetErrorDetectEnable
- *
- * @b Description
- * @n The function is used to set the error detect enable CSR
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- illID Illegal transaction target error
- illType Unsupported Transaction
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LOCAL_ERR_EN_ILL_ID_EN, SRIO_RIO_LOCAL_ERR_EN_ILL_TYPE_EN
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Set the Error Detect Enable CSR Information for both illegal id and type
- CSL_SRIO_SetErrorDetectEnable(hSrio, 1, 1);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_SetErrorDetectEnable
- (
- CSL_SrioHandle hSrio,
- Uint8 illID,
- Uint8 illType
- )
- {
- hSrio->RIO_LOCAL_ERR_EN =
- CSL_FMK (SRIO_RIO_LOCAL_ERR_EN_ILL_ID_EN, illID) |
- CSL_FMK (SRIO_RIO_LOCAL_ERR_EN_ILL_TYPE_EN, illType);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetHiAddressCapture
- *
- * @b Description
- * @n The function is used to get the High Address capture CSR information.
- * The contents of this register are only valid when the device is using
- * 50- or 66-bit addressing
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- address Address Capture information
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_H_ADDR_CAPT
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 address;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Address Capture Information
- CSL_SRIO_GetHiAddressCapture(hSrio, &address);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetHiAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32* address
- )
- {
- *address = hSrio->RIO_LOCAL_H_ADDR_CAPT;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLoAddressCapture
- *
- * @b Description
- * @n The function is used to get the Low Address capture CSR information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- address Address Capture information
- xambs Extended address bits of the address associated
- with the error
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_ADDR_CAPT_ADDR, SRIO_RIO_LOCAL_ADDR_CAPT_XAMSBS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 address;
- Uint8 xambs;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Address Capture Information
- CSL_SRIO_GetLoAddressCapture(hSrio, &address, &xambs);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLoAddressCapture
- (
- CSL_SrioHandle hSrio,
- Uint32* address,
- Uint8* xambs
- )
- {
- Uint32 value = hSrio->RIO_LOCAL_ADDR_CAPT;
- *address = CSL_FEXT (value, SRIO_RIO_LOCAL_ADDR_CAPT_ADDR);
- *xambs = CSL_FEXT (value, SRIO_RIO_LOCAL_ADDR_CAPT_XAMSBS);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearLoAddressCapture
- *
- * @b Description
- * @n The function is used to clear the Low Address capture CSR information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LOCAL_ADDR_CAPT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint32 address;
- Uint8 xambs;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Address Capture Information
- CSL_SRIO_GetLoAddressCapture(hSrio, &address, &xambs);
- ...
- // Clear the Address capture information
- CSL_SRIO_ClearLoAddressCapture(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearLoAddressCapture
- (
- CSL_SrioHandle hSrio
- )
- {
- hSrio->RIO_LOCAL_ADDR_CAPT = 0;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetDeviceIDCapture
- *
- * @b Description
- * @n The function is used to get the Device ID capture CSR information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- msbDstID MSB Destination ID
- lsbDstID LSB Destination ID
- msbSrcID MSB Source ID
- lsbSrcID LSB Source ID
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_ID_CAPT_MSB_DEST_ID, SRIO_RIO_LOCAL_ID_CAPT_DEST_ID,SRIO_RIO_LOCAL_ID_CAPT_MSB_SRC_ID, SRIO_RIO_LOCAL_ID_CAPT_SRC_ID
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 msbDstID;
- Uint8 lsbDstID;
- Uint8 msbSrcID;
- Uint8 lsbSrcID;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Device ID Capture information
- CSL_SRIO_GetDeviceIDCapture(hSrio, &msbDstID, &lsbDstID, &msbSrcID, &lsbSrcID);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetDeviceIDCapture
- (
- CSL_SrioHandle hSrio,
- Uint8* msbDstID,
- Uint8* lsbDstID,
- Uint8* msbSrcID,
- Uint8* lsbSrcID
- )
- {
- Uint32 value = hSrio->RIO_LOCAL_ID_CAPT;
- *msbDstID = CSL_FEXT (value, SRIO_RIO_LOCAL_ID_CAPT_MSB_DEST_ID);
- *lsbDstID = CSL_FEXT (value, SRIO_RIO_LOCAL_ID_CAPT_DEST_ID);
- *msbSrcID = CSL_FEXT (value, SRIO_RIO_LOCAL_ID_CAPT_MSB_SRC_ID);
- *lsbSrcID = CSL_FEXT (value, SRIO_RIO_LOCAL_ID_CAPT_SRC_ID);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearDeviceIDCapture
- *
- * @b Description
- * @n The function is used to clear the Device ID capture CSR information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LOCAL_ID_CAPT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 msbDstID;
- Uint8 lsbDstID;
- Uint8 msbSrcID;
- Uint8 lsbSrcID;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Device ID Capture information
- CSL_SRIO_GetDeviceIDCapture(hSrio, &msbDstID, &lsbDstID, &msbSrcID, &lsbSrcID);
- ...
- // Clear the Address capture information
- CSL_SRIO_ClearDeviceIDCapture(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearDeviceIDCapture
- (
- CSL_SrioHandle hSrio
- )
- {
- hSrio->RIO_LOCAL_ID_CAPT = 0;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetLocalControlCapture
- *
- * @b Description
- * @n The function is used to get the Local Control capture CSR information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- ftype FTYPE associated with the error.
- ttype TTYPE associated with the error.
- msgInfo Messages are not generated by SRIO-TEV2 and message
- information is not logged
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_LOCAL_CTRL_CAPT_FTYPE,SRIO_RIO_LOCAL_CTRL_CAPT_TTYPE,
- * @n SRIO_RIO_LOCAL_CTRL_CAPT_MESSAGE_INFO
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 ftype;
- Uint8 ttype;
- Uint8 msgInfo;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Device ID Capture information
- CSL_SRIO_GetLocalControlCapture(hSrio, &ftype, &ttype, &msgInfo);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetLocalControlCapture
- (
- CSL_SrioHandle hSrio,
- Uint8* ftype,
- Uint8* ttype,
- Uint8* msgInfo
- )
- {
- Uint32 value = hSrio->RIO_LOCAL_CTRL_CAPT;
- *ftype = CSL_FEXT (value, SRIO_RIO_LOCAL_CTRL_CAPT_FTYPE);
- *ttype = CSL_FEXT (value, SRIO_RIO_LOCAL_CTRL_CAPT_TTYPE);
- *msgInfo = CSL_FEXT (value, SRIO_RIO_LOCAL_CTRL_CAPT_MESSAGE_INFO);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_ClearLocalControlCapture
- *
- * @b Description
- * @n The function is used to clear the Local Control capture CSR information
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Writes
- * @n SRIO_RIO_LOCAL_CTRL_CAPT=0
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 ftype;
- Uint8 ttype;
- Uint8 msgInfo;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Local control Capture information
- CSL_SRIO_GetLocalControlCapture(hSrio, &ftype, &ttype, &msgInfo);
- ...
- // Clear the local control capture
- CSL_SRIO_ClearLocalControlCapture(hSrio);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_ClearLocalControlCapture
- (
- CSL_SrioHandle hSrio
- )
- {
- hSrio->RIO_LOCAL_CTRL_CAPT = 0;
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetFabricControlStatus
- *
- * @b Description
- * @n The function is used to get the Fabric control status information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- igLLMBackPressure Ingress LLM backpressure indication
- igUCBackPressure Ingress User Core backpressure indication
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_FABRIC_CSR_IG_LLM_BACKPRESSURE,SRIO_RIO_FABRIC_CSR_IG_UC_BACKPRESSURE
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igLLMBackPressure;
- Uint8 igUCBackPressure;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Fabric Control Status
- CSL_SRIO_GetFabricControlStatus(hSrio, &igLLMBackPressure, &igUCBackPressure);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetFabricControlStatus
- (
- CSL_SrioHandle hSrio,
- Uint8* igLLMBackPressure,
- Uint8* igUCBackPressure
- )
- {
- Uint32 value = hSrio->RIO_FABRIC_CSR;
- *igLLMBackPressure = CSL_FEXT (value, SRIO_RIO_FABRIC_CSR_IG_LLM_BACKPRESSURE);
- *igUCBackPressure = CSL_FEXT (value, SRIO_RIO_FABRIC_CSR_IG_UC_BACKPRESSURE);
- }
- /** ============================================================================
- * @n@b CSL_SRIO_GetFabricControlPortStatus
- *
- * @b Description
- * @n The function is used to get the Fabric control port status information.
- *
- * @b Arguments
- @verbatim
- hSrio Handle of the SRIO device
- port SRIO port number
- igPktEnableStatus PBMi Packet Enable Indication
- egPktEnableStatus PBMe Packet Enable Indication
- @endverbatim
- *
- * <b> Return Value </b>
- * @n None
- *
- * <b> Pre Condition </b>
- * @n CSL_SRIO_Open() must be called
- *
- * <b> Post Condition </b>
- * @n None
- *
- * @b Reads
- * @n SRIO_RIO_SP_FABRIC_STATUS_IG_PKT_ENABLE_STATUS,
- * @n SRIO_RIO_SP_FABRIC_STATUS_EG_PKT_ENABLE_STATUS
- *
- * @b Example
- * @verbatim
- CSL_SrioHandle hSrio;
- Uint8 igPktEnableStatus;
- Uint8 egPktEnableStatus;
- // Open the CSL SRIO Module 0
- hSrio = CSL_SRIO_Open (0);
- // Get the Fabric Control Port Status
- CSL_SRIO_GetFabricControlPortStatus(hSrio, 1, &igPktEnableStatus, &egPktEnableStatus);
- ...
- @endverbatim
- * =============================================================================
- */
- static inline void CSL_SRIO_GetFabricControlPortStatus
- (
- CSL_SrioHandle hSrio,
- Uint8 port,
- Uint8* igPktEnableStatus,
- Uint8* egPktEnableStatus
- )
- {
- Uint32 value = hSrio->RIO_SP_FABRIC_STATUS[port];
- *igPktEnableStatus = CSL_FEXT (value, SRIO_RIO_SP_FABRIC_STATUS_IG_PKT_ENABLE_STATUS);
- *egPktEnableStatus = CSL_FEXT (value, SRIO_RIO_SP_FABRIC_STATUS_EG_PKT_ENABLE_STATUS);
- }
- /**
- @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* CSL_SRIO_AUX_PHY_LAYER_H_ */
|