123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718 |
- diff -Nur musl-0.9.15/arch/arm/bits/sem.h musl-git/arch/arm/bits/sem.h
- --- musl-0.9.15/arch/arm/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/arm/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h
- --- musl-0.9.15/arch/arm/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/arm/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -16,3 +16,14 @@
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h
- --- musl-0.9.15/arch/arm/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/arm/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -42,6 +42,7 @@
- #define IXANY 0004000
- #define IXOFF 0010000
- #define IMAXBEL 0020000
- +#define IUTF8 0040000
-
- #define OPOST 0000001
- #define OLCUC 0000002
- @@ -75,9 +76,6 @@
- #define VT0 0000000
- #define VT1 0040000
-
- -/* ?? */
- -#define XTABS 0014000
- -
- #define B0 0000000
- #define B50 0000001
- #define B75 0000002
- @@ -125,8 +123,6 @@
- #define HUPCL 0002000
- #define CLOCAL 0004000
-
- -#define CRTSCTS 020000000000
- -
- #define ISIG 0000001
- #define ICANON 0000002
- #define ECHO 0000010
- @@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
-
- -/* Extensions? */
- -#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
- -#define EXTPROC 0200000
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -158,3 +151,10 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h
- --- musl-0.9.15/arch/arm/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/arm/syscall_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
-
- +long (__syscall)(long, ...);
- +
- #ifndef __clang__
-
- #define __asm_syscall(...) do { \
- diff -Nur musl-0.9.15/arch/i386/bits/sem.h musl-git/arch/i386/bits/sem.h
- --- musl-0.9.15/arch/i386/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/i386/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h
- --- musl-0.9.15/arch/i386/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/i386/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -16,3 +16,14 @@
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h
- --- musl-0.9.15/arch/i386/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/i386/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -42,6 +42,7 @@
- #define IXANY 0004000
- #define IXOFF 0010000
- #define IMAXBEL 0020000
- +#define IUTF8 0040000
-
- #define OPOST 0000001
- #define OLCUC 0000002
- @@ -75,9 +76,6 @@
- #define VT0 0000000
- #define VT1 0040000
-
- -/* ?? */
- -#define XTABS 0014000
- -
- #define B0 0000000
- #define B50 0000001
- #define B75 0000002
- @@ -125,8 +123,6 @@
- #define HUPCL 0002000
- #define CLOCAL 0004000
-
- -#define CRTSCTS 020000000000
- -
- #define ISIG 0000001
- #define ICANON 0000002
- #define ECHO 0000010
- @@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
-
- -/* Extensions? */
- -#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
- -#define EXTPROC 0200000
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -158,3 +151,10 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/microblaze/bits/sem.h musl-git/arch/microblaze/bits/sem.h
- --- musl-0.9.15/arch/microblaze/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/microblaze/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h
- --- musl-0.9.15/arch/microblaze/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/microblaze/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -16,3 +16,14 @@
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h
- --- musl-0.9.15/arch/microblaze/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/microblaze/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -42,6 +42,7 @@
- #define IXANY 0004000
- #define IXOFF 0010000
- #define IMAXBEL 0020000
- +#define IUTF8 0040000
-
- #define OPOST 0000001
- #define OLCUC 0000002
- @@ -75,9 +76,6 @@
- #define VT0 0000000
- #define VT1 0040000
-
- -/* ?? */
- -#define XTABS 0014000
- -
- #define B0 0000000
- #define B50 0000001
- #define B75 0000002
- @@ -125,8 +123,6 @@
- #define HUPCL 0002000
- #define CLOCAL 0004000
-
- -#define CRTSCTS 020000000000
- -
- #define ISIG 0000001
- #define ICANON 0000002
- #define ECHO 0000010
- @@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
-
- -/* Extensions? */
- -#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
- -#define EXTPROC 0200000
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -158,3 +151,10 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h
- --- musl-0.9.15/arch/microblaze/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/microblaze/syscall_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
-
- +long (__syscall)(long, ...);
- +
- #ifndef __clang__
-
- static __inline long __syscall0(long n)
- diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h
- --- musl-0.9.15/arch/mips/bits/fenv.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/bits/fenv.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,3 +1,7 @@
- +#ifdef __mips_soft_float
- +#define FE_ALL_EXCEPT 0
- +#define FE_TONEAREST 0
- +#else
- #define FE_INEXACT 4
- #define FE_UNDERFLOW 8
- #define FE_OVERFLOW 16
- @@ -10,6 +14,7 @@
- #define FE_TOWARDZERO 1
- #define FE_UPWARD 2
- #define FE_DOWNWARD 3
- +#endif
-
- typedef unsigned short fexcept_t;
-
- diff -Nur musl-0.9.15/arch/mips/bits/sem.h musl-git/arch/mips/bits/sem.h
- --- musl-0.9.15/arch/mips/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/mips/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,14 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t sem_ctime;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h
- --- musl-0.9.15/arch/mips/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -13,3 +13,14 @@
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/mips/bits/statfs.h musl-git/arch/mips/bits/statfs.h
- --- musl-0.9.15/arch/mips/bits/statfs.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/bits/statfs.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,7 +1,8 @@
- struct statfs {
- - unsigned long f_type, f_bsize;
- - fsblkcnt_t f_blocks, f_bfree, f_bavail;
- + unsigned long f_type, f_bsize, f_frsize;
- + fsblkcnt_t f_blocks, f_bfree;
- fsfilcnt_t f_files, f_ffree;
- + fsblkcnt_t f_bavail;
- fsid_t f_fsid;
- - unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
- + unsigned long f_namelen, f_flags, f_spare[5];
- };
- diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h
- --- musl-0.9.15/arch/mips/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -77,9 +77,6 @@
- #define VT0 0000000
- #define VT1 0040000
-
- -/* ?? */
- -#define XTABS 0014000
- -
- #define B0 0000000
- #define B50 0000001
- #define B75 0000002
- @@ -129,12 +126,6 @@
- #define PARODD 0001000
- #define HUPCL 0002000
- #define CLOCAL 0004000
- -#define CBAUDEX 0010000
- -
- -#define CIBAUD 002003600000
- -#define CMSPAR 010000000000
- -#define CRTSCTS 020000000000
- -#define IBSHIFT 16
-
- #define ISIG 0000001
- #define ICANON 0000002
- @@ -152,9 +143,6 @@
- #define PENDIN 0040000
- #define TOSTOP 0100000
- #define ITOSTOP 0100000
- -#define EXTPROC 0200000
- -
- -#define TIOCSER_TEMT 1
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -168,3 +156,14 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CIBAUD 002003600000
- +#define IBSHIFT 16
- +#define CMSPAR 010000000000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#define TIOCSER_TEMT 1
- +#endif
- diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h
- --- musl-0.9.15/arch/mips/reloc.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/reloc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -8,7 +8,13 @@
- #define ENDIAN_SUFFIX ""
- #endif
-
- -#define LDSO_ARCH "mips" ENDIAN_SUFFIX
- +#ifdef __mips_soft_float
- +#define FP_SUFFIX "-sf"
- +#else
- +#define FP_SUFFIX ""
- +#endif
- +
- +#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX
-
- #define IS_COPY(x) ((x)==R_MIPS_COPY)
- #define IS_PLT(x) 1
- diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h
- --- musl-0.9.15/arch/mips/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/mips/syscall_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
-
- +long (__syscall)(long, ...);
- +
- #ifndef __clang__
-
- #define __asm_syscall(...) do { \
- diff -Nur musl-0.9.15/arch/powerpc/bits/ipc.h musl-git/arch/powerpc/bits/ipc.h
- --- musl-0.9.15/arch/powerpc/bits/ipc.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/powerpc/bits/ipc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -7,8 +7,9 @@
- gid_t cgid;
- mode_t mode;
- int __ipc_perm_seq;
- - long __pad1;
- - long __pad2;
- + int __pad1;
- + long long __pad2;
- + long long __pad3;
- };
-
- #define IPC_64 0x100
- diff -Nur musl-0.9.15/arch/powerpc/bits/msg.h musl-git/arch/powerpc/bits/msg.h
- --- musl-0.9.15/arch/powerpc/bits/msg.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/powerpc/bits/msg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,12 +1,12 @@
- struct msqid_ds
- {
- struct ipc_perm msg_perm;
- - time_t msg_stime;
- int __unused1;
- - time_t msg_rtime;
- + time_t msg_stime;
- int __unused2;
- - time_t msg_ctime;
- + time_t msg_rtime;
- int __unused3;
- + time_t msg_ctime;
- unsigned long msg_cbytes;
- msgqnum_t msg_qnum;
- msglen_t msg_qbytes;
- diff -Nur musl-0.9.15/arch/powerpc/bits/sem.h musl-git/arch/powerpc/bits/sem.h
- --- musl-0.9.15/arch/powerpc/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/powerpc/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,10 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + int __unused1;
- + time_t sem_otime;
- + int __unused2;
- + time_t sem_ctime;
- + unsigned short __sem_nsems_pad, sem_nsems;
- + long __unused3;
- + long __unused4;
- +};
- diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h
- --- musl-0.9.15/arch/powerpc/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/powerpc/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -3,16 +3,28 @@
- struct shmid_ds
- {
- struct ipc_perm shm_perm;
- - size_t shm_segsz;
- - time_t shm_atime;
- int __unused1;
- - time_t shm_dtime;
- + time_t shm_atime;
- int __unused2;
- - time_t shm_ctime;
- + time_t shm_dtime;
- int __unused3;
- + time_t shm_ctime;
- + int __unused4;
- + size_t shm_segsz;
- pid_t shm_cpid;
- pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/powerpc/bits/socket.h musl-git/arch/powerpc/bits/socket.h
- --- musl-0.9.15/arch/powerpc/bits/socket.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/powerpc/bits/socket.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,12 +1,12 @@
- struct msghdr
- {
- void *msg_name;
- - int msg_namelen;
- + socklen_t msg_namelen;
- struct iovec *msg_iov;
- - unsigned long msg_iovlen;
- + int msg_iovlen;
- void *msg_control;
- - unsigned long msg_controllen;
- - unsigned msg_flags;
- + socklen_t msg_controllen;
- + int msg_flags;
- };
-
- struct cmsghdr
- diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h
- --- musl-0.9.15/arch/powerpc/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/powerpc/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -66,7 +66,6 @@
- #define TAB1 00002000
- #define TAB2 00004000
- #define TAB3 00006000
- -#define XTABS 00006000
- #define CRDLY 00030000
- #define CR0 00000000
- #define CR1 00010000
- @@ -101,7 +100,6 @@
- #define B38400 0000017
- #define EXTA B19200
- #define EXTB B38400
- -#define CBAUDEX 0000000
- #define B57600 00020
- #define B115200 00021
- #define B230400 00022
- @@ -120,9 +118,6 @@
- #define B4000000 00036
- #define BOTHER 00037
-
- -#define CIBAUD 077600000
- -#define IBSHIFT 16
- -
- #define CSIZE 00001400
- #define CS5 00000000
- #define CS6 00000400
- @@ -136,8 +131,6 @@
- #define HUPCL 00040000
-
- #define CLOCAL 00100000
- -#define CMSPAR 010000000000
- -#define CRTSCTS 020000000000
-
- #define ISIG 0x00000080
- #define ICANON 0x00000100
- @@ -154,7 +147,6 @@
- #define FLUSHO 0x00800000
- #define PENDIN 0x20000000
- #define IEXTEN 0x00000400
- -#define EXTPROC 0x10000000
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -168,3 +160,13 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0000000
- +#define CIBAUD 077600000
- +#define IBSHIFT 16
- +#define CMSPAR 010000000000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0x10000000
- +#define XTABS 00006000
- +#endif
- diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h
- --- musl-0.9.15/arch/sh/atomic.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/atomic.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,87 @@
- +#ifndef _INTERNAL_ATOMIC_H
- +#define _INTERNAL_ATOMIC_H
- +
- +#include <stdint.h>
- +
- +static inline int a_ctz_l(unsigned long x)
- +{
- + static const char debruijn32[32] = {
- + 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13,
- + 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14
- + };
- + return debruijn32[(x&-x)*0x076be629 >> 27];
- +}
- +
- +static inline int a_ctz_64(uint64_t x)
- +{
- + uint32_t y = x;
- + if (!y) {
- + y = x>>32;
- + return 32 + a_ctz_l(y);
- + }
- + return a_ctz_l(y);
- +}
- +
- +int __sh_cas(volatile int *, int, int);
- +int __sh_swap(volatile int *, int);
- +int __sh_fetch_add(volatile int *, int);
- +void __sh_store(volatile int *, int);
- +void __sh_and(volatile int *, int);
- +void __sh_or(volatile int *, int);
- +
- +#define a_cas(p,t,s) __sh_cas(p,t,s)
- +#define a_swap(x,v) __sh_swap(x,v)
- +#define a_fetch_add(x,v) __sh_fetch_add(x, v)
- +#define a_store(x,v) __sh_store(x, v)
- +#define a_and(x,v) __sh_and(x, v)
- +#define a_or(x,v) __sh_or(x, v)
- +
- +static inline void *a_cas_p(volatile void *p, void *t, void *s)
- +{
- + return (void *)a_cas(p, (int)t, (int)s);
- +}
- +
- +static inline long a_cas_l(volatile void *p, long t, long s)
- +{
- + return a_cas(p, t, s);
- +}
- +
- +static inline void a_inc(volatile int *x)
- +{
- + a_fetch_add(x, 1);
- +}
- +
- +static inline void a_dec(volatile int *x)
- +{
- + a_fetch_add(x, -1);
- +}
- +
- +static inline void a_spin()
- +{
- +}
- +
- +static inline void a_crash()
- +{
- + *(volatile char *)0=0;
- +}
- +
- +static inline void a_or_l(volatile void *p, long v)
- +{
- + a_or(p, v);
- +}
- +
- +static inline void a_and_64(volatile uint64_t *p, uint64_t v)
- +{
- + union { uint64_t v; uint32_t r[2]; } u = { v };
- + a_and((int *)p, u.r[0]);
- + a_and((int *)p+1, u.r[1]);
- +}
- +
- +static inline void a_or_64(volatile uint64_t *p, uint64_t v)
- +{
- + union { uint64_t v; uint32_t r[2]; } u = { v };
- + a_or((int *)p, u.r[0]);
- + a_or((int *)p+1, u.r[1]);
- +}
- +
- +#endif
- diff -Nur musl-0.9.15/arch/sh/bits/alltypes.h.in musl-git/arch/sh/bits/alltypes.h.in
- --- musl-0.9.15/arch/sh/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/alltypes.h.in 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,23 @@
- +#define _Addr int
- +#define _Int64 long long
- +#define _Reg int
- +
- +TYPEDEF __builtin_va_list va_list;
- +TYPEDEF __builtin_va_list __isoc_va_list;
- +
- +#ifndef __cplusplus
- +TYPEDEF long wchar_t;
- +#endif
- +TYPEDEF unsigned wint_t;
- +
- +TYPEDEF float float_t;
- +TYPEDEF double double_t;
- +
- +TYPEDEF long time_t;
- +TYPEDEF long suseconds_t;
- +
- +TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t;
- +TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t;
- +TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t;
- +TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t;
- +TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t;
- diff -Nur musl-0.9.15/arch/sh/bits/endian.h musl-git/arch/sh/bits/endian.h
- --- musl-0.9.15/arch/sh/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/endian.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +#if __BIG_ENDIAN__
- +#define __BYTE_ORDER __BIG_ENDIAN
- +#else
- +#define __BYTE_ORDER __LITTLE_ENDIAN
- +#endif
- diff -Nur musl-0.9.15/arch/sh/bits/errno.h musl-git/arch/sh/bits/errno.h
- --- musl-0.9.15/arch/sh/bits/errno.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/errno.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,134 @@
- +#define EPERM 1
- +#define ENOENT 2
- +#define ESRCH 3
- +#define EINTR 4
- +#define EIO 5
- +#define ENXIO 6
- +#define E2BIG 7
- +#define ENOEXEC 8
- +#define EBADF 9
- +#define ECHILD 10
- +#define EAGAIN 11
- +#define ENOMEM 12
- +#define EACCES 13
- +#define EFAULT 14
- +#define ENOTBLK 15
- +#define EBUSY 16
- +#define EEXIST 17
- +#define EXDEV 18
- +#define ENODEV 19
- +#define ENOTDIR 20
- +#define EISDIR 21
- +#define EINVAL 22
- +#define ENFILE 23
- +#define EMFILE 24
- +#define ENOTTY 25
- +#define ETXTBSY 26
- +#define EFBIG 27
- +#define ENOSPC 28
- +#define ESPIPE 29
- +#define EROFS 30
- +#define EMLINK 31
- +#define EPIPE 32
- +#define EDOM 33
- +#define ERANGE 34
- +#define EDEADLK 35
- +#define ENAMETOOLONG 36
- +#define ENOLCK 37
- +#define ENOSYS 38
- +#define ENOTEMPTY 39
- +#define ELOOP 40
- +#define EWOULDBLOCK EAGAIN
- +#define ENOMSG 42
- +#define EIDRM 43
- +#define ECHRNG 44
- +#define EL2NSYNC 45
- +#define EL3HLT 46
- +#define EL3RST 47
- +#define ELNRNG 48
- +#define EUNATCH 49
- +#define ENOCSI 50
- +#define EL2HLT 51
- +#define EBADE 52
- +#define EBADR 53
- +#define EXFULL 54
- +#define ENOANO 55
- +#define EBADRQC 56
- +#define EBADSLT 57
- +#define EDEADLOCK EDEADLK
- +#define EBFONT 59
- +#define ENOSTR 60
- +#define ENODATA 61
- +#define ETIME 62
- +#define ENOSR 63
- +#define ENONET 64
- +#define ENOPKG 65
- +#define EREMOTE 66
- +#define ENOLINK 67
- +#define EADV 68
- +#define ESRMNT 69
- +#define ECOMM 70
- +#define EPROTO 71
- +#define EMULTIHOP 72
- +#define EDOTDOT 73
- +#define EBADMSG 74
- +#define EOVERFLOW 75
- +#define ENOTUNIQ 76
- +#define EBADFD 77
- +#define EREMCHG 78
- +#define ELIBACC 79
- +#define ELIBBAD 80
- +#define ELIBSCN 81
- +#define ELIBMAX 82
- +#define ELIBEXEC 83
- +#define EILSEQ 84
- +#define ERESTART 85
- +#define ESTRPIPE 86
- +#define EUSERS 87
- +#define ENOTSOCK 88
- +#define EDESTADDRREQ 89
- +#define EMSGSIZE 90
- +#define EPROTOTYPE 91
- +#define ENOPROTOOPT 92
- +#define EPROTONOSUPPORT 93
- +#define ESOCKTNOSUPPORT 94
- +#define EOPNOTSUPP 95
- +#define ENOTSUP EOPNOTSUPP
- +#define EPFNOSUPPORT 96
- +#define EAFNOSUPPORT 97
- +#define EADDRINUSE 98
- +#define EADDRNOTAVAIL 99
- +#define ENETDOWN 100
- +#define ENETUNREACH 101
- +#define ENETRESET 102
- +#define ECONNABORTED 103
- +#define ECONNRESET 104
- +#define ENOBUFS 105
- +#define EISCONN 106
- +#define ENOTCONN 107
- +#define ESHUTDOWN 108
- +#define ETOOMANYREFS 109
- +#define ETIMEDOUT 110
- +#define ECONNREFUSED 111
- +#define EHOSTDOWN 112
- +#define EHOSTUNREACH 113
- +#define EALREADY 114
- +#define EINPROGRESS 115
- +#define ESTALE 116
- +#define EUCLEAN 117
- +#define ENOTNAM 118
- +#define ENAVAIL 119
- +#define EISNAM 120
- +#define EREMOTEIO 121
- +#define EDQUOT 122
- +#define ENOMEDIUM 123
- +#define EMEDIUMTYPE 124
- +#define ECANCELED 125
- +#define ENOKEY 126
- +#define EKEYEXPIRED 127
- +#define EKEYREVOKED 128
- +#define EKEYREJECTED 129
- +#define EOWNERDEAD 130
- +#define ENOTRECOVERABLE 131
- +#define ERFKILL 132
- +#define EHWPOISON 133
- diff -Nur musl-0.9.15/arch/sh/bits/fcntl.h musl-git/arch/sh/bits/fcntl.h
- --- musl-0.9.15/arch/sh/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/fcntl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,39 @@
- +#define O_CREAT 0100
- +#define O_EXCL 0200
- +#define O_NOCTTY 0400
- +#define O_TRUNC 01000
- +#define O_APPEND 02000
- +#define O_NONBLOCK 04000
- +#define O_DSYNC 010000
- +#define O_SYNC 04010000
- +#define O_RSYNC 04010000
- +#define O_DIRECTORY 0200000
- +#define O_NOFOLLOW 0400000
- +#define O_CLOEXEC 02000000
- +
- +#define O_ASYNC 020000
- +#define O_DIRECT 040000
- +#define O_LARGEFILE 0100000
- +#define O_NOATIME 01000000
- +#define O_TMPFILE 020200000
- +#define O_NDELAY O_NONBLOCK
- +
- +#define F_DUPFD 0
- +#define F_GETFD 1
- +#define F_SETFD 2
- +#define F_GETFL 3
- +#define F_SETFL 4
- +
- +#define F_SETOWN 8
- +#define F_GETOWN 9
- +#define F_SETSIG 10
- +#define F_GETSIG 11
- +
- +#define F_GETLK 12
- +#define F_SETLK 13
- +#define F_SETLKW 14
- +
- +#define F_SETOWN_EX 15
- +#define F_GETOWN_EX 16
- +
- +#define F_GETOWNER_UIDS 17
- diff -Nur musl-0.9.15/arch/sh/bits/fenv.h musl-git/arch/sh/bits/fenv.h
- --- musl-0.9.15/arch/sh/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/fenv.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,26 @@
- +#ifndef __SH_FPU_ANY__
- +
- +#define FE_ALL_EXCEPT 0
- +#define FE_TONEAREST 0
- +
- +#else
- +
- +#define FE_TONEAREST 0
- +#define FE_TOWARDZERO 1
- +
- +#define FE_INEXACT 0x04
- +#define FE_UNDERFLOW 0x08
- +#define FE_OVERFLOW 0x10
- +#define FE_DIVBYZERO 0x20
- +#define FE_INVALID 0x40
- +#define FE_ALL_EXCEPT 0x7c
- +
- +#endif
- +
- +typedef unsigned long fexcept_t;
- +
- +typedef struct {
- + unsigned long __cw;
- +} fenv_t;
- +
- +#define FE_DFL_ENV ((const fenv_t *) -1)
- diff -Nur musl-0.9.15/arch/sh/bits/float.h musl-git/arch/sh/bits/float.h
- --- musl-0.9.15/arch/sh/bits/float.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/float.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,17 @@
- +#define FLT_ROUNDS 1
- +#define FLT_EVAL_METHOD 0
- +
- +#define LDBL_TRUE_MIN 4.94065645841246544177e-324L
- +#define LDBL_MIN 2.22507385850720138309e-308L
- +#define LDBL_MAX 1.79769313486231570815e+308L
- +#define LDBL_EPSILON 2.22044604925031308085e-16L
- +
- +#define LDBL_MANT_DIG 53
- +#define LDBL_MIN_EXP (-1021)
- +#define LDBL_MAX_EXP 1024
- +
- +#define LDBL_DIG 15
- +#define LDBL_MIN_10_EXP (-307)
- +#define LDBL_MAX_10_EXP 308
- +
- +#define DECIMAL_DIG 17
- diff -Nur musl-0.9.15/arch/sh/bits/ioctl.h musl-git/arch/sh/bits/ioctl.h
- --- musl-0.9.15/arch/sh/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/ioctl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,205 @@
- +#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
- +#define _IOC_NONE 0U
- +#define _IOC_WRITE 1U
- +#define _IOC_READ 2U
- +
- +#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
- +#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
- +#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
- +#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
- +
- +#define FIOCLEX _IO('f', 1)
- +#define FIONCLEX _IO('f', 2)
- +#define FIOASYNC _IOW('f', 125, int)
- +#define FIONBIO _IOW('f', 126, int)
- +#define FIONREAD _IOR('f', 127, int)
- +#define TIOCINQ FIONREAD
- +#define FIOQSIZE _IOR('f', 128, char[8])
- +
- +#define TCGETA _IOR('t', 23, char[18])
- +#define TCSETA _IOW('t', 24, char[18])
- +#define TCSETAW _IOW('t', 25, char[18])
- +#define TCSETAF _IOW('t', 28, char[18])
- +
- +#define TCSBRK _IO('t', 29)
- +#define TCXONC _IO('t', 30)
- +#define TCFLSH _IO('t', 31)
- +
- +#define TIOCSWINSZ _IOW('t', 103, char[8])
- +#define TIOCGWINSZ _IOR('t', 104, char[8])
- +#define TIOCSTART _IO('t', 110)
- +#define TIOCSTOP _IO('t', 111)
- +#define TIOCOUTQ _IOR('t', 115, int)
- +
- +#define TIOCSPGRP _IOW('t', 118, int)
- +#define TIOCGPGRP _IOR('t', 119, int)
- +
- +#define TIOCEXCL _IO('T', 12)
- +#define TIOCNXCL _IO('T', 13)
- +#define TIOCSCTTY _IO('T', 14)
- +
- +#define TIOCSTI _IOW('T', 18, char)
- +#define TIOCMGET _IOR('T', 21, unsigned int)
- +#define TIOCMBIS _IOW('T', 22, unsigned int)
- +#define TIOCMBIC _IOW('T', 23, unsigned int)
- +#define TIOCMSET _IOW('T', 24, unsigned int)
- +#define TIOCM_LE 0x001
- +#define TIOCM_DTR 0x002
- +#define TIOCM_RTS 0x004
- +#define TIOCM_ST 0x008
- +#define TIOCM_SR 0x010
- +#define TIOCM_CTS 0x020
- +#define TIOCM_CAR 0x040
- +#define TIOCM_RNG 0x080
- +#define TIOCM_DSR 0x100
- +#define TIOCM_CD TIOCM_CAR
- +#define TIOCM_RI TIOCM_RNG
- +#define TIOCM_OUT1 0x2000
- +#define TIOCM_OUT2 0x4000
- +#define TIOCM_LOOP 0x8000
- +
- +#define TIOCGSOFTCAR _IOR('T', 25, unsigned int)
- +#define TIOCSSOFTCAR _IOW('T', 26, unsigned int)
- +#define TIOCLINUX _IOW('T', 28, char)
- +#define TIOCCONS _IO('T', 29)
- +#define TIOCGSERIAL _IOR('T', 30, char[60])
- +#define TIOCSSERIAL _IOW('T', 31, char[60])
- +#define TIOCPKT _IOW('T', 32, int)
- +#define TIOCPKT_DATA 0
- +#define TIOCPKT_FLUSHREAD 1
- +#define TIOCPKT_FLUSHWRITE 2
- +#define TIOCPKT_STOP 4
- +#define TIOCPKT_START 8
- +#define TIOCPKT_NOSTOP 16
- +#define TIOCPKT_DOSTOP 32
- +#define TIOCPKT_IOCTL 64
- +
- +#define TIOCNOTTY _IO('T', 34)
- +#define TIOCSETD _IOW('T', 35, int)
- +#define TIOCGETD _IOR('T', 36, int)
- +#define TCSBRKP _IOW('T', 37, int)
- +#define TIOCSBRK _IO('T', 39)
- +#define TIOCCBRK _IO('T', 40)
- +#define TIOCGSID _IOR('T', 41, int)
- +#define TCGETS _IOR('T', 42, char[44])
- +#define TCSETS _IOW('T', 43, char[44])
- +#define TCSETSW _IOW('T', 44, char[44])
- +#define TCSETSF _IOW('T', 45, char[44])
- +#define TIOCGPTN _IOR('T', 48, unsigned int)
- +#define TIOCSPTLCK _IOW('T', 49, int)
- +#define TIOCGDEV _IOR('T', 50, unsigned int)
- +#define TIOCSIG _IOW('T', 54, int)
- +#define TIOCVHANGUP _IO('T', 55)
- +#define TIOCGPKT _IOR('T', 56, int)
- +#define TIOCGPTLCK _IOR('T', 57, int)
- +#define TIOCGEXCL _IOR('T', 64, int)
- +
- +#define TIOCSERCONFIG _IO('T', 83)
- +#define TIOCSERGWILD _IOR('T', 84, int)
- +#define TIOCSERSWILD _IOW('T', 85, int)
- +#define TIOCGLCKTRMIOS _IO('T', 86)
- +#define TIOCSLCKTRMIOS _IO('T', 87)
- +#define TIOCSERGSTRUCT _IOR('T', 88, char[216])
- +#define TIOCSERGETLSR _IOR('T', 89, unsigned int)
- +#define TIOCSER_TEMT 0x01
- +#define TIOCSERGETMULTI _IOR('T', 90, char[168])
- +#define TIOCSERSETMULTI _IOW('T', 91, char[168])
- +
- +#define TIOCMIWAIT _IO('T', 92)
- +#define TIOCGICOUNT _IO('T', 93)
- +
- +struct winsize {
- + unsigned short ws_row;
- + unsigned short ws_col;
- + unsigned short ws_xpixel;
- + unsigned short ws_ypixel;
- +};
- +
- +#define TIOCM_MODEM_BITS TIOCM_OUT2
- +
- +#define N_TTY 0
- +#define N_SLIP 1
- +#define N_MOUSE 2
- +#define N_PPP 3
- +#define N_STRIP 4
- +#define N_AX25 5
- +#define N_X25 6
- +#define N_6PACK 7
- +#define N_MASC 8
- +#define N_R3964 9
- +#define N_PROFIBUS_FDL 10
- +#define N_IRDA 11
- +#define N_SMSBLOCK 12
- +#define N_HDLC 13
- +#define N_SYNC_PPP 14
- +#define N_HCI 15
- +
- +#define FIOGETOWN _IOR('f', 123, int)
- +#define FIOSETOWN _IOW('f', 124, int)
- +
- +#define SIOCATMARK _IOR('s', 7, int)
- +#define SIOCSPGRP _IOW('s', 8, int)
- +#define SIOCGPGRP _IOW('s', 9, int)
- +#define SIOCGSTAMP _IOR('s', 100, char[8])
- +
- +#define SIOCADDRT 0x890B
- +#define SIOCDELRT 0x890C
- +#define SIOCRTMSG 0x890D
- +
- +#define SIOCGIFNAME 0x8910
- +#define SIOCSIFLINK 0x8911
- +#define SIOCGIFCONF 0x8912
- +#define SIOCGIFFLAGS 0x8913
- +#define SIOCSIFFLAGS 0x8914
- +#define SIOCGIFADDR 0x8915
- +#define SIOCSIFADDR 0x8916
- +#define SIOCGIFDSTADDR 0x8917
- +#define SIOCSIFDSTADDR 0x8918
- +#define SIOCGIFBRDADDR 0x8919
- +#define SIOCSIFBRDADDR 0x891a
- +#define SIOCGIFNETMASK 0x891b
- +#define SIOCSIFNETMASK 0x891c
- +#define SIOCGIFMETRIC 0x891d
- +#define SIOCSIFMETRIC 0x891e
- +#define SIOCGIFMEM 0x891f
- +#define SIOCSIFMEM 0x8920
- +#define SIOCGIFMTU 0x8921
- +#define SIOCSIFMTU 0x8922
- +#define SIOCSIFHWADDR 0x8924
- +#define SIOCGIFENCAP 0x8925
- +#define SIOCSIFENCAP 0x8926
- +#define SIOCGIFHWADDR 0x8927
- +#define SIOCGIFSLAVE 0x8929
- +#define SIOCSIFSLAVE 0x8930
- +#define SIOCADDMULTI 0x8931
- +#define SIOCDELMULTI 0x8932
- +#define SIOCGIFINDEX 0x8933
- +#define SIOGIFINDEX SIOCGIFINDEX
- +#define SIOCSIFPFLAGS 0x8934
- +#define SIOCGIFPFLAGS 0x8935
- +#define SIOCDIFADDR 0x8936
- +#define SIOCSIFHWBROADCAST 0x8937
- +#define SIOCGIFCOUNT 0x8938
- +
- +#define SIOCGIFBR 0x8940
- +#define SIOCSIFBR 0x8941
- +
- +#define SIOCGIFTXQLEN 0x8942
- +#define SIOCSIFTXQLEN 0x8943
- +
- +#define SIOCDARP 0x8953
- +#define SIOCGARP 0x8954
- +#define SIOCSARP 0x8955
- +
- +#define SIOCDRARP 0x8960
- +#define SIOCGRARP 0x8961
- +#define SIOCSRARP 0x8962
- +
- +#define SIOCGIFMAP 0x8970
- +#define SIOCSIFMAP 0x8971
- +
- +#define SIOCADDDLCI 0x8980
- +#define SIOCDELDLCI 0x8981
- +
- +#define SIOCDEVPRIVATE 0x89F0
- +#define SIOCPROTOPRIVATE 0x89E0
- diff -Nur musl-0.9.15/arch/sh/bits/ipc.h musl-git/arch/sh/bits/ipc.h
- --- musl-0.9.15/arch/sh/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/ipc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,14 @@
- +struct ipc_perm
- +{
- + key_t __ipc_perm_key;
- + uid_t uid;
- + gid_t gid;
- + uid_t cuid;
- + gid_t cgid;
- + mode_t mode;
- + int __ipc_perm_seq;
- + long __pad1;
- + long __pad2;
- +};
- +
- +#define IPC_64 0x100
- diff -Nur musl-0.9.15/arch/sh/bits/limits.h musl-git/arch/sh/bits/limits.h
- --- musl-0.9.15/arch/sh/bits/limits.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/limits.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,8 @@
- +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define PAGE_SIZE 4096
- +#define LONG_BIT 32
- +#endif
- +
- +#define LONG_MAX 0x7fffffffL
- +#define LLONG_MAX 0x7fffffffffffffffLL
- diff -Nur musl-0.9.15/arch/sh/bits/mman.h musl-git/arch/sh/bits/mman.h
- --- musl-0.9.15/arch/sh/bits/mman.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/mman.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,62 @@
- +#define MAP_FAILED ((void *) -1)
- +
- +#define PROT_NONE 0
- +#define PROT_READ 1
- +#define PROT_WRITE 2
- +#define PROT_EXEC 4
- +#define PROT_GROWSDOWN 0x01000000
- +#define PROT_GROWSUP 0x02000000
- +
- +#define MAP_SHARED 0x01
- +#define MAP_PRIVATE 0x02
- +#define MAP_FIXED 0x10
- +
- +#define MAP_TYPE 0x0f
- +#define MAP_FILE 0x00
- +#define MAP_ANON 0x20
- +#define MAP_ANONYMOUS MAP_ANON
- +#define MAP_32BIT 0x40
- +#define MAP_NORESERVE 0x4000
- +#define MAP_GROWSDOWN 0x0100
- +#define MAP_DENYWRITE 0x0800
- +#define MAP_EXECUTABLE 0x1000
- +#define MAP_LOCKED 0x2000
- +#define MAP_POPULATE 0x8000
- +#define MAP_NONBLOCK 0x10000
- +#define MAP_STACK 0x20000
- +#define MAP_HUGETLB 0x40000
- +
- +#define POSIX_MADV_NORMAL 0
- +#define POSIX_MADV_RANDOM 1
- +#define POSIX_MADV_SEQUENTIAL 2
- +#define POSIX_MADV_WILLNEED 3
- +#define POSIX_MADV_DONTNEED 4
- +
- +#define MS_ASYNC 1
- +#define MS_INVALIDATE 2
- +#define MS_SYNC 4
- +
- +#define MCL_CURRENT 1
- +#define MCL_FUTURE 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define MADV_NORMAL 0
- +#define MADV_RANDOM 1
- +#define MADV_SEQUENTIAL 2
- +#define MADV_WILLNEED 3
- +#define MADV_DONTNEED 4
- +#define MADV_REMOVE 9
- +#define MADV_DONTFORK 10
- +#define MADV_DOFORK 11
- +#define MADV_MERGEABLE 12
- +#define MADV_UNMERGEABLE 13
- +#define MADV_HUGEPAGE 14
- +#define MADV_NOHUGEPAGE 15
- +#define MADV_DONTDUMP 16
- +#define MADV_DODUMP 17
- +#define MADV_HWPOISON 100
- +#define MADV_SOFT_OFFLINE 101
- +
- +#define MREMAP_MAYMOVE 1
- +#define MREMAP_FIXED 2
- +#endif
- diff -Nur musl-0.9.15/arch/sh/bits/msg.h musl-git/arch/sh/bits/msg.h
- --- musl-0.9.15/arch/sh/bits/msg.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/msg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct msqid_ds
- +{
- + struct ipc_perm msg_perm;
- + time_t msg_stime;
- + int __unused1;
- + time_t msg_rtime;
- + int __unused2;
- + time_t msg_ctime;
- + int __unused3;
- + unsigned long msg_cbytes;
- + msgqnum_t msg_qnum;
- + msglen_t msg_qbytes;
- + pid_t msg_lspid;
- + pid_t msg_lrpid;
- + unsigned long __unused[2];
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/posix.h musl-git/arch/sh/bits/posix.h
- --- musl-0.9.15/arch/sh/bits/posix.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/posix.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,2 @@
- +#define _POSIX_V6_ILP32_OFFBIG 1
- +#define _POSIX_V7_ILP32_OFFBIG 1
- diff -Nur musl-0.9.15/arch/sh/bits/sem.h musl-git/arch/sh/bits/sem.h
- --- musl-0.9.15/arch/sh/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/setjmp.h musl-git/arch/sh/bits/setjmp.h
- --- musl-0.9.15/arch/sh/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/setjmp.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +typedef unsigned long __jmp_buf[13];
- diff -Nur musl-0.9.15/arch/sh/bits/shm.h musl-git/arch/sh/bits/shm.h
- --- musl-0.9.15/arch/sh/bits/shm.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,28 @@
- +#define SHMLBA 16384
- +
- +struct shmid_ds
- +{
- + struct ipc_perm shm_perm;
- + size_t shm_segsz;
- + time_t shm_atime;
- + int __unused1;
- + time_t shm_dtime;
- + int __unused2;
- + time_t shm_ctime;
- + int __unused3;
- + pid_t shm_cpid;
- + pid_t shm_lpid;
- + unsigned long shm_nattch;
- + unsigned long __pad1;
- + unsigned long __pad2;
- +};
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/signal.h musl-git/arch/sh/bits/signal.h
- --- musl-0.9.15/arch/sh/bits/signal.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/signal.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,76 @@
- +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +typedef int greg_t, gregset_t[16];
- +typedef int freg_t, fpregset_t[16];
- +typedef struct sigcontext {
- + unsigned long oldmask;
- + unsigned long sc_regs[16];
- + unsigned long sc_pc, sc_pr, sc_sr;
- + unsigned long sc_gbr, sc_mach, sc_macl;
- + unsigned long sc_fpregs[16];
- + unsigned long sc_xfpregs[16];
- + unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
- +} mcontext_t;
- +#else
- +typedef struct {
- + unsigned long __regs[58];
- +} mcontext_t;
- +#endif
- +
- +typedef struct __ucontext {
- + unsigned long uc_flags;
- + struct __ucontext *uc_link;
- + stack_t uc_stack;
- + mcontext_t uc_mcontext;
- + sigset_t uc_sigmask;
- +} ucontext_t;
- +
- +#define SA_NOCLDSTOP 1
- +#define SA_NOCLDWAIT 2
- +#define SA_SIGINFO 4
- +#define SA_ONSTACK 0x08000000
- +#define SA_RESTART 0x10000000
- +#define SA_NODEFER 0x40000000
- +#define SA_RESETHAND 0x80000000
- +#define SA_RESTORER 0x04000000
- +
- +#endif
- +
- +#define SIGHUP 1
- +#define SIGINT 2
- +#define SIGQUIT 3
- +#define SIGILL 4
- +#define SIGTRAP 5
- +#define SIGABRT 6
- +#define SIGIOT SIGABRT
- +#define SIGBUS 7
- +#define SIGFPE 8
- +#define SIGKILL 9
- +#define SIGUSR1 10
- +#define SIGSEGV 11
- +#define SIGUSR2 12
- +#define SIGPIPE 13
- +#define SIGALRM 14
- +#define SIGTERM 15
- +#define SIGSTKFLT 16
- +#define SIGCHLD 17
- +#define SIGCONT 18
- +#define SIGSTOP 19
- +#define SIGTSTP 20
- +#define SIGTTIN 21
- +#define SIGTTOU 22
- +#define SIGURG 23
- +#define SIGXCPU 24
- +#define SIGXFSZ 25
- +#define SIGVTALRM 26
- +#define SIGPROF 27
- +#define SIGWINCH 28
- +#define SIGIO 29
- +#define SIGPOLL 29
- +#define SIGPWR 30
- +#define SIGSYS 31
- +#define SIGUNUSED SIGSYS
- +
- +#define _NSIG 65
- diff -Nur musl-0.9.15/arch/sh/bits/socket.h musl-git/arch/sh/bits/socket.h
- --- musl-0.9.15/arch/sh/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/socket.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,17 @@
- +struct msghdr
- +{
- + void *msg_name;
- + socklen_t msg_namelen;
- + struct iovec *msg_iov;
- + int msg_iovlen;
- + void *msg_control;
- + socklen_t msg_controllen;
- + int msg_flags;
- +};
- +
- +struct cmsghdr
- +{
- + socklen_t cmsg_len;
- + int cmsg_level;
- + int cmsg_type;
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/statfs.h musl-git/arch/sh/bits/statfs.h
- --- musl-0.9.15/arch/sh/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/statfs.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +struct statfs {
- + unsigned long f_type, f_bsize;
- + fsblkcnt_t f_blocks, f_bfree, f_bavail;
- + fsfilcnt_t f_files, f_ffree;
- + fsid_t f_fsid;
- + unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/stat.h musl-git/arch/sh/bits/stat.h
- --- musl-0.9.15/arch/sh/bits/stat.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/stat.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +/* copied from kernel definition, but with padding replaced
- + * by the corresponding correctly-sized userspace types. */
- +
- +struct stat
- +{
- + dev_t st_dev;
- + int __st_dev_padding;
- + long __st_ino_truncated;
- + mode_t st_mode;
- + nlink_t st_nlink;
- + uid_t st_uid;
- + gid_t st_gid;
- + dev_t st_rdev;
- + int __st_rdev_padding;
- + off_t st_size;
- + blksize_t st_blksize;
- + blkcnt_t st_blocks;
- + struct timespec st_atim;
- + struct timespec st_mtim;
- + struct timespec st_ctim;
- + ino_t st_ino;
- +};
- diff -Nur musl-0.9.15/arch/sh/bits/stdarg.h musl-git/arch/sh/bits/stdarg.h
- --- musl-0.9.15/arch/sh/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/stdarg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,4 @@
- +#define va_start(v,l) __builtin_va_start(v,l)
- +#define va_end(v) __builtin_va_end(v)
- +#define va_arg(v,l) __builtin_va_arg(v,l)
- +#define va_copy(d,s) __builtin_va_copy(d,s)
- diff -Nur musl-0.9.15/arch/sh/bits/stdint.h musl-git/arch/sh/bits/stdint.h
- --- musl-0.9.15/arch/sh/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/stdint.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,20 @@
- +typedef int32_t int_fast16_t;
- +typedef int32_t int_fast32_t;
- +typedef uint32_t uint_fast16_t;
- +typedef uint32_t uint_fast32_t;
- +
- +#define INT_FAST16_MIN INT32_MIN
- +#define INT_FAST32_MIN INT32_MIN
- +
- +#define INT_FAST16_MAX INT32_MAX
- +#define INT_FAST32_MAX INT32_MAX
- +
- +#define UINT_FAST16_MAX UINT32_MAX
- +#define UINT_FAST32_MAX UINT32_MAX
- +
- +#define INTPTR_MIN INT32_MIN
- +#define INTPTR_MAX INT32_MAX
- +#define UINTPTR_MAX UINT32_MAX
- +#define PTRDIFF_MIN INT32_MIN
- +#define PTRDIFF_MAX INT32_MAX
- +#define SIZE_MAX UINT32_MAX
- diff -Nur musl-0.9.15/arch/sh/bits/syscall.h musl-git/arch/sh/bits/syscall.h
- --- musl-0.9.15/arch/sh/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/syscall.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,684 @@
- +#define __NR_restart_syscall 0
- +#define __NR_exit 1
- +#define __NR_fork 2
- +#define __NR_read 3
- +#define __NR_write 4
- +#define __NR_open 5
- +#define __NR_close 6
- +#define __NR_waitpid 7
- +#define __NR_creat 8
- +#define __NR_link 9
- +#define __NR_unlink 10
- +#define __NR_execve 11
- +#define __NR_chdir 12
- +#define __NR_time 13
- +#define __NR_mknod 14
- +#define __NR_chmod 15
- +#define __NR_lchown 16
- +#define __NR_oldstat 18
- +#define __NR_lseek 19
- +#define __NR_getpid 20
- +#define __NR_mount 21
- +#define __NR_umount 22
- +#define __NR_setuid 23
- +#define __NR_getuid 24
- +#define __NR_stime 25
- +#define __NR_ptrace 26
- +#define __NR_alarm 27
- +#define __NR_oldfstat 28
- +#define __NR_pause 29
- +#define __NR_utime 30
- +#define __NR_access 33
- +#define __NR_nice 34
- +#define __NR_sync 36
- +#define __NR_kill 37
- +#define __NR_rename 38
- +#define __NR_mkdir 39
- +#define __NR_rmdir 40
- +#define __NR_dup 41
- +#define __NR_pipe 42
- +#define __NR_times 43
- +#define __NR_brk 45
- +#define __NR_setgid 46
- +#define __NR_getgid 47
- +#define __NR_signal 48
- +#define __NR_geteuid 49
- +#define __NR_getegid 50
- +#define __NR_acct 51
- +#define __NR_umount2 52
- +#define __NR_ioctl 54
- +#define __NR_fcntl 55
- +#define __NR_setpgid 57
- +#define __NR_umask 60
- +#define __NR_chroot 61
- +#define __NR_ustat 62
- +#define __NR_dup2 63
- +#define __NR_getppid 64
- +#define __NR_getpgrp 65
- +#define __NR_setsid 66
- +#define __NR_sigaction 67
- +#define __NR_sgetmask 68
- +#define __NR_ssetmask 69
- +#define __NR_setreuid 70
- +#define __NR_setregid 71
- +#define __NR_sigsuspend 72
- +#define __NR_sigpending 73
- +#define __NR_sethostname 74
- +#define __NR_setrlimit 75
- +#define __NR_getrlimit 76
- +#define __NR_getrusage 77
- +#define __NR_gettimeofday 78
- +#define __NR_settimeofday 79
- +#define __NR_getgroups 80
- +#define __NR_setgroups 81
- +#define __NR_symlink 83
- +#define __NR_oldlstat 84
- +#define __NR_readlink 85
- +#define __NR_uselib 86
- +#define __NR_swapon 87
- +#define __NR_reboot 88
- +#define __NR_readdir 89
- +#define __NR_mmap 90
- +#define __NR_munmap 91
- +#define __NR_truncate 92
- +#define __NR_ftruncate 93
- +#define __NR_fchmod 94
- +#define __NR_fchown 95
- +#define __NR_getpriority 96
- +#define __NR_setpriority 97
- +#define __NR_statfs 99
- +#define __NR_fstatfs 100
- +#define __NR_socketcall 102
- +#define __NR_syslog 103
- +#define __NR_setitimer 104
- +#define __NR_getitimer 105
- +#define __NR_stat 106
- +#define __NR_lstat 107
- +#define __NR_fstat 108
- +#define __NR_olduname 109
- +#define __NR_vhangup 111
- +#define __NR_wait4 114
- +#define __NR_swapoff 115
- +#define __NR_sysinfo 116
- +#define __NR_ipc 117
- +#define __NR_fsync 118
- +#define __NR_sigreturn 119
- +#define __NR_clone 120
- +#define __NR_setdomainname 121
- +#define __NR_uname 122
- +#define __NR_cacheflush 123
- +#define __NR_adjtimex 124
- +#define __NR_mprotect 125
- +#define __NR_sigprocmask 126
- +#define __NR_init_module 128
- +#define __NR_delete_module 129
- +#define __NR_quotactl 131
- +#define __NR_getpgid 132
- +#define __NR_fchdir 133
- +#define __NR_bdflush 134
- +#define __NR_sysfs 135
- +#define __NR_personality 136
- +#define __NR_setfsuid 138
- +#define __NR_setfsgid 139
- +#define __NR__llseek 140
- +#define __NR_getdents 141
- +#define __NR__newselect 142
- +#define __NR_flock 143
- +#define __NR_msync 144
- +#define __NR_readv 145
- +#define __NR_writev 146
- +#define __NR_getsid 147
- +#define __NR_fdatasync 148
- +#define __NR__sysctl 149
- +#define __NR_mlock 150
- +#define __NR_munlock 151
- +#define __NR_mlockall 152
- +#define __NR_munlockall 153
- +#define __NR_sched_setparam 154
- +#define __NR_sched_getparam 155
- +#define __NR_sched_setscheduler 156
- +#define __NR_sched_getscheduler 157
- +#define __NR_sched_yield 158
- +#define __NR_sched_get_priority_max 159
- +#define __NR_sched_get_priority_min 160
- +#define __NR_sched_rr_get_interval 161
- +#define __NR_nanosleep 162
- +#define __NR_mremap 163
- +#define __NR_setresuid 164
- +#define __NR_getresuid 165
- +#define __NR_poll 168
- +#define __NR_nfsservctl 169
- +#define __NR_setresgid 170
- +#define __NR_getresgid 171
- +#define __NR_prctl 172
- +#define __NR_rt_sigreturn 173
- +#define __NR_rt_sigaction 174
- +#define __NR_rt_sigprocmask 175
- +#define __NR_rt_sigpending 176
- +#define __NR_rt_sigtimedwait 177
- +#define __NR_rt_sigqueueinfo 178
- +#define __NR_rt_sigsuspend 179
- +#define __NR_pread64 180
- +#define __NR_pwrite64 181
- +#define __NR_chown 182
- +#define __NR_getcwd 183
- +#define __NR_capget 184
- +#define __NR_capset 185
- +#define __NR_sigaltstack 186
- +#define __NR_sendfile 187
- +#define __NR_vfork 190
- +#define __NR_ugetrlimit 191
- +#define __NR_mmap2 192
- +#define __NR_truncate64 193
- +#define __NR_ftruncate64 194
- +#define __NR_stat64 195
- +#define __NR_lstat64 196
- +#define __NR_fstat64 197
- +#define __NR_lchown32 198
- +#define __NR_getuid32 199
- +#define __NR_getgid32 200
- +#define __NR_geteuid32 201
- +#define __NR_getegid32 202
- +#define __NR_setreuid32 203
- +#define __NR_setregid32 204
- +#define __NR_getgroups32 205
- +#define __NR_setgroups32 206
- +#define __NR_fchown32 207
- +#define __NR_setresuid32 208
- +#define __NR_getresuid32 209
- +#define __NR_setresgid32 210
- +#define __NR_getresgid32 211
- +#define __NR_chown32 212
- +#define __NR_setuid32 213
- +#define __NR_setgid32 214
- +#define __NR_setfsuid32 215
- +#define __NR_setfsgid32 216
- +#define __NR_pivot_root 217
- +#define __NR_mincore 218
- +#define __NR_madvise 219
- +#define __NR_getdents64 220
- +#define __NR_fcntl64 221
- +#define __NR_gettid 224
- +#define __NR_readahead 225
- +#define __NR_setxattr 226
- +#define __NR_lsetxattr 227
- +#define __NR_fsetxattr 228
- +#define __NR_getxattr 229
- +#define __NR_lgetxattr 230
- +#define __NR_fgetxattr 231
- +#define __NR_listxattr 232
- +#define __NR_llistxattr 233
- +#define __NR_flistxattr 234
- +#define __NR_removexattr 235
- +#define __NR_lremovexattr 236
- +#define __NR_fremovexattr 237
- +#define __NR_tkill 238
- +#define __NR_sendfile64 239
- +#define __NR_futex 240
- +#define __NR_sched_setaffinity 241
- +#define __NR_sched_getaffinity 242
- +#define __NR_io_setup 245
- +#define __NR_io_destroy 246
- +#define __NR_io_getevents 247
- +#define __NR_io_submit 248
- +#define __NR_io_cancel 249
- +#define __NR_fadvise64 250
- +#define __NR_exit_group 252
- +#define __NR_lookup_dcookie 253
- +#define __NR_epoll_create 254
- +#define __NR_epoll_ctl 255
- +#define __NR_epoll_wait 256
- +#define __NR_remap_file_pages 257
- +#define __NR_set_tid_address 258
- +#define __NR_timer_create 259
- +#define __NR_timer_settime 260
- +#define __NR_timer_gettime 261
- +#define __NR_timer_getoverrun 262
- +#define __NR_timer_delete 263
- +#define __NR_clock_settime 264
- +#define __NR_clock_gettime 265
- +#define __NR_clock_getres 266
- +#define __NR_clock_nanosleep 267
- +#define __NR_statfs64 268
- +#define __NR_fstatfs64 269
- +#define __NR_tgkill 270
- +#define __NR_utimes 271
- +#define __NR_fadvise64_64 272
- +#define __NR_mbind 274
- +#define __NR_get_mempolicy 275
- +#define __NR_set_mempolicy 276
- +#define __NR_mq_open 277
- +#define __NR_mq_unlink 278
- +#define __NR_mq_timedsend 279
- +#define __NR_mq_timedreceive 280
- +#define __NR_mq_notify 281
- +#define __NR_mq_getsetattr 282
- +#define __NR_kexec_load 283
- +#define __NR_waitid 284
- +#define __NR_add_key 285
- +#define __NR_request_key 286
- +#define __NR_keyctl 287
- +#define __NR_ioprio_set 288
- +#define __NR_ioprio_get 289
- +#define __NR_inotify_init 290
- +#define __NR_inotify_add_watch 291
- +#define __NR_inotify_rm_watch 292
- +#define __NR_migrate_pages 294
- +#define __NR_openat 295
- +#define __NR_mkdirat 296
- +#define __NR_mknodat 297
- +#define __NR_fchownat 298
- +#define __NR_futimesat 299
- +#define __NR_fstatat64 300
- +#define __NR_unlinkat 301
- +#define __NR_renameat 302
- +#define __NR_linkat 303
- +#define __NR_symlinkat 304
- +#define __NR_readlinkat 305
- +#define __NR_fchmodat 306
- +#define __NR_faccessat 307
- +#define __NR_pselect6 308
- +#define __NR_ppoll 309
- +#define __NR_unshare 310
- +#define __NR_set_robust_list 311
- +#define __NR_get_robust_list 312
- +#define __NR_splice 313
- +#define __NR_sync_file_range 314
- +#define __NR_tee 315
- +#define __NR_vmsplice 316
- +#define __NR_move_pages 317
- +#define __NR_getcpu 318
- +#define __NR_epoll_pwait 319
- +#define __NR_utimensat 320
- +#define __NR_signalfd 321
- +#define __NR_timerfd_create 322
- +#define __NR_eventfd 323
- +#define __NR_fallocate 324
- +#define __NR_timerfd_settime 325
- +#define __NR_timerfd_gettime 326
- +#define __NR_signalfd4 327
- +#define __NR_eventfd2 328
- +#define __NR_epoll_create1 329
- +#define __NR_dup3 330
- +#define __NR_pipe2 331
- +#define __NR_inotify_init1 332
- +#define __NR_preadv 333
- +#define __NR_pwritev 334
- +#define __NR_rt_tgsigqueueinfo 335
- +#define __NR_perf_event_open 336
- +#define __NR_fanotify_init 337
- +#define __NR_fanotify_mark 338
- +#define __NR_prlimit64 339
- +#define __NR_socket 340
- +#define __NR_bind 341
- +#define __NR_connect 342
- +#define __NR_listen 343
- +#define __NR_accept 344
- +#define __NR_getsockname 345
- +#define __NR_getpeername 346
- +#define __NR_socketpair 347
- +#define __NR_send 348
- +#define __NR_sendto 349
- +#define __NR_recv 350
- +#define __NR_recvfrom 351
- +#define __NR_shutdown 352
- +#define __NR_setsockopt 353
- +#define __NR_getsockopt 354
- +#define __NR_sendmsg 355
- +#define __NR_recvmsg 356
- +#define __NR_recvmmsg 357
- +#define __NR_accept4 358
- +#define __NR_name_to_handle_at 359
- +#define __NR_open_by_handle_at 360
- +#define __NR_clock_adjtime 361
- +#define __NR_syncfs 362
- +#define __NR_sendmmsg 363
- +#define __NR_setns 364
- +#define __NR_process_vm_readv 365
- +#define __NR_process_vm_writev 366
- +#define __NR_kcmp 367
- +#define __NR_finit_module 368
- +
- +
- +/* Repeated with SYS_ prefix */
- +
- +#define SYS_restart_syscall 0
- +#define SYS_exit 1
- +#define SYS_fork 2
- +#define SYS_read 3
- +#define SYS_write 4
- +#define SYS_open 5
- +#define SYS_close 6
- +#define SYS_waitpid 7
- +#define SYS_creat 8
- +#define SYS_link 9
- +#define SYS_unlink 10
- +#define SYS_execve 11
- +#define SYS_chdir 12
- +#define SYS_time 13
- +#define SYS_mknod 14
- +#define SYS_chmod 15
- +#define SYS_lchown 16
- +#define SYS_oldstat 18
- +#define SYS_lseek 19
- +#define SYS_getpid 20
- +#define SYS_mount 21
- +#define SYS_umount 22
- +#define SYS_setuid 23
- +#define SYS_getuid 24
- +#define SYS_stime 25
- +#define SYS_ptrace 26
- +#define SYS_alarm 27
- +#define SYS_oldfstat 28
- +#define SYS_pause 29
- +#define SYS_utime 30
- +#define SYS_access 33
- +#define SYS_nice 34
- +#define SYS_sync 36
- +#define SYS_kill 37
- +#define SYS_rename 38
- +#define SYS_mkdir 39
- +#define SYS_rmdir 40
- +#define SYS_dup 41
- +#define SYS_pipe 42
- +#define SYS_times 43
- +#define SYS_brk 45
- +#define SYS_setgid 46
- +#define SYS_getgid 47
- +#define SYS_signal 48
- +#define SYS_geteuid 49
- +#define SYS_getegid 50
- +#define SYS_acct 51
- +#define SYS_umount2 52
- +#define SYS_ioctl 54
- +#define SYS_fcntl 55
- +#define SYS_setpgid 57
- +#define SYS_umask 60
- +#define SYS_chroot 61
- +#define SYS_ustat 62
- +#define SYS_dup2 63
- +#define SYS_getppid 64
- +#define SYS_getpgrp 65
- +#define SYS_setsid 66
- +#define SYS_sigaction 67
- +#define SYS_sgetmask 68
- +#define SYS_ssetmask 69
- +#define SYS_setreuid 70
- +#define SYS_setregid 71
- +#define SYS_sigsuspend 72
- +#define SYS_sigpending 73
- +#define SYS_sethostname 74
- +#define SYS_setrlimit 75
- +#define SYS_getrlimit 76
- +#define SYS_getrusage 77
- +#define SYS_gettimeofday 78
- +#define SYS_settimeofday 79
- +#define SYS_getgroups 80
- +#define SYS_setgroups 81
- +#define SYS_symlink 83
- +#define SYS_oldlstat 84
- +#define SYS_readlink 85
- +#define SYS_uselib 86
- +#define SYS_swapon 87
- +#define SYS_reboot 88
- +#define SYS_readdir 89
- +#define SYS_mmap 90
- +#define SYS_munmap 91
- +#define SYS_truncate 92
- +#define SYS_ftruncate 93
- +#define SYS_fchmod 94
- +#define SYS_fchown 95
- +#define SYS_getpriority 96
- +#define SYS_setpriority 97
- +#define SYS_statfs 99
- +#define SYS_fstatfs 100
- +#define SYS_socketcall 102
- +#define SYS_syslog 103
- +#define SYS_setitimer 104
- +#define SYS_getitimer 105
- +#define SYS_stat 106
- +#define SYS_lstat 107
- +#define SYS_fstat 108
- +#define SYS_olduname 109
- +#define SYS_vhangup 111
- +#define SYS_wait4 114
- +#define SYS_swapoff 115
- +#define SYS_sysinfo 116
- +#define SYS_ipc 117
- +#define SYS_fsync 118
- +#define SYS_sigreturn 119
- +#define SYS_clone 120
- +#define SYS_setdomainname 121
- +#define SYS_uname 122
- +#define SYS_cacheflush 123
- +#define SYS_adjtimex 124
- +#define SYS_mprotect 125
- +#define SYS_sigprocmask 126
- +#define SYS_init_module 128
- +#define SYS_delete_module 129
- +#define SYS_quotactl 131
- +#define SYS_getpgid 132
- +#define SYS_fchdir 133
- +#define SYS_bdflush 134
- +#define SYS_sysfs 135
- +#define SYS_personality 136
- +#define SYS_setfsuid 138
- +#define SYS_setfsgid 139
- +#define SYS__llseek 140
- +#define SYS_getdents 141
- +#define SYS__newselect 142
- +#define SYS_flock 143
- +#define SYS_msync 144
- +#define SYS_readv 145
- +#define SYS_writev 146
- +#define SYS_getsid 147
- +#define SYS_fdatasync 148
- +#define SYS__sysctl 149
- +#define SYS_mlock 150
- +#define SYS_munlock 151
- +#define SYS_mlockall 152
- +#define SYS_munlockall 153
- +#define SYS_sched_setparam 154
- +#define SYS_sched_getparam 155
- +#define SYS_sched_setscheduler 156
- +#define SYS_sched_getscheduler 157
- +#define SYS_sched_yield 158
- +#define SYS_sched_get_priority_max 159
- +#define SYS_sched_get_priority_min 160
- +#define SYS_sched_rr_get_interval 161
- +#define SYS_nanosleep 162
- +#define SYS_mremap 163
- +#define SYS_setresuid 164
- +#define SYS_getresuid 165
- +#define SYS_poll 168
- +#define SYS_nfsservctl 169
- +#define SYS_setresgid 170
- +#define SYS_getresgid 171
- +#define SYS_prctl 172
- +#define SYS_rt_sigreturn 173
- +#define SYS_rt_sigaction 174
- +#define SYS_rt_sigprocmask 175
- +#define SYS_rt_sigpending 176
- +#define SYS_rt_sigtimedwait 177
- +#define SYS_rt_sigqueueinfo 178
- +#define SYS_rt_sigsuspend 179
- +#define SYS_pread64 180
- +#define SYS_pwrite64 181
- +#define SYS_chown 182
- +#define SYS_getcwd 183
- +#define SYS_capget 184
- +#define SYS_capset 185
- +#define SYS_sigaltstack 186
- +#define SYS_sendfile 187
- +#define SYS_vfork 190
- +#define SYS_ugetrlimit 191
- +#define SYS_mmap2 192
- +#define SYS_truncate64 193
- +#define SYS_ftruncate64 194
- +#define SYS_stat64 195
- +#define SYS_lstat64 196
- +#define SYS_fstat64 197
- +#define SYS_lchown32 198
- +#define SYS_getuid32 199
- +#define SYS_getgid32 200
- +#define SYS_geteuid32 201
- +#define SYS_getegid32 202
- +#define SYS_setreuid32 203
- +#define SYS_setregid32 204
- +#define SYS_getgroups32 205
- +#define SYS_setgroups32 206
- +#define SYS_fchown32 207
- +#define SYS_setresuid32 208
- +#define SYS_getresuid32 209
- +#define SYS_setresgid32 210
- +#define SYS_getresgid32 211
- +#define SYS_chown32 212
- +#define SYS_setuid32 213
- +#define SYS_setgid32 214
- +#define SYS_setfsuid32 215
- +#define SYS_setfsgid32 216
- +#define SYS_pivot_root 217
- +#define SYS_mincore 218
- +#define SYS_madvise 219
- +#define SYS_getdents64 220
- +#define SYS_fcntl64 221
- +#define SYS_gettid 224
- +#define SYS_readahead 225
- +#define SYS_setxattr 226
- +#define SYS_lsetxattr 227
- +#define SYS_fsetxattr 228
- +#define SYS_getxattr 229
- +#define SYS_lgetxattr 230
- +#define SYS_fgetxattr 231
- +#define SYS_listxattr 232
- +#define SYS_llistxattr 233
- +#define SYS_flistxattr 234
- +#define SYS_removexattr 235
- +#define SYS_lremovexattr 236
- +#define SYS_fremovexattr 237
- +#define SYS_tkill 238
- +#define SYS_sendfile64 239
- +#define SYS_futex 240
- +#define SYS_sched_setaffinity 241
- +#define SYS_sched_getaffinity 242
- +#define SYS_io_setup 245
- +#define SYS_io_destroy 246
- +#define SYS_io_getevents 247
- +#define SYS_io_submit 248
- +#define SYS_io_cancel 249
- +#define SYS_fadvise64 250
- +#define SYS_exit_group 252
- +#define SYS_lookup_dcookie 253
- +#define SYS_epoll_create 254
- +#define SYS_epoll_ctl 255
- +#define SYS_epoll_wait 256
- +#define SYS_remap_file_pages 257
- +#define SYS_set_tid_address 258
- +#define SYS_timer_create 259
- +#define SYS_timer_settime 260
- +#define SYS_timer_gettime 261
- +#define SYS_timer_getoverrun 262
- +#define SYS_timer_delete 263
- +#define SYS_clock_settime 264
- +#define SYS_clock_gettime 265
- +#define SYS_clock_getres 266
- +#define SYS_clock_nanosleep 267
- +#define SYS_statfs64 268
- +#define SYS_fstatfs64 269
- +#define SYS_tgkill 270
- +#define SYS_utimes 271
- +#define SYS_fadvise64_64 272
- +#define SYS_mbind 274
- +#define SYS_get_mempolicy 275
- +#define SYS_set_mempolicy 276
- +#define SYS_mq_open 277
- +#define SYS_mq_unlink 278
- +#define SYS_mq_timedsend 279
- +#define SYS_mq_timedreceive 280
- +#define SYS_mq_notify 281
- +#define SYS_mq_getsetattr 282
- +#define SYS_kexec_load 283
- +#define SYS_waitid 284
- +#define SYS_add_key 285
- +#define SYS_request_key 286
- +#define SYS_keyctl 287
- +#define SYS_ioprio_set 288
- +#define SYS_ioprio_get 289
- +#define SYS_inotify_init 290
- +#define SYS_inotify_add_watch 291
- +#define SYS_inotify_rm_watch 292
- +#define SYS_migrate_pages 294
- +#define SYS_openat 295
- +#define SYS_mkdirat 296
- +#define SYS_mknodat 297
- +#define SYS_fchownat 298
- +#define SYS_futimesat 299
- +#define SYS_fstatat64 300
- +#define SYS_unlinkat 301
- +#define SYS_renameat 302
- +#define SYS_linkat 303
- +#define SYS_symlinkat 304
- +#define SYS_readlinkat 305
- +#define SYS_fchmodat 306
- +#define SYS_faccessat 307
- +#define SYS_pselect6 308
- +#define SYS_ppoll 309
- +#define SYS_unshare 310
- +#define SYS_set_robust_list 311
- +#define SYS_get_robust_list 312
- +#define SYS_splice 313
- +#define SYS_sync_file_range 314
- +#define SYS_tee 315
- +#define SYS_vmsplice 316
- +#define SYS_move_pages 317
- +#define SYS_getcpu 318
- +#define SYS_epoll_pwait 319
- +#define SYS_utimensat 320
- +#define SYS_signalfd 321
- +#define SYS_timerfd_create 322
- +#define SYS_eventfd 323
- +#define SYS_fallocate 324
- +#define SYS_timerfd_settime 325
- +#define SYS_timerfd_gettime 326
- +#define SYS_signalfd4 327
- +#define SYS_eventfd2 328
- +#define SYS_epoll_create1 329
- +#define SYS_dup3 330
- +#define SYS_pipe2 331
- +#define SYS_inotify_init1 332
- +#define SYS_preadv 333
- +#define SYS_pwritev 334
- +#define SYS_rt_tgsigqueueinfo 335
- +#define SYS_perf_event_open 336
- +#define SYS_fanotify_init 337
- +#define SYS_fanotify_mark 338
- +#define SYS_prlimit64 339
- +#define SYS_socket 340
- +#define SYS_bind 341
- +#define SYS_connect 342
- +#define SYS_listen 343
- +#define SYS_accept 344
- +#define SYS_getsockname 345
- +#define SYS_getpeername 346
- +#define SYS_socketpair 347
- +#define SYS_send 348
- +#define SYS_sendto 349
- +#define SYS_recv 350
- +#define SYS_recvfrom 351
- +#define SYS_shutdown 352
- +#define SYS_setsockopt 353
- +#define SYS_getsockopt 354
- +#define SYS_sendmsg 355
- +#define SYS_recvmsg 356
- +#define SYS_recvmmsg 357
- +#define SYS_accept4 358
- +#define SYS_name_to_handle_at 359
- +#define SYS_open_by_handle_at 360
- +#define SYS_clock_adjtime 361
- +#define SYS_syncfs 362
- +#define SYS_sendmmsg 363
- +#define SYS_setns 364
- +#define SYS_process_vm_readv 365
- +#define SYS_process_vm_writev 366
- +#define SYS_kcmp 367
- +#define SYS_finit_module 368
- diff -Nur musl-0.9.15/arch/sh/bits/termios.h musl-git/arch/sh/bits/termios.h
- --- musl-0.9.15/arch/sh/bits/termios.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,160 @@
- +struct termios
- +{
- + tcflag_t c_iflag;
- + tcflag_t c_oflag;
- + tcflag_t c_cflag;
- + tcflag_t c_lflag;
- + cc_t c_line;
- + cc_t c_cc[NCCS];
- + speed_t __c_ispeed;
- + speed_t __c_ospeed;
- +};
- +
- +#define VINTR 0
- +#define VQUIT 1
- +#define VERASE 2
- +#define VKILL 3
- +#define VEOF 4
- +#define VTIME 5
- +#define VMIN 6
- +#define VSWTC 7
- +#define VSTART 8
- +#define VSTOP 9
- +#define VSUSP 10
- +#define VEOL 11
- +#define VREPRINT 12
- +#define VDISCARD 13
- +#define VWERASE 14
- +#define VLNEXT 15
- +#define VEOL2 16
- +
- +#define IGNBRK 0000001
- +#define BRKINT 0000002
- +#define IGNPAR 0000004
- +#define PARMRK 0000010
- +#define INPCK 0000020
- +#define ISTRIP 0000040
- +#define INLCR 0000100
- +#define IGNCR 0000200
- +#define ICRNL 0000400
- +#define IUCLC 0001000
- +#define IXON 0002000
- +#define IXANY 0004000
- +#define IXOFF 0010000
- +#define IMAXBEL 0020000
- +#define IUTF8 0040000
- +
- +#define OPOST 0000001
- +#define OLCUC 0000002
- +#define ONLCR 0000004
- +#define OCRNL 0000010
- +#define ONOCR 0000020
- +#define ONLRET 0000040
- +#define OFILL 0000100
- +#define OFDEL 0000200
- +#define NLDLY 0000400
- +#define NL0 0000000
- +#define NL1 0000400
- +#define CRDLY 0003000
- +#define CR0 0000000
- +#define CR1 0001000
- +#define CR2 0002000
- +#define CR3 0003000
- +#define TABDLY 0014000
- +#define TAB0 0000000
- +#define TAB1 0004000
- +#define TAB2 0010000
- +#define TAB3 0014000
- +#define BSDLY 0020000
- +#define BS0 0000000
- +#define BS1 0020000
- +#define FFDLY 0100000
- +#define FF0 0000000
- +#define FF1 0100000
- +
- +#define VTDLY 0040000
- +#define VT0 0000000
- +#define VT1 0040000
- +
- +#define B0 0000000
- +#define B50 0000001
- +#define B75 0000002
- +#define B110 0000003
- +#define B134 0000004
- +#define B150 0000005
- +#define B200 0000006
- +#define B300 0000007
- +#define B600 0000010
- +#define B1200 0000011
- +#define B1800 0000012
- +#define B2400 0000013
- +#define B4800 0000014
- +#define B9600 0000015
- +#define B19200 0000016
- +#define B38400 0000017
- +
- +#define B57600 0010001
- +#define B115200 0010002
- +#define B230400 0010003
- +#define B460800 0010004
- +#define B500000 0010005
- +#define B576000 0010006
- +#define B921600 0010007
- +#define B1000000 0010010
- +#define B1152000 0010011
- +#define B1500000 0010012
- +#define B2000000 0010013
- +#define B2500000 0010014
- +#define B3000000 0010015
- +#define B3500000 0010016
- +#define B4000000 0010017
- +
- +#define CBAUD 0010017
- +
- +#define CSIZE 0000060
- +#define CS5 0000000
- +#define CS6 0000020
- +#define CS7 0000040
- +#define CS8 0000060
- +#define CSTOPB 0000100
- +#define CREAD 0000200
- +#define PARENB 0000400
- +#define PARODD 0001000
- +#define HUPCL 0002000
- +#define CLOCAL 0004000
- +
- +#define ISIG 0000001
- +#define ICANON 0000002
- +#define ECHO 0000010
- +#define ECHOE 0000020
- +#define ECHOK 0000040
- +#define ECHONL 0000100
- +#define NOFLSH 0000200
- +#define TOSTOP 0000400
- +#define IEXTEN 0100000
- +
- +#define ECHOCTL 0001000
- +#define ECHOPRT 0002000
- +#define ECHOKE 0004000
- +#define FLUSHO 0010000
- +#define PENDIN 0040000
- +
- +#define TCOOFF 0
- +#define TCOON 1
- +#define TCIOFF 2
- +#define TCION 3
- +
- +#define TCIFLUSH 0
- +#define TCOFLUSH 1
- +#define TCIOFLUSH 2
- +
- +#define TCSANOW 0
- +#define TCSADRAIN 1
- +#define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/sh/bits/user.h musl-git/arch/sh/bits/user.h
- --- musl-0.9.15/arch/sh/bits/user.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/bits/user.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,75 @@
- +#undef __WORDSIZE
- +#define __WORDSIZE 32
- +
- +#define REG_REG0 0
- +#define REG_REG15 15
- +#define REG_PC 16
- +#define REG_PR 17
- +#define REG_SR 18
- +#define REG_GBR 19
- +#define REG_MACH 20
- +#define REG_MACL 21
- +#define REG_SYSCALL 22
- +#define REG_FPREG0 23
- +#define REG_FPREG15 38
- +#define REG_XFREG0 39
- +#define REG_XFREG15 54
- +#define REG_FPSCR 55
- +#define REG_FPUL 56
- +
- +struct pt_regs {
- + unsigned long regs[16];
- + unsigned long pc;
- + unsigned long pr;
- + unsigned long sr;
- + unsigned long gbr;
- + unsigned long mach;
- + unsigned long macl;
- + long tra;
- +};
- +
- +struct pt_dspregs {
- + unsigned long a1;
- + unsigned long a0g;
- + unsigned long a1g;
- + unsigned long m0;
- + unsigned long m1;
- + unsigned long a0;
- + unsigned long x0;
- + unsigned long x1;
- + unsigned long y0;
- + unsigned long y1;
- + unsigned long dsr;
- + unsigned long rs;
- + unsigned long re;
- + unsigned long mod;
- +};
- +
- +struct user_fpu_struct {
- + unsigned long fp_regs[16];
- + unsigned long xfp_regs[16];
- + unsigned long fpscr;
- + unsigned long fpul;
- +};
- +
- +#define ELF_NGREG 23
- +typedef unsigned long elf_greg_t;
- +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
- +typedef struct user_fpu_struct elf_fpregset_t;
- +
- +struct user {
- + struct pt_regs regs;
- + struct user_fpu_struct fpu;
- + int u_fpvalid;
- + unsigned long u_tsize;
- + unsigned long u_dsize;
- + unsigned long u_ssize;
- + unsigned long start_code;
- + unsigned long start_data;
- + unsigned long start_stack;
- + long int signal;
- + unsigned long u_ar0;
- + struct user_fpu_struct *u_fpstate;
- + unsigned long magic;
- + char u_comm[32];
- +};
- diff -Nur musl-0.9.15/arch/sh/crt_arch.h musl-git/arch/sh/crt_arch.h
- --- musl-0.9.15/arch/sh/crt_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/crt_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,12 @@
- +__asm__("\
- +.global _start \n\
- +_start: \n\
- + mov r15, r4 \n\
- + mov #-16, r0 \n\
- + and r0, r15 \n\
- + bsr __cstart \n\
- + nop \n\
- +");
- +
- +/* used by gcc for switching the FPU between single and double precision */
- +const unsigned long __fpscr_values[2] = { 0, 0x80000 };
- diff -Nur musl-0.9.15/arch/sh/pthread_arch.h musl-git/arch/sh/pthread_arch.h
- --- musl-0.9.15/arch/sh/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/pthread_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,11 @@
- +static inline struct pthread *__pthread_self()
- +{
- + char *self;
- + __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) );
- + return (struct pthread *) (self + 8 - sizeof(struct pthread));
- +}
- +
- +#define TLS_ABOVE_TP
- +#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8)
- +
- +#define CANCEL_REG_IP 17
- diff -Nur musl-0.9.15/arch/sh/reloc.h musl-git/arch/sh/reloc.h
- --- musl-0.9.15/arch/sh/reloc.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/reloc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,47 @@
- +#if __BYTE_ORDER == __BIG_ENDIAN
- +#define ENDIAN_SUFFIX "eb"
- +#else
- +#define ENDIAN_SUFFIX ""
- +#endif
- +
- +#define LDSO_ARCH "sh" ENDIAN_SUFFIX
- +
- +#define IS_COPY(x) ((x) == R_SH_COPY)
- +#define IS_PLT(x) ((x) == R_SH_JMP_SLOT)
- +
- +static inline void do_single_reloc(
- + struct dso *self, unsigned char *base_addr,
- + size_t *reloc_addr, int type, size_t addend,
- + Sym *sym, size_t sym_size,
- + struct symdef def, size_t sym_val)
- +{
- + switch(type) {
- + case R_SH_GLOB_DAT:
- + case R_SH_JMP_SLOT:
- + *reloc_addr = sym_val;
- + break;
- + case R_SH_RELATIVE:
- + *reloc_addr = (size_t)base_addr + addend;
- + break;
- + case R_SH_DIR32:
- + *reloc_addr = sym_val + addend;
- + break;
- + case R_SH_REL32:
- + *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr;
- + break;
- + case R_SH_COPY:
- + memcpy(reloc_addr, (void *)sym_val, sym_size);
- + break;
- + case R_SH_TLS_DTPMOD32:
- + *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id;
- + break;
- + case R_SH_TLS_DTPOFF32:
- + *reloc_addr += def.sym->st_value;
- + break;
- + case R_SH_TLS_TPOFF32:
- + *reloc_addr += def.sym
- + ? def.sym->st_value + def.dso->tls_offset + 8
- + : self->tls_offset + 8;
- + break;
- + }
- +}
- diff -Nur musl-0.9.15/arch/sh/src/atomic.c musl-git/arch/sh/src/atomic.c
- --- musl-0.9.15/arch/sh/src/atomic.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/src/atomic.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,146 @@
- +#include "libc.h"
- +
- +#define LLSC_CLOBBERS "r0", "t", "memory"
- +#define LLSC_START(mem) \
- + "0: movli.l @" mem ", r0\n"
- +#define LLSC_END(mem) \
- + "1: movco.l r0, @" mem "\n" \
- + " bf 0b\n" \
- + " synco\n"
- +
- +/* gusa is a hack in the kernel which lets you create a sequence of instructions
- + * which will be restarted if the process is preempted in the middle of the
- + * sequence. It will do for implementing atomics on non-smp systems. ABI is:
- + * r0 = address of first instruction after the atomic sequence
- + * r1 = original stack pointer
- + * r15 = -1 * length of atomic sequence in bytes
- + */
- +#define GUSA_CLOBBERS "r0", "r1", "memory"
- +#define GUSA_START(mem,old,nop) \
- + " .align 2\n" \
- + " mova 1f, r0\n" \
- + nop \
- + " mov r15, r1\n" \
- + " mov #(0f-1f), r15\n" \
- + "0: mov.l @" mem ", " old "\n"
- +/* the target of mova must be 4 byte aligned, so we may need a nop */
- +#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"")
- +#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n")
- +#define GUSA_END(mem,new) \
- + " mov.l " new ", @" mem "\n" \
- + "1: mov r1, r15\n"
- +
- +#define CPU_HAS_LLSC 0x0040
- +
- +int __sh_cas(volatile int *p, int t, int s)
- +{
- + int old;
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + LLSC_START("%1")
- + " mov r0, %0\n"
- + " cmp/eq %0, %2\n"
- + " bf 1f\n"
- + " mov %3, r0\n"
- + LLSC_END("%1")
- + : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS);
- + } else {
- + __asm__ __volatile__(
- + GUSA_START_EVEN("%1", "%0")
- + " cmp/eq %0, %2\n"
- + " bf 1f\n"
- + GUSA_END("%1", "%3")
- + : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t");
- + }
- + return old;
- +}
- +
- +int __sh_swap(volatile int *x, int v)
- +{
- + int old;
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + LLSC_START("%1")
- + " mov r0, %0\n"
- + " mov %2, r0\n"
- + LLSC_END("%1")
- + : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
- + } else {
- + __asm__ __volatile__(
- + GUSA_START_EVEN("%1", "%0")
- + GUSA_END("%1", "%2")
- + : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- + }
- + return old;
- +}
- +
- +int __sh_fetch_add(volatile int *x, int v)
- +{
- + int old, dummy;
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + LLSC_START("%1")
- + " mov r0, %0\n"
- + " add %2, r0\n"
- + LLSC_END("%1")
- + : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
- + } else {
- + __asm__ __volatile__(
- + GUSA_START_EVEN("%2", "%0")
- + " mov %0, %1\n"
- + " add %3, %1\n"
- + GUSA_END("%2", "%1")
- + : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- + }
- + return old;
- +}
- +
- +void __sh_store(volatile int *p, int x)
- +{
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + " mov.l %1, @%0\n"
- + " synco\n"
- + : : "r"(p), "r"(x) : "memory");
- + } else {
- + __asm__ __volatile__(
- + " mov.l %1, @%0\n"
- + : : "r"(p), "r"(x) : "memory");
- + }
- +}
- +
- +void __sh_and(volatile int *x, int v)
- +{
- + int dummy;
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + LLSC_START("%0")
- + " and %1, r0\n"
- + LLSC_END("%0")
- + : : "r"(x), "r"(v) : LLSC_CLOBBERS);
- + } else {
- + __asm__ __volatile__(
- + GUSA_START_ODD("%1", "%0")
- + " and %2, %0\n"
- + GUSA_END("%1", "%0")
- + : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- + }
- +}
- +
- +void __sh_or(volatile int *x, int v)
- +{
- + int dummy;
- + if (__hwcap & CPU_HAS_LLSC) {
- + __asm__ __volatile__(
- + LLSC_START("%0")
- + " or %1, r0\n"
- + LLSC_END("%0")
- + : : "r"(x), "r"(v) : LLSC_CLOBBERS);
- + } else {
- + __asm__ __volatile__(
- + GUSA_START_ODD("%1", "%0")
- + " or %2, %0\n"
- + GUSA_END("%1", "%0")
- + : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- + }
- +}
- diff -Nur musl-0.9.15/arch/sh/src/__fpsrc_values.c musl-git/arch/sh/src/__fpsrc_values.c
- --- musl-0.9.15/arch/sh/src/__fpsrc_values.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/src/__fpsrc_values.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +#include "libc.h"
- +
- +/* used by gcc for switching the FPU between single and double precision */
- +const unsigned long __fpscr_values[2] ATTR_LIBC_VISIBILITY = { 0, 0x80000 };
- +
- diff -Nur musl-0.9.15/arch/sh/syscall_arch.h musl-git/arch/sh/syscall_arch.h
- --- musl-0.9.15/arch/sh/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/sh/syscall_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,87 @@
- +#define __SYSCALL_LL_E(x) \
- +((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
- +((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- +#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x))
- +
- +/* The extra OR instructions are to work around a hardware bug:
- + * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf
- + */
- +#define __asm_syscall(trapno, ...) do { \
- + __asm__ __volatile__ ( \
- + "trapa #" #trapno "\n" \
- + "or r0, r0\n" \
- + "or r0, r0\n" \
- + "or r0, r0\n" \
- + "or r0, r0\n" \
- + "or r0, r0\n" \
- + : "=r"(r0) : __VA_ARGS__ : "memory"); \
- + return r0; \
- + } while (0)
- +
- +static inline long __syscall0(long n)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r0 __asm__("r0");
- + __asm_syscall(16, "r"(r3));
- +}
- +
- +static inline long __syscall1(long n, long a)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r0 __asm__("r0");
- + __asm_syscall(17, "r"(r3), "r"(r4));
- +}
- +
- +static inline long __syscall2(long n, long a, long b)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r5 __asm__("r5") = b;
- + register long r0 __asm__("r0");
- + __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5));
- +}
- +
- +static inline long __syscall3(long n, long a, long b, long c)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r5 __asm__("r5") = b;
- + register long r6 __asm__("r6") = c;
- + register long r0 __asm__("r0");
- + __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6));
- +}
- +
- +static inline long __syscall4(long n, long a, long b, long c, long d)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r5 __asm__("r5") = b;
- + register long r6 __asm__("r6") = c;
- + register long r7 __asm__("r7") = d;
- + register long r0 __asm__("r0");
- + __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7));
- +}
- +
- +static inline long __syscall5(long n, long a, long b, long c, long d, long e)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r5 __asm__("r5") = b;
- + register long r6 __asm__("r6") = c;
- + register long r7 __asm__("r7") = d;
- + register long r0 __asm__("r0") = e;
- + __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0));
- +}
- +
- +static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
- +{
- + register long r3 __asm__("r3") = n;
- + register long r4 __asm__("r4") = a;
- + register long r5 __asm__("r5") = b;
- + register long r6 __asm__("r6") = c;
- + register long r7 __asm__("r7") = d;
- + register long r0 __asm__("r0") = e;
- + register long r1 __asm__("r1") = f;
- + __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1));
- +}
- diff -Nur musl-0.9.15/arch/x32/atomic.h musl-git/arch/x32/atomic.h
- --- musl-0.9.15/arch/x32/atomic.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/atomic.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,125 @@
- +#ifndef _INTERNAL_ATOMIC_H
- +#define _INTERNAL_ATOMIC_H
- +
- +#include <stdint.h>
- +
- +static inline int a_ctz_64(uint64_t x)
- +{
- + __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) );
- + return x;
- +}
- +
- +static inline int a_ctz_l(unsigned long x)
- +{
- + __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) );
- + return x;
- +}
- +
- +static inline void a_and_64(volatile uint64_t *p, uint64_t v)
- +{
- + __asm__( "lock ; and %1, %0"
- + : "=m"(*p) : "r"(v) : "memory" );
- +}
- +
- +static inline void a_or_64(volatile uint64_t *p, uint64_t v)
- +{
- + __asm__( "lock ; or %1, %0"
- + : "=m"(*p) : "r"(v) : "memory" );
- +}
- +
- +static inline void a_store_l(volatile void *p, long x)
- +{
- + __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" );
- +}
- +
- +static inline void a_or_l(volatile void *p, long v)
- +{
- + __asm__( "lock ; or %1, %0"
- + : "=m"(*(long *)p) : "r"(v) : "memory" );
- +}
- +
- +static inline void *a_cas_p(volatile void *p, void *t, void *s)
- +{
- + __asm__( "lock ; cmpxchg %3, %1"
- + : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
- + return t;
- +}
- +
- +static inline long a_cas_l(volatile void *p, long t, long s)
- +{
- + __asm__( "lock ; cmpxchg %3, %1"
- + : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
- + return t;
- +}
- +
- +static inline int a_cas(volatile int *p, int t, int s)
- +{
- + __asm__( "lock ; cmpxchg %3, %1"
- + : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" );
- + return t;
- +}
- +
- +static inline void *a_swap_p(void *volatile *x, void *v)
- +{
- + __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" );
- + return v;
- +}
- +static inline long a_swap_l(volatile void *x, long v)
- +{
- + __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" );
- + return v;
- +}
- +
- +static inline void a_or(volatile void *p, int v)
- +{
- + __asm__( "lock ; or %1, %0"
- + : "=m"(*(int *)p) : "r"(v) : "memory" );
- +}
- +
- +static inline void a_and(volatile void *p, int v)
- +{
- + __asm__( "lock ; and %1, %0"
- + : "=m"(*(int *)p) : "r"(v) : "memory" );
- +}
- +
- +static inline int a_swap(volatile int *x, int v)
- +{
- + __asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
- + return v;
- +}
- +
- +#define a_xchg a_swap
- +
- +static inline int a_fetch_add(volatile int *x, int v)
- +{
- + __asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
- + return v;
- +}
- +
- +static inline void a_inc(volatile int *x)
- +{
- + __asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" );
- +}
- +
- +static inline void a_dec(volatile int *x)
- +{
- + __asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" );
- +}
- +
- +static inline void a_store(volatile int *p, int x)
- +{
- + __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" );
- +}
- +
- +static inline void a_spin()
- +{
- + __asm__ __volatile__( "pause" : : : "memory" );
- +}
- +
- +static inline void a_crash()
- +{
- + __asm__ __volatile__( "hlt" : : : "memory" );
- +}
- +
- +
- +#endif
- diff -Nur musl-0.9.15/arch/x32/bits/alltypes.h.in musl-git/arch/x32/bits/alltypes.h.in
- --- musl-0.9.15/arch/x32/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/alltypes.h.in 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,28 @@
- +#define _Addr int
- +#define _Int64 long long
- +#define _Reg long long
- +
- +TYPEDEF __builtin_va_list va_list;
- +TYPEDEF __builtin_va_list __isoc_va_list;
- +
- +#ifndef __cplusplus
- +TYPEDEF long wchar_t;
- +#endif
- +TYPEDEF unsigned wint_t;
- +
- +#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2
- +TYPEDEF long double float_t;
- +TYPEDEF long double double_t;
- +#else
- +TYPEDEF float float_t;
- +TYPEDEF double double_t;
- +#endif
- +
- +TYPEDEF long long time_t;
- +TYPEDEF long long suseconds_t;
- +
- +TYPEDEF struct { union { int __i[14]; unsigned long __s[7]; } __u; } pthread_attr_t;
- +TYPEDEF struct { union { int __i[10]; void *__p[5]; } __u; } pthread_mutex_t;
- +TYPEDEF struct { union { int __i[12]; void *__p[6]; } __u; } pthread_cond_t;
- +TYPEDEF struct { union { int __i[14]; void *__p[7]; } __u; } pthread_rwlock_t;
- +TYPEDEF struct { union { int __i[8]; void *__p[4]; } __u; } pthread_barrier_t;
- diff -Nur musl-0.9.15/arch/x32/bits/endian.h musl-git/arch/x32/bits/endian.h
- --- musl-0.9.15/arch/x32/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/endian.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +#define __BYTE_ORDER __LITTLE_ENDIAN
- diff -Nur musl-0.9.15/arch/x32/bits/errno.h musl-git/arch/x32/bits/errno.h
- --- musl-0.9.15/arch/x32/bits/errno.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/errno.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,134 @@
- +#define EPERM 1
- +#define ENOENT 2
- +#define ESRCH 3
- +#define EINTR 4
- +#define EIO 5
- +#define ENXIO 6
- +#define E2BIG 7
- +#define ENOEXEC 8
- +#define EBADF 9
- +#define ECHILD 10
- +#define EAGAIN 11
- +#define ENOMEM 12
- +#define EACCES 13
- +#define EFAULT 14
- +#define ENOTBLK 15
- +#define EBUSY 16
- +#define EEXIST 17
- +#define EXDEV 18
- +#define ENODEV 19
- +#define ENOTDIR 20
- +#define EISDIR 21
- +#define EINVAL 22
- +#define ENFILE 23
- +#define EMFILE 24
- +#define ENOTTY 25
- +#define ETXTBSY 26
- +#define EFBIG 27
- +#define ENOSPC 28
- +#define ESPIPE 29
- +#define EROFS 30
- +#define EMLINK 31
- +#define EPIPE 32
- +#define EDOM 33
- +#define ERANGE 34
- +#define EDEADLK 35
- +#define ENAMETOOLONG 36
- +#define ENOLCK 37
- +#define ENOSYS 38
- +#define ENOTEMPTY 39
- +#define ELOOP 40
- +#define EWOULDBLOCK EAGAIN
- +#define ENOMSG 42
- +#define EIDRM 43
- +#define ECHRNG 44
- +#define EL2NSYNC 45
- +#define EL3HLT 46
- +#define EL3RST 47
- +#define ELNRNG 48
- +#define EUNATCH 49
- +#define ENOCSI 50
- +#define EL2HLT 51
- +#define EBADE 52
- +#define EBADR 53
- +#define EXFULL 54
- +#define ENOANO 55
- +#define EBADRQC 56
- +#define EBADSLT 57
- +#define EDEADLOCK EDEADLK
- +#define EBFONT 59
- +#define ENOSTR 60
- +#define ENODATA 61
- +#define ETIME 62
- +#define ENOSR 63
- +#define ENONET 64
- +#define ENOPKG 65
- +#define EREMOTE 66
- +#define ENOLINK 67
- +#define EADV 68
- +#define ESRMNT 69
- +#define ECOMM 70
- +#define EPROTO 71
- +#define EMULTIHOP 72
- +#define EDOTDOT 73
- +#define EBADMSG 74
- +#define EOVERFLOW 75
- +#define ENOTUNIQ 76
- +#define EBADFD 77
- +#define EREMCHG 78
- +#define ELIBACC 79
- +#define ELIBBAD 80
- +#define ELIBSCN 81
- +#define ELIBMAX 82
- +#define ELIBEXEC 83
- +#define EILSEQ 84
- +#define ERESTART 85
- +#define ESTRPIPE 86
- +#define EUSERS 87
- +#define ENOTSOCK 88
- +#define EDESTADDRREQ 89
- +#define EMSGSIZE 90
- +#define EPROTOTYPE 91
- +#define ENOPROTOOPT 92
- +#define EPROTONOSUPPORT 93
- +#define ESOCKTNOSUPPORT 94
- +#define EOPNOTSUPP 95
- +#define ENOTSUP EOPNOTSUPP
- +#define EPFNOSUPPORT 96
- +#define EAFNOSUPPORT 97
- +#define EADDRINUSE 98
- +#define EADDRNOTAVAIL 99
- +#define ENETDOWN 100
- +#define ENETUNREACH 101
- +#define ENETRESET 102
- +#define ECONNABORTED 103
- +#define ECONNRESET 104
- +#define ENOBUFS 105
- +#define EISCONN 106
- +#define ENOTCONN 107
- +#define ESHUTDOWN 108
- +#define ETOOMANYREFS 109
- +#define ETIMEDOUT 110
- +#define ECONNREFUSED 111
- +#define EHOSTDOWN 112
- +#define EHOSTUNREACH 113
- +#define EALREADY 114
- +#define EINPROGRESS 115
- +#define ESTALE 116
- +#define EUCLEAN 117
- +#define ENOTNAM 118
- +#define ENAVAIL 119
- +#define EISNAM 120
- +#define EREMOTEIO 121
- +#define EDQUOT 122
- +#define ENOMEDIUM 123
- +#define EMEDIUMTYPE 124
- +#define ECANCELED 125
- +#define ENOKEY 126
- +#define EKEYEXPIRED 127
- +#define EKEYREVOKED 128
- +#define EKEYREJECTED 129
- +#define EOWNERDEAD 130
- +#define ENOTRECOVERABLE 131
- +#define ERFKILL 132
- +#define EHWPOISON 133
- diff -Nur musl-0.9.15/arch/x32/bits/fcntl.h musl-git/arch/x32/bits/fcntl.h
- --- musl-0.9.15/arch/x32/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/fcntl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,39 @@
- +#define O_CREAT 0100
- +#define O_EXCL 0200
- +#define O_NOCTTY 0400
- +#define O_TRUNC 01000
- +#define O_APPEND 02000
- +#define O_NONBLOCK 04000
- +#define O_DSYNC 010000
- +#define O_SYNC 04010000
- +#define O_RSYNC 04010000
- +#define O_DIRECTORY 0200000
- +#define O_NOFOLLOW 0400000
- +#define O_CLOEXEC 02000000
- +
- +#define O_ASYNC 020000
- +#define O_DIRECT 040000
- +#define O_LARGEFILE 0
- +#define O_NOATIME 01000000
- +#define O_TMPFILE 020200000
- +#define O_NDELAY O_NONBLOCK
- +
- +#define F_DUPFD 0
- +#define F_GETFD 1
- +#define F_SETFD 2
- +#define F_GETFL 3
- +#define F_SETFL 4
- +
- +#define F_SETOWN 8
- +#define F_GETOWN 9
- +#define F_SETSIG 10
- +#define F_GETSIG 11
- +
- +#define F_GETLK 5
- +#define F_SETLK 6
- +#define F_SETLKW 7
- +
- +#define F_SETOWN_EX 15
- +#define F_GETOWN_EX 16
- +
- +#define F_GETOWNER_UIDS 17
- diff -Nur musl-0.9.15/arch/x32/bits/fenv.h musl-git/arch/x32/bits/fenv.h
- --- musl-0.9.15/arch/x32/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/fenv.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,34 @@
- +#define FE_INVALID 1
- +#define __FE_DENORM 2
- +#define FE_DIVBYZERO 4
- +#define FE_OVERFLOW 8
- +#define FE_UNDERFLOW 16
- +#define FE_INEXACT 32
- +
- +#define FE_ALL_EXCEPT 63
- +
- +#define FE_TONEAREST 0
- +#define FE_DOWNWARD 0x400
- +#define FE_UPWARD 0x800
- +#define FE_TOWARDZERO 0xc00
- +
- +typedef unsigned short fexcept_t;
- +
- +typedef struct {
- + unsigned short __control_word;
- + unsigned short __unused1;
- + unsigned short __status_word;
- + unsigned short __unused2;
- + unsigned short __tags;
- + unsigned short __unused3;
- + unsigned int __eip;
- + unsigned short __cs_selector;
- + unsigned int __opcode:11;
- + unsigned int __unused4:5;
- + unsigned int __data_offset;
- + unsigned short __data_selector;
- + unsigned short __unused5;
- + unsigned int __mxcsr;
- +} fenv_t;
- +
- +#define FE_DFL_ENV ((const fenv_t *) -1)
- diff -Nur musl-0.9.15/arch/x32/bits/float.h musl-git/arch/x32/bits/float.h
- --- musl-0.9.15/arch/x32/bits/float.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/float.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,21 @@
- +#define FLT_ROUNDS 1
- +#ifdef __FLT_EVAL_METHOD__
- +#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
- +#else
- +#define FLT_EVAL_METHOD 0
- +#endif
- +
- +#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L
- +#define LDBL_MIN 3.3621031431120935063e-4932L
- +#define LDBL_MAX 1.1897314953572317650e+4932L
- +#define LDBL_EPSILON 1.0842021724855044340e-19L
- +
- +#define LDBL_MANT_DIG 64
- +#define LDBL_MIN_EXP (-16381)
- +#define LDBL_MAX_EXP 16384
- +
- +#define LDBL_DIG 18
- +#define LDBL_MIN_10_EXP (-4931)
- +#define LDBL_MAX_10_EXP 4932
- +
- +#define DECIMAL_DIG 21
- diff -Nur musl-0.9.15/arch/x32/bits/ioctl.h musl-git/arch/x32/bits/ioctl.h
- --- musl-0.9.15/arch/x32/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/ioctl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,197 @@
- +#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
- +#define _IOC_NONE 0U
- +#define _IOC_WRITE 1U
- +#define _IOC_READ 2U
- +
- +#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
- +#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
- +#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
- +#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
- +
- +#define TCGETS 0x5401
- +#define TCSETS 0x5402
- +#define TCSETSW 0x5403
- +#define TCSETSF 0x5404
- +#define TCGETA 0x5405
- +#define TCSETA 0x5406
- +#define TCSETAW 0x5407
- +#define TCSETAF 0x5408
- +#define TCSBRK 0x5409
- +#define TCXONC 0x540A
- +#define TCFLSH 0x540B
- +#define TIOCEXCL 0x540C
- +#define TIOCNXCL 0x540D
- +#define TIOCSCTTY 0x540E
- +#define TIOCGPGRP 0x540F
- +#define TIOCSPGRP 0x5410
- +#define TIOCOUTQ 0x5411
- +#define TIOCSTI 0x5412
- +#define TIOCGWINSZ 0x5413
- +#define TIOCSWINSZ 0x5414
- +#define TIOCMGET 0x5415
- +#define TIOCMBIS 0x5416
- +#define TIOCMBIC 0x5417
- +#define TIOCMSET 0x5418
- +#define TIOCGSOFTCAR 0x5419
- +#define TIOCSSOFTCAR 0x541A
- +#define FIONREAD 0x541B
- +#define TIOCINQ FIONREAD
- +#define TIOCLINUX 0x541C
- +#define TIOCCONS 0x541D
- +#define TIOCGSERIAL 0x541E
- +#define TIOCSSERIAL 0x541F
- +#define TIOCPKT 0x5420
- +#define FIONBIO 0x5421
- +#define TIOCNOTTY 0x5422
- +#define TIOCSETD 0x5423
- +#define TIOCGETD 0x5424
- +#define TCSBRKP 0x5425
- +#define TIOCTTYGSTRUCT 0x5426
- +#define TIOCSBRK 0x5427
- +#define TIOCCBRK 0x5428
- +#define TIOCGSID 0x5429
- +#define TIOCGPTN 0x80045430
- +#define TIOCSPTLCK 0x40045431
- +#define TCGETX 0x5432
- +#define TCSETX 0x5433
- +#define TCSETXF 0x5434
- +#define TCSETXW 0x5435
- +
- +#define FIONCLEX 0x5450
- +#define FIOCLEX 0x5451
- +#define FIOASYNC 0x5452
- +#define TIOCSERCONFIG 0x5453
- +#define TIOCSERGWILD 0x5454
- +#define TIOCSERSWILD 0x5455
- +#define TIOCGLCKTRMIOS 0x5456
- +#define TIOCSLCKTRMIOS 0x5457
- +#define TIOCSERGSTRUCT 0x5458
- +#define TIOCSERGETLSR 0x5459
- +#define TIOCSERGETMULTI 0x545A
- +#define TIOCSERSETMULTI 0x545B
- +
- +#define TIOCMIWAIT 0x545C
- +#define TIOCGICOUNT 0x545D
- +#define TIOCGHAYESESP 0x545E
- +#define TIOCSHAYESESP 0x545F
- +#define FIOQSIZE 0x5460
- +
- +#define TIOCPKT_DATA 0
- +#define TIOCPKT_FLUSHREAD 1
- +#define TIOCPKT_FLUSHWRITE 2
- +#define TIOCPKT_STOP 4
- +#define TIOCPKT_START 8
- +#define TIOCPKT_NOSTOP 16
- +#define TIOCPKT_DOSTOP 32
- +#define TIOCPKT_IOCTL 64
- +
- +#define TIOCSER_TEMT 0x01
- +
- +struct winsize {
- + unsigned short ws_row;
- + unsigned short ws_col;
- + unsigned short ws_xpixel;
- + unsigned short ws_ypixel;
- +};
- +
- +#define TIOCM_LE 0x001
- +#define TIOCM_DTR 0x002
- +#define TIOCM_RTS 0x004
- +#define TIOCM_ST 0x008
- +#define TIOCM_SR 0x010
- +#define TIOCM_CTS 0x020
- +#define TIOCM_CAR 0x040
- +#define TIOCM_RNG 0x080
- +#define TIOCM_DSR 0x100
- +#define TIOCM_CD TIOCM_CAR
- +#define TIOCM_RI TIOCM_RNG
- +#define TIOCM_OUT1 0x2000
- +#define TIOCM_OUT2 0x4000
- +#define TIOCM_LOOP 0x8000
- +#define TIOCM_MODEM_BITS TIOCM_OUT2
- +
- +#define N_TTY 0
- +#define N_SLIP 1
- +#define N_MOUSE 2
- +#define N_PPP 3
- +#define N_STRIP 4
- +#define N_AX25 5
- +#define N_X25 6
- +#define N_6PACK 7
- +#define N_MASC 8
- +#define N_R3964 9
- +#define N_PROFIBUS_FDL 10
- +#define N_IRDA 11
- +#define N_SMSBLOCK 12
- +#define N_HDLC 13
- +#define N_SYNC_PPP 14
- +#define N_HCI 15
- +
- +#define FIOSETOWN 0x8901
- +#define SIOCSPGRP 0x8902
- +#define FIOGETOWN 0x8903
- +#define SIOCGPGRP 0x8904
- +#define SIOCATMARK 0x8905
- +#define SIOCGSTAMP 0x8906
- +
- +#define SIOCADDRT 0x890B
- +#define SIOCDELRT 0x890C
- +#define SIOCRTMSG 0x890D
- +
- +#define SIOCGIFNAME 0x8910
- +#define SIOCSIFLINK 0x8911
- +#define SIOCGIFCONF 0x8912
- +#define SIOCGIFFLAGS 0x8913
- +#define SIOCSIFFLAGS 0x8914
- +#define SIOCGIFADDR 0x8915
- +#define SIOCSIFADDR 0x8916
- +#define SIOCGIFDSTADDR 0x8917
- +#define SIOCSIFDSTADDR 0x8918
- +#define SIOCGIFBRDADDR 0x8919
- +#define SIOCSIFBRDADDR 0x891a
- +#define SIOCGIFNETMASK 0x891b
- +#define SIOCSIFNETMASK 0x891c
- +#define SIOCGIFMETRIC 0x891d
- +#define SIOCSIFMETRIC 0x891e
- +#define SIOCGIFMEM 0x891f
- +#define SIOCSIFMEM 0x8920
- +#define SIOCGIFMTU 0x8921
- +#define SIOCSIFMTU 0x8922
- +#define SIOCSIFHWADDR 0x8924
- +#define SIOCGIFENCAP 0x8925
- +#define SIOCSIFENCAP 0x8926
- +#define SIOCGIFHWADDR 0x8927
- +#define SIOCGIFSLAVE 0x8929
- +#define SIOCSIFSLAVE 0x8930
- +#define SIOCADDMULTI 0x8931
- +#define SIOCDELMULTI 0x8932
- +#define SIOCGIFINDEX 0x8933
- +#define SIOGIFINDEX SIOCGIFINDEX
- +#define SIOCSIFPFLAGS 0x8934
- +#define SIOCGIFPFLAGS 0x8935
- +#define SIOCDIFADDR 0x8936
- +#define SIOCSIFHWBROADCAST 0x8937
- +#define SIOCGIFCOUNT 0x8938
- +
- +#define SIOCGIFBR 0x8940
- +#define SIOCSIFBR 0x8941
- +
- +#define SIOCGIFTXQLEN 0x8942
- +#define SIOCSIFTXQLEN 0x8943
- +
- +#define SIOCDARP 0x8953
- +#define SIOCGARP 0x8954
- +#define SIOCSARP 0x8955
- +
- +#define SIOCDRARP 0x8960
- +#define SIOCGRARP 0x8961
- +#define SIOCSRARP 0x8962
- +
- +#define SIOCGIFMAP 0x8970
- +#define SIOCSIFMAP 0x8971
- +
- +#define SIOCADDDLCI 0x8980
- +#define SIOCDELDLCI 0x8981
- +
- +#define SIOCDEVPRIVATE 0x89F0
- +#define SIOCPROTOPRIVATE 0x89E0
- diff -Nur musl-0.9.15/arch/x32/bits/io.h musl-git/arch/x32/bits/io.h
- --- musl-0.9.15/arch/x32/bits/io.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/io.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,77 @@
- +static __inline void outb(unsigned char __val, unsigned short __port)
- +{
- + __asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port));
- +}
- +
- +static __inline void outw(unsigned short __val, unsigned short __port)
- +{
- + __asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port));
- +}
- +
- +static __inline void outl(unsigned int __val, unsigned short __port)
- +{
- + __asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port));
- +}
- +
- +static __inline unsigned char inb(unsigned short __port)
- +{
- + unsigned char __val;
- + __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port));
- + return __val;
- +}
- +
- +static __inline unsigned short inw(unsigned short __port)
- +{
- + unsigned short __val;
- + __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port));
- + return __val;
- +}
- +
- +static __inline unsigned int inl(unsigned short __port)
- +{
- + unsigned int __val;
- + __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port));
- + return __val;
- +}
- +
- +static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; outsb"
- + : "+S" (__buf), "+c" (__n)
- + : "d" (__port));
- +}
- +
- +static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; outsw"
- + : "+S" (__buf), "+c" (__n)
- + : "d" (__port));
- +}
- +
- +static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; outsl"
- + : "+S" (__buf), "+c"(__n)
- + : "d" (__port));
- +}
- +
- +static __inline void insb(unsigned short __port, void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; insb"
- + : "+D" (__buf), "+c" (__n)
- + : "d" (__port));
- +}
- +
- +static __inline void insw(unsigned short __port, void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; insw"
- + : "+D" (__buf), "+c" (__n)
- + : "d" (__port));
- +}
- +
- +static __inline void insl(unsigned short __port, void *__buf, unsigned long __n)
- +{
- + __asm__ volatile ("cld; rep; insl"
- + : "+D" (__buf), "+c" (__n)
- + : "d" (__port));
- +}
- diff -Nur musl-0.9.15/arch/x32/bits/ipc.h musl-git/arch/x32/bits/ipc.h
- --- musl-0.9.15/arch/x32/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/ipc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,14 @@
- +struct ipc_perm
- +{
- + key_t __ipc_perm_key;
- + uid_t uid;
- + gid_t gid;
- + uid_t cuid;
- + gid_t cgid;
- + mode_t mode;
- + int __ipc_perm_seq;
- + long long __pad1;
- + long long __pad2;
- +};
- +
- +#define IPC_64 0
- diff -Nur musl-0.9.15/arch/x32/bits/limits.h musl-git/arch/x32/bits/limits.h
- --- musl-0.9.15/arch/x32/bits/limits.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/limits.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,8 @@
- +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define PAGE_SIZE 4096
- +#define LONG_BIT 32
- +#endif
- +
- +#define LONG_MAX 0x7fffffffL
- +#define LLONG_MAX 0x7fffffffffffffffLL
- diff -Nur musl-0.9.15/arch/x32/bits/mman.h musl-git/arch/x32/bits/mman.h
- --- musl-0.9.15/arch/x32/bits/mman.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/mman.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,62 @@
- +#define MAP_FAILED ((void *) -1)
- +
- +#define PROT_NONE 0
- +#define PROT_READ 1
- +#define PROT_WRITE 2
- +#define PROT_EXEC 4
- +#define PROT_GROWSDOWN 0x01000000
- +#define PROT_GROWSUP 0x02000000
- +
- +#define MAP_SHARED 0x01
- +#define MAP_PRIVATE 0x02
- +#define MAP_FIXED 0x10
- +
- +#define MAP_TYPE 0x0f
- +#define MAP_FILE 0x00
- +#define MAP_ANON 0x20
- +#define MAP_ANONYMOUS MAP_ANON
- +#define MAP_32BIT 0x40
- +#define MAP_NORESERVE 0x4000
- +#define MAP_GROWSDOWN 0x0100
- +#define MAP_DENYWRITE 0x0800
- +#define MAP_EXECUTABLE 0x1000
- +#define MAP_LOCKED 0x2000
- +#define MAP_POPULATE 0x8000
- +#define MAP_NONBLOCK 0x10000
- +#define MAP_STACK 0x20000
- +#define MAP_HUGETLB 0x40000
- +
- +#define POSIX_MADV_NORMAL 0
- +#define POSIX_MADV_RANDOM 1
- +#define POSIX_MADV_SEQUENTIAL 2
- +#define POSIX_MADV_WILLNEED 3
- +#define POSIX_MADV_DONTNEED 0
- +
- +#define MS_ASYNC 1
- +#define MS_INVALIDATE 2
- +#define MS_SYNC 4
- +
- +#define MCL_CURRENT 1
- +#define MCL_FUTURE 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define MADV_NORMAL 0
- +#define MADV_RANDOM 1
- +#define MADV_SEQUENTIAL 2
- +#define MADV_WILLNEED 3
- +#define MADV_DONTNEED 4
- +#define MADV_REMOVE 9
- +#define MADV_DONTFORK 10
- +#define MADV_DOFORK 11
- +#define MADV_MERGEABLE 12
- +#define MADV_UNMERGEABLE 13
- +#define MADV_HUGEPAGE 14
- +#define MADV_NOHUGEPAGE 15
- +#define MADV_DONTDUMP 16
- +#define MADV_DODUMP 17
- +#define MADV_HWPOISON 100
- +#define MADV_SOFT_OFFLINE 101
- +
- +#define MREMAP_MAYMOVE 1
- +#define MREMAP_FIXED 2
- +#endif
- diff -Nur musl-0.9.15/arch/x32/bits/msg.h musl-git/arch/x32/bits/msg.h
- --- musl-0.9.15/arch/x32/bits/msg.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/msg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct msqid_ds
- +{
- + struct ipc_perm msg_perm;
- + time_t msg_stime;
- + time_t msg_rtime;
- + time_t msg_ctime;
- + unsigned long msg_cbytes;
- + long __unused1;
- + msgqnum_t msg_qnum;
- + long __unused2;
- + msglen_t msg_qbytes;
- + long __unused3;
- + pid_t msg_lspid;
- + pid_t msg_lrpid;
- + unsigned long long __unused[2];
- +};
- diff -Nur musl-0.9.15/arch/x32/bits/posix.h musl-git/arch/x32/bits/posix.h
- --- musl-0.9.15/arch/x32/bits/posix.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/posix.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,2 @@
- +#define _POSIX_V6_LP64_OFF64 1
- +#define _POSIX_V7_LP64_OFF64 1
- diff -Nur musl-0.9.15/arch/x32/bits/reg.h musl-git/arch/x32/bits/reg.h
- --- musl-0.9.15/arch/x32/bits/reg.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/reg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,29 @@
- +#undef __WORDSIZE
- +#define __WORDSIZE 32
- +#define R15 0
- +#define R14 1
- +#define R13 2
- +#define R12 3
- +#define RBP 4
- +#define RBX 5
- +#define R11 6
- +#define R10 7
- +#define R9 8
- +#define R8 9
- +#define RAX 10
- +#define RCX 11
- +#define RDX 12
- +#define RSI 13
- +#define RDI 14
- +#define ORIG_RAX 15
- +#define RIP 16
- +#define CS 17
- +#define EFLAGS 18
- +#define RSP 19
- +#define SS 20
- +#define FS_BASE 21
- +#define GS_BASE 22
- +#define DS 23
- +#define ES 24
- +#define FS 25
- +#define GS 26
- diff -Nur musl-0.9.15/arch/x32/bits/sem.h musl-git/arch/x32/bits/sem.h
- --- musl-0.9.15/arch/x32/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/x32/bits/setjmp.h musl-git/arch/x32/bits/setjmp.h
- --- musl-0.9.15/arch/x32/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/setjmp.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +typedef unsigned long long __jmp_buf[8];
- diff -Nur musl-0.9.15/arch/x32/bits/shm.h musl-git/arch/x32/bits/shm.h
- --- musl-0.9.15/arch/x32/bits/shm.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,33 @@
- +#define SHMLBA 4096
- +
- +struct shmid_ds
- +{
- + struct ipc_perm shm_perm;
- + size_t shm_segsz;
- + time_t shm_atime;
- + time_t shm_dtime;
- + time_t shm_ctime;
- + pid_t shm_cpid;
- + pid_t shm_lpid;
- + unsigned long shm_nattch;
- + unsigned long __pad0;
- + unsigned long long __pad1;
- + unsigned long long __pad2;
- +};
- +
- +struct shminfo {
- + unsigned long shmmax, __pad0, shmmin, __pad1, shmmni, __pad2,
- + shmseg, __pad3, shmall, __pad4;
- + unsigned long long __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + int __pad_ids;
- + unsigned long shm_tot, __pad0, shm_rss, __pad1, shm_swp, __pad2;
- + unsigned long __swap_attempts, __pad3, __swap_successes, __pad4;
- +}
- +#ifdef __GNUC__
- +__attribute__((__aligned__(8)))
- +#endif
- +;
- diff -Nur musl-0.9.15/arch/x32/bits/signal.h musl-git/arch/x32/bits/signal.h
- --- musl-0.9.15/arch/x32/bits/signal.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/signal.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,119 @@
- +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +
- +#ifdef _GNU_SOURCE
- +#define REG_R8 0
- +#define REG_R9 1
- +#define REG_R10 2
- +#define REG_R11 3
- +#define REG_R12 4
- +#define REG_R13 5
- +#define REG_R14 6
- +#define REG_R15 7
- +#define REG_RDI 8
- +#define REG_RSI 9
- +#define REG_RBP 10
- +#define REG_RBX 11
- +#define REG_RDX 12
- +#define REG_RAX 13
- +#define REG_RCX 14
- +#define REG_RSP 15
- +#define REG_RIP 16
- +#define REG_EFL 17
- +#define REG_CSGSFS 18
- +#define REG_ERR 19
- +#define REG_TRAPNO 20
- +#define REG_OLDMASK 21
- +#define REG_CR2 22
- +#endif
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +typedef long long greg_t, gregset_t[23];
- +typedef struct _fpstate {
- + unsigned short cwd, swd, ftw, fop;
- + unsigned long long rip, rdp;
- + unsigned mxcsr, mxcr_mask;
- + struct {
- + unsigned short significand[4], exponent, padding[3];
- + } _st[8];
- + struct {
- + unsigned element[4];
- + } _xmm[16];
- + unsigned padding[24];
- +} *fpregset_t;
- +struct sigcontext {
- + unsigned long long r8, r9, r10, r11, r12, r13, r14, r15;
- + unsigned long long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
- + unsigned short cs, gs, fs, __pad0;
- + unsigned long long err, trapno, oldmask, cr2;
- + struct _fpstate *fpstate;
- + unsigned long long __reserved1[8];
- +};
- +typedef struct {
- + gregset_t gregs;
- + fpregset_t fpregs;
- + unsigned long long __reserved1[8];
- +} mcontext_t;
- +#else
- +typedef struct {
- + unsigned long long __space[32];
- +} mcontext_t;
- +#endif
- +
- +typedef struct __ucontext {
- + unsigned long uc_flags;
- + struct __ucontext *uc_link;
- + stack_t uc_stack;
- + mcontext_t uc_mcontext;
- + sigset_t uc_sigmask;
- + unsigned long long __fpregs_mem[64];
- +} ucontext_t;
- +
- +#define SA_NOCLDSTOP 1
- +#define SA_NOCLDWAIT 2
- +#define SA_SIGINFO 4
- +#define SA_ONSTACK 0x08000000
- +#define SA_RESTART 0x10000000
- +#define SA_NODEFER 0x40000000
- +#define SA_RESETHAND 0x80000000
- +#define SA_RESTORER 0x04000000
- +
- +#endif
- +
- +#define SIGHUP 1
- +#define SIGINT 2
- +#define SIGQUIT 3
- +#define SIGILL 4
- +#define SIGTRAP 5
- +#define SIGABRT 6
- +#define SIGIOT SIGABRT
- +#define SIGBUS 7
- +#define SIGFPE 8
- +#define SIGKILL 9
- +#define SIGUSR1 10
- +#define SIGSEGV 11
- +#define SIGUSR2 12
- +#define SIGPIPE 13
- +#define SIGALRM 14
- +#define SIGTERM 15
- +#define SIGSTKFLT 16
- +#define SIGCHLD 17
- +#define SIGCONT 18
- +#define SIGSTOP 19
- +#define SIGTSTP 20
- +#define SIGTTIN 21
- +#define SIGTTOU 22
- +#define SIGURG 23
- +#define SIGXCPU 24
- +#define SIGXFSZ 25
- +#define SIGVTALRM 26
- +#define SIGPROF 27
- +#define SIGWINCH 28
- +#define SIGIO 29
- +#define SIGPOLL 29
- +#define SIGPWR 30
- +#define SIGSYS 31
- +#define SIGUNUSED SIGSYS
- +
- +#define _NSIG 65
- +
- diff -Nur musl-0.9.15/arch/x32/bits/socket.h musl-git/arch/x32/bits/socket.h
- --- musl-0.9.15/arch/x32/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/socket.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,18 @@
- +struct msghdr
- +{
- + void *msg_name;
- + socklen_t msg_namelen;
- + struct iovec *msg_iov;
- + int msg_iovlen, __pad1;
- + void *msg_control;
- + socklen_t msg_controllen, __pad2;
- + int msg_flags;
- +};
- +
- +struct cmsghdr
- +{
- + socklen_t cmsg_len;
- + int __pad1;
- + int cmsg_level;
- + int cmsg_type;
- +};
- diff -Nur musl-0.9.15/arch/x32/bits/statfs.h musl-git/arch/x32/bits/statfs.h
- --- musl-0.9.15/arch/x32/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/statfs.h 2014-03-18 13:19:59.000000000 +0100
- @@ -0,0 +1,9 @@
- +struct statfs {
- + unsigned long f_type, __pad0, f_bsize, __pad1;
- + fsblkcnt_t f_blocks, f_bfree, f_bavail;
- + fsfilcnt_t f_files, f_ffree;
- + fsid_t f_fsid;
- + unsigned long f_namelen, __pad2, f_frsize, __pad3;
- + unsigned long f_flags, __pad4;
- + unsigned long long f_spare[4];
- +};
- diff -Nur musl-0.9.15/arch/x32/bits/stat.h musl-git/arch/x32/bits/stat.h
- --- musl-0.9.15/arch/x32/bits/stat.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/stat.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +/* copied from kernel definition, but with padding replaced
- + * by the corresponding correctly-sized userspace types. */
- +
- +struct stat {
- + dev_t st_dev;
- + ino_t st_ino;
- + nlink_t st_nlink;
- +
- + mode_t st_mode;
- + uid_t st_uid;
- + gid_t st_gid;
- + unsigned int __pad0;
- + dev_t st_rdev;
- + off_t st_size;
- + blksize_t st_blksize;
- + blkcnt_t st_blocks;
- +
- + struct timespec st_atim;
- + struct timespec st_mtim;
- + struct timespec st_ctim;
- + long long __unused[3];
- +};
- diff -Nur musl-0.9.15/arch/x32/bits/stdarg.h musl-git/arch/x32/bits/stdarg.h
- --- musl-0.9.15/arch/x32/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/stdarg.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,4 @@
- +#define va_start(v,l) __builtin_va_start(v,l)
- +#define va_end(v) __builtin_va_end(v)
- +#define va_arg(v,l) __builtin_va_arg(v,l)
- +#define va_copy(d,s) __builtin_va_copy(d,s)
- diff -Nur musl-0.9.15/arch/x32/bits/stdint.h musl-git/arch/x32/bits/stdint.h
- --- musl-0.9.15/arch/x32/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/stdint.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,20 @@
- +typedef int32_t int_fast16_t;
- +typedef int32_t int_fast32_t;
- +typedef uint32_t uint_fast16_t;
- +typedef uint32_t uint_fast32_t;
- +
- +#define INT_FAST16_MIN INT32_MIN
- +#define INT_FAST32_MIN INT32_MIN
- +
- +#define INT_FAST16_MAX INT32_MAX
- +#define INT_FAST32_MAX INT32_MAX
- +
- +#define UINT_FAST16_MAX UINT32_MAX
- +#define UINT_FAST32_MAX UINT32_MAX
- +
- +#define INTPTR_MIN INT32_MIN
- +#define INTPTR_MAX INT32_MAX
- +#define UINTPTR_MAX UINT32_MAX
- +#define PTRDIFF_MIN INT32_MIN
- +#define PTRDIFF_MAX INT32_MAX
- +#define SIZE_MAX UINT32_MAX
- diff -Nur musl-0.9.15/arch/x32/bits/syscall.h musl-git/arch/x32/bits/syscall.h
- --- musl-0.9.15/arch/x32/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/syscall.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,634 @@
- +#define __X32_SYSCALL_BIT 0x40000000
- +#define __NR_read (__X32_SYSCALL_BIT + 0)
- +#define __NR_write (__X32_SYSCALL_BIT + 1)
- +#define __NR_open (__X32_SYSCALL_BIT + 2)
- +#define __NR_close (__X32_SYSCALL_BIT + 3)
- +#define __NR_stat (__X32_SYSCALL_BIT + 4)
- +#define __NR_fstat (__X32_SYSCALL_BIT + 5)
- +#define __NR_lstat (__X32_SYSCALL_BIT + 6)
- +#define __NR_poll (__X32_SYSCALL_BIT + 7)
- +#define __NR_lseek (__X32_SYSCALL_BIT + 8)
- +#define __NR_mmap (__X32_SYSCALL_BIT + 9)
- +#define __NR_mprotect (__X32_SYSCALL_BIT + 10)
- +#define __NR_munmap (__X32_SYSCALL_BIT + 11)
- +#define __NR_brk (__X32_SYSCALL_BIT + 12)
- +#define __NR_rt_sigprocmask (__X32_SYSCALL_BIT + 14)
- +#define __NR_pread64 (__X32_SYSCALL_BIT + 17)
- +#define __NR_pwrite64 (__X32_SYSCALL_BIT + 18)
- +#define __NR_access (__X32_SYSCALL_BIT + 21)
- +#define __NR_pipe (__X32_SYSCALL_BIT + 22)
- +#define __NR_select (__X32_SYSCALL_BIT + 23)
- +#define __NR_sched_yield (__X32_SYSCALL_BIT + 24)
- +#define __NR_mremap (__X32_SYSCALL_BIT + 25)
- +#define __NR_msync (__X32_SYSCALL_BIT + 26)
- +#define __NR_mincore (__X32_SYSCALL_BIT + 27)
- +#define __NR_madvise (__X32_SYSCALL_BIT + 28)
- +#define __NR_shmget (__X32_SYSCALL_BIT + 29)
- +#define __NR_shmat (__X32_SYSCALL_BIT + 30)
- +#define __NR_shmctl (__X32_SYSCALL_BIT + 31)
- +#define __NR_dup (__X32_SYSCALL_BIT + 32)
- +#define __NR_dup2 (__X32_SYSCALL_BIT + 33)
- +#define __NR_pause (__X32_SYSCALL_BIT + 34)
- +#define __NR_nanosleep (__X32_SYSCALL_BIT + 35)
- +#define __NR_getitimer (__X32_SYSCALL_BIT + 36)
- +#define __NR_alarm (__X32_SYSCALL_BIT + 37)
- +#define __NR_setitimer (__X32_SYSCALL_BIT + 38)
- +#define __NR_getpid (__X32_SYSCALL_BIT + 39)
- +#define __NR_sendfile (__X32_SYSCALL_BIT + 40)
- +#define __NR_socket (__X32_SYSCALL_BIT + 41)
- +#define __NR_connect (__X32_SYSCALL_BIT + 42)
- +#define __NR_accept (__X32_SYSCALL_BIT + 43)
- +#define __NR_sendto (__X32_SYSCALL_BIT + 44)
- +#define __NR_shutdown (__X32_SYSCALL_BIT + 48)
- +#define __NR_bind (__X32_SYSCALL_BIT + 49)
- +#define __NR_listen (__X32_SYSCALL_BIT + 50)
- +#define __NR_getsockname (__X32_SYSCALL_BIT + 51)
- +#define __NR_getpeername (__X32_SYSCALL_BIT + 52)
- +#define __NR_socketpair (__X32_SYSCALL_BIT + 53)
- +#define __NR_clone (__X32_SYSCALL_BIT + 56)
- +#define __NR_fork (__X32_SYSCALL_BIT + 57)
- +#define __NR_vfork (__X32_SYSCALL_BIT + 58)
- +#define __NR_exit (__X32_SYSCALL_BIT + 60)
- +#define __NR_wait4 (__X32_SYSCALL_BIT + 61)
- +#define __NR_kill (__X32_SYSCALL_BIT + 62)
- +#define __NR_uname (__X32_SYSCALL_BIT + 63)
- +#define __NR_semget (__X32_SYSCALL_BIT + 64)
- +#define __NR_semop (__X32_SYSCALL_BIT + 65)
- +#define __NR_semctl (__X32_SYSCALL_BIT + 66)
- +#define __NR_shmdt (__X32_SYSCALL_BIT + 67)
- +#define __NR_msgget (__X32_SYSCALL_BIT + 68)
- +#define __NR_msgsnd (__X32_SYSCALL_BIT + 69)
- +#define __NR_msgrcv (__X32_SYSCALL_BIT + 70)
- +#define __NR_msgctl (__X32_SYSCALL_BIT + 71)
- +#define __NR_fcntl (__X32_SYSCALL_BIT + 72)
- +#define __NR_flock (__X32_SYSCALL_BIT + 73)
- +#define __NR_fsync (__X32_SYSCALL_BIT + 74)
- +#define __NR_fdatasync (__X32_SYSCALL_BIT + 75)
- +#define __NR_truncate (__X32_SYSCALL_BIT + 76)
- +#define __NR_ftruncate (__X32_SYSCALL_BIT + 77)
- +#define __NR_getdents (__X32_SYSCALL_BIT + 78)
- +#define __NR_getcwd (__X32_SYSCALL_BIT + 79)
- +#define __NR_chdir (__X32_SYSCALL_BIT + 80)
- +#define __NR_fchdir (__X32_SYSCALL_BIT + 81)
- +#define __NR_rename (__X32_SYSCALL_BIT + 82)
- +#define __NR_mkdir (__X32_SYSCALL_BIT + 83)
- +#define __NR_rmdir (__X32_SYSCALL_BIT + 84)
- +#define __NR_creat (__X32_SYSCALL_BIT + 85)
- +#define __NR_link (__X32_SYSCALL_BIT + 86)
- +#define __NR_unlink (__X32_SYSCALL_BIT + 87)
- +#define __NR_symlink (__X32_SYSCALL_BIT + 88)
- +#define __NR_readlink (__X32_SYSCALL_BIT + 89)
- +#define __NR_chmod (__X32_SYSCALL_BIT + 90)
- +#define __NR_fchmod (__X32_SYSCALL_BIT + 91)
- +#define __NR_chown (__X32_SYSCALL_BIT + 92)
- +#define __NR_fchown (__X32_SYSCALL_BIT + 93)
- +#define __NR_lchown (__X32_SYSCALL_BIT + 94)
- +#define __NR_umask (__X32_SYSCALL_BIT + 95)
- +#define __NR_gettimeofday (__X32_SYSCALL_BIT + 96)
- +#define __NR_getrlimit (__X32_SYSCALL_BIT + 97)
- +#define __NR_getrusage (__X32_SYSCALL_BIT + 98)
- +#define __NR_sysinfo (__X32_SYSCALL_BIT + 99)
- +#define __NR_times (__X32_SYSCALL_BIT + 100)
- +#define __NR_getuid (__X32_SYSCALL_BIT + 102)
- +#define __NR_syslog (__X32_SYSCALL_BIT + 103)
- +#define __NR_getgid (__X32_SYSCALL_BIT + 104)
- +#define __NR_setuid (__X32_SYSCALL_BIT + 105)
- +#define __NR_setgid (__X32_SYSCALL_BIT + 106)
- +#define __NR_geteuid (__X32_SYSCALL_BIT + 107)
- +#define __NR_getegid (__X32_SYSCALL_BIT + 108)
- +#define __NR_setpgid (__X32_SYSCALL_BIT + 109)
- +#define __NR_getppid (__X32_SYSCALL_BIT + 110)
- +#define __NR_getpgrp (__X32_SYSCALL_BIT + 111)
- +#define __NR_setsid (__X32_SYSCALL_BIT + 112)
- +#define __NR_setreuid (__X32_SYSCALL_BIT + 113)
- +#define __NR_setregid (__X32_SYSCALL_BIT + 114)
- +#define __NR_getgroups (__X32_SYSCALL_BIT + 115)
- +#define __NR_setgroups (__X32_SYSCALL_BIT + 116)
- +#define __NR_setresuid (__X32_SYSCALL_BIT + 117)
- +#define __NR_getresuid (__X32_SYSCALL_BIT + 118)
- +#define __NR_setresgid (__X32_SYSCALL_BIT + 119)
- +#define __NR_getresgid (__X32_SYSCALL_BIT + 120)
- +#define __NR_getpgid (__X32_SYSCALL_BIT + 121)
- +#define __NR_setfsuid (__X32_SYSCALL_BIT + 122)
- +#define __NR_setfsgid (__X32_SYSCALL_BIT + 123)
- +#define __NR_getsid (__X32_SYSCALL_BIT + 124)
- +#define __NR_capget (__X32_SYSCALL_BIT + 125)
- +#define __NR_capset (__X32_SYSCALL_BIT + 126)
- +#define __NR_rt_sigsuspend (__X32_SYSCALL_BIT + 130)
- +#define __NR_utime (__X32_SYSCALL_BIT + 132)
- +#define __NR_mknod (__X32_SYSCALL_BIT + 133)
- +#define __NR_personality (__X32_SYSCALL_BIT + 135)
- +#define __NR_ustat (__X32_SYSCALL_BIT + 136)
- +#define __NR_statfs (__X32_SYSCALL_BIT + 137)
- +#define __NR_fstatfs (__X32_SYSCALL_BIT + 138)
- +#define __NR_sysfs (__X32_SYSCALL_BIT + 139)
- +#define __NR_getpriority (__X32_SYSCALL_BIT + 140)
- +#define __NR_setpriority (__X32_SYSCALL_BIT + 141)
- +#define __NR_sched_setparam (__X32_SYSCALL_BIT + 142)
- +#define __NR_sched_getparam (__X32_SYSCALL_BIT + 143)
- +#define __NR_sched_setscheduler (__X32_SYSCALL_BIT + 144)
- +#define __NR_sched_getscheduler (__X32_SYSCALL_BIT + 145)
- +#define __NR_sched_get_priority_max (__X32_SYSCALL_BIT + 146)
- +#define __NR_sched_get_priority_min (__X32_SYSCALL_BIT + 147)
- +#define __NR_sched_rr_get_interval (__X32_SYSCALL_BIT + 148)
- +#define __NR_mlock (__X32_SYSCALL_BIT + 149)
- +#define __NR_munlock (__X32_SYSCALL_BIT + 150)
- +#define __NR_mlockall (__X32_SYSCALL_BIT + 151)
- +#define __NR_munlockall (__X32_SYSCALL_BIT + 152)
- +#define __NR_vhangup (__X32_SYSCALL_BIT + 153)
- +#define __NR_modify_ldt (__X32_SYSCALL_BIT + 154)
- +#define __NR_pivot_root (__X32_SYSCALL_BIT + 155)
- +#define __NR_prctl (__X32_SYSCALL_BIT + 157)
- +#define __NR_arch_prctl (__X32_SYSCALL_BIT + 158)
- +#define __NR_adjtimex (__X32_SYSCALL_BIT + 159)
- +#define __NR_setrlimit (__X32_SYSCALL_BIT + 160)
- +#define __NR_chroot (__X32_SYSCALL_BIT + 161)
- +#define __NR_sync (__X32_SYSCALL_BIT + 162)
- +#define __NR_acct (__X32_SYSCALL_BIT + 163)
- +#define __NR_settimeofday (__X32_SYSCALL_BIT + 164)
- +#define __NR_mount (__X32_SYSCALL_BIT + 165)
- +#define __NR_umount2 (__X32_SYSCALL_BIT + 166)
- +#define __NR_swapon (__X32_SYSCALL_BIT + 167)
- +#define __NR_swapoff (__X32_SYSCALL_BIT + 168)
- +#define __NR_reboot (__X32_SYSCALL_BIT + 169)
- +#define __NR_sethostname (__X32_SYSCALL_BIT + 170)
- +#define __NR_setdomainname (__X32_SYSCALL_BIT + 171)
- +#define __NR_iopl (__X32_SYSCALL_BIT + 172)
- +#define __NR_ioperm (__X32_SYSCALL_BIT + 173)
- +#define __NR_init_module (__X32_SYSCALL_BIT + 175)
- +#define __NR_delete_module (__X32_SYSCALL_BIT + 176)
- +#define __NR_quotactl (__X32_SYSCALL_BIT + 179)
- +#define __NR_getpmsg (__X32_SYSCALL_BIT + 181)
- +#define __NR_putpmsg (__X32_SYSCALL_BIT + 182)
- +#define __NR_afs_syscall (__X32_SYSCALL_BIT + 183)
- +#define __NR_tuxcall (__X32_SYSCALL_BIT + 184)
- +#define __NR_security (__X32_SYSCALL_BIT + 185)
- +#define __NR_gettid (__X32_SYSCALL_BIT + 186)
- +#define __NR_readahead (__X32_SYSCALL_BIT + 187)
- +#define __NR_setxattr (__X32_SYSCALL_BIT + 188)
- +#define __NR_lsetxattr (__X32_SYSCALL_BIT + 189)
- +#define __NR_fsetxattr (__X32_SYSCALL_BIT + 190)
- +#define __NR_getxattr (__X32_SYSCALL_BIT + 191)
- +#define __NR_lgetxattr (__X32_SYSCALL_BIT + 192)
- +#define __NR_fgetxattr (__X32_SYSCALL_BIT + 193)
- +#define __NR_listxattr (__X32_SYSCALL_BIT + 194)
- +#define __NR_llistxattr (__X32_SYSCALL_BIT + 195)
- +#define __NR_flistxattr (__X32_SYSCALL_BIT + 196)
- +#define __NR_removexattr (__X32_SYSCALL_BIT + 197)
- +#define __NR_lremovexattr (__X32_SYSCALL_BIT + 198)
- +#define __NR_fremovexattr (__X32_SYSCALL_BIT + 199)
- +#define __NR_tkill (__X32_SYSCALL_BIT + 200)
- +#define __NR_time (__X32_SYSCALL_BIT + 201)
- +#define __NR_futex (__X32_SYSCALL_BIT + 202)
- +#define __NR_sched_setaffinity (__X32_SYSCALL_BIT + 203)
- +#define __NR_sched_getaffinity (__X32_SYSCALL_BIT + 204)
- +#define __NR_io_setup (__X32_SYSCALL_BIT + 206)
- +#define __NR_io_destroy (__X32_SYSCALL_BIT + 207)
- +#define __NR_io_getevents (__X32_SYSCALL_BIT + 208)
- +#define __NR_io_submit (__X32_SYSCALL_BIT + 209)
- +#define __NR_io_cancel (__X32_SYSCALL_BIT + 210)
- +#define __NR_lookup_dcookie (__X32_SYSCALL_BIT + 212)
- +#define __NR_epoll_create (__X32_SYSCALL_BIT + 213)
- +#define __NR_remap_file_pages (__X32_SYSCALL_BIT + 216)
- +#define __NR_getdents64 (__X32_SYSCALL_BIT + 217)
- +#define __NR_set_tid_address (__X32_SYSCALL_BIT + 218)
- +#define __NR_restart_syscall (__X32_SYSCALL_BIT + 219)
- +#define __NR_semtimedop (__X32_SYSCALL_BIT + 220)
- +#define __NR_fadvise64 (__X32_SYSCALL_BIT + 221)
- +#define __NR_timer_settime (__X32_SYSCALL_BIT + 223)
- +#define __NR_timer_gettime (__X32_SYSCALL_BIT + 224)
- +#define __NR_timer_getoverrun (__X32_SYSCALL_BIT + 225)
- +#define __NR_timer_delete (__X32_SYSCALL_BIT + 226)
- +#define __NR_clock_settime (__X32_SYSCALL_BIT + 227)
- +#define __NR_clock_gettime (__X32_SYSCALL_BIT + 228)
- +#define __NR_clock_getres (__X32_SYSCALL_BIT + 229)
- +#define __NR_clock_nanosleep (__X32_SYSCALL_BIT + 230)
- +#define __NR_exit_group (__X32_SYSCALL_BIT + 231)
- +#define __NR_epoll_wait (__X32_SYSCALL_BIT + 232)
- +#define __NR_epoll_ctl (__X32_SYSCALL_BIT + 233)
- +#define __NR_tgkill (__X32_SYSCALL_BIT + 234)
- +#define __NR_utimes (__X32_SYSCALL_BIT + 235)
- +#define __NR_mbind (__X32_SYSCALL_BIT + 237)
- +#define __NR_set_mempolicy (__X32_SYSCALL_BIT + 238)
- +#define __NR_get_mempolicy (__X32_SYSCALL_BIT + 239)
- +#define __NR_mq_open (__X32_SYSCALL_BIT + 240)
- +#define __NR_mq_unlink (__X32_SYSCALL_BIT + 241)
- +#define __NR_mq_timedsend (__X32_SYSCALL_BIT + 242)
- +#define __NR_mq_timedreceive (__X32_SYSCALL_BIT + 243)
- +#define __NR_mq_getsetattr (__X32_SYSCALL_BIT + 245)
- +#define __NR_add_key (__X32_SYSCALL_BIT + 248)
- +#define __NR_request_key (__X32_SYSCALL_BIT + 249)
- +#define __NR_keyctl (__X32_SYSCALL_BIT + 250)
- +#define __NR_ioprio_set (__X32_SYSCALL_BIT + 251)
- +#define __NR_ioprio_get (__X32_SYSCALL_BIT + 252)
- +#define __NR_inotify_init (__X32_SYSCALL_BIT + 253)
- +#define __NR_inotify_add_watch (__X32_SYSCALL_BIT + 254)
- +#define __NR_inotify_rm_watch (__X32_SYSCALL_BIT + 255)
- +#define __NR_migrate_pages (__X32_SYSCALL_BIT + 256)
- +#define __NR_openat (__X32_SYSCALL_BIT + 257)
- +#define __NR_mkdirat (__X32_SYSCALL_BIT + 258)
- +#define __NR_mknodat (__X32_SYSCALL_BIT + 259)
- +#define __NR_fchownat (__X32_SYSCALL_BIT + 260)
- +#define __NR_futimesat (__X32_SYSCALL_BIT + 261)
- +#define __NR_newfstatat (__X32_SYSCALL_BIT + 262)
- +#define __NR_unlinkat (__X32_SYSCALL_BIT + 263)
- +#define __NR_renameat (__X32_SYSCALL_BIT + 264)
- +#define __NR_linkat (__X32_SYSCALL_BIT + 265)
- +#define __NR_symlinkat (__X32_SYSCALL_BIT + 266)
- +#define __NR_readlinkat (__X32_SYSCALL_BIT + 267)
- +#define __NR_fchmodat (__X32_SYSCALL_BIT + 268)
- +#define __NR_faccessat (__X32_SYSCALL_BIT + 269)
- +#define __NR_pselect6 (__X32_SYSCALL_BIT + 270)
- +#define __NR_ppoll (__X32_SYSCALL_BIT + 271)
- +#define __NR_unshare (__X32_SYSCALL_BIT + 272)
- +#define __NR_splice (__X32_SYSCALL_BIT + 275)
- +#define __NR_tee (__X32_SYSCALL_BIT + 276)
- +#define __NR_sync_file_range (__X32_SYSCALL_BIT + 277)
- +#define __NR_utimensat (__X32_SYSCALL_BIT + 280)
- +#define __NR_epoll_pwait (__X32_SYSCALL_BIT + 281)
- +#define __NR_signalfd (__X32_SYSCALL_BIT + 282)
- +#define __NR_timerfd_create (__X32_SYSCALL_BIT + 283)
- +#define __NR_eventfd (__X32_SYSCALL_BIT + 284)
- +#define __NR_fallocate (__X32_SYSCALL_BIT + 285)
- +#define __NR_timerfd_settime (__X32_SYSCALL_BIT + 286)
- +#define __NR_timerfd_gettime (__X32_SYSCALL_BIT + 287)
- +#define __NR_accept4 (__X32_SYSCALL_BIT + 288)
- +#define __NR_signalfd4 (__X32_SYSCALL_BIT + 289)
- +#define __NR_eventfd2 (__X32_SYSCALL_BIT + 290)
- +#define __NR_epoll_create1 (__X32_SYSCALL_BIT + 291)
- +#define __NR_dup3 (__X32_SYSCALL_BIT + 292)
- +#define __NR_pipe2 (__X32_SYSCALL_BIT + 293)
- +#define __NR_inotify_init1 (__X32_SYSCALL_BIT + 294)
- +#define __NR_perf_event_open (__X32_SYSCALL_BIT + 298)
- +#define __NR_fanotify_init (__X32_SYSCALL_BIT + 300)
- +#define __NR_fanotify_mark (__X32_SYSCALL_BIT + 301)
- +#define __NR_prlimit64 (__X32_SYSCALL_BIT + 302)
- +#define __NR_name_to_handle_at (__X32_SYSCALL_BIT + 303)
- +#define __NR_open_by_handle_at (__X32_SYSCALL_BIT + 304)
- +#define __NR_clock_adjtime (__X32_SYSCALL_BIT + 305)
- +#define __NR_syncfs (__X32_SYSCALL_BIT + 306)
- +#define __NR_setns (__X32_SYSCALL_BIT + 308)
- +#define __NR_getcpu (__X32_SYSCALL_BIT + 309)
- +#define __NR_kcmp (__X32_SYSCALL_BIT + 312)
- +#define __NR_finit_module (__X32_SYSCALL_BIT + 313)
- +#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
- +#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
- +#define __NR_ioctl (__X32_SYSCALL_BIT + 514)
- +#define __NR_readv (__X32_SYSCALL_BIT + 515)
- +#define __NR_writev (__X32_SYSCALL_BIT + 516)
- +#define __NR_recvfrom (__X32_SYSCALL_BIT + 517)
- +#define __NR_sendmsg (__X32_SYSCALL_BIT + 518)
- +#define __NR_recvmsg (__X32_SYSCALL_BIT + 519)
- +#define __NR_execve (__X32_SYSCALL_BIT + 520)
- +#define __NR_ptrace (__X32_SYSCALL_BIT + 521)
- +#define __NR_rt_sigpending (__X32_SYSCALL_BIT + 522)
- +#define __NR_rt_sigtimedwait (__X32_SYSCALL_BIT + 523)
- +#define __NR_rt_sigqueueinfo (__X32_SYSCALL_BIT + 524)
- +#define __NR_sigaltstack (__X32_SYSCALL_BIT + 525)
- +#define __NR_timer_create (__X32_SYSCALL_BIT + 526)
- +#define __NR_mq_notify (__X32_SYSCALL_BIT + 527)
- +#define __NR_kexec_load (__X32_SYSCALL_BIT + 528)
- +#define __NR_waitid (__X32_SYSCALL_BIT + 529)
- +#define __NR_set_robust_list (__X32_SYSCALL_BIT + 530)
- +#define __NR_get_robust_list (__X32_SYSCALL_BIT + 531)
- +#define __NR_vmsplice (__X32_SYSCALL_BIT + 532)
- +#define __NR_move_pages (__X32_SYSCALL_BIT + 533)
- +#define __NR_preadv (__X32_SYSCALL_BIT + 534)
- +#define __NR_pwritev (__X32_SYSCALL_BIT + 535)
- +#define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536)
- +#define __NR_recvmmsg (__X32_SYSCALL_BIT + 537)
- +#define __NR_sendmmsg (__X32_SYSCALL_BIT + 538)
- +#define __NR_process_vm_readv (__X32_SYSCALL_BIT + 539)
- +#define __NR_process_vm_writev (__X32_SYSCALL_BIT + 540)
- +#define __NR_setsockopt (__X32_SYSCALL_BIT + 541)
- +#define __NR_getsockopt (__X32_SYSCALL_BIT + 542)
- +
- +#undef __NR_fstatat
- +#undef __NR_pread
- +#undef __NR_pwrite
- +#undef __NR_getdents
- +#define __NR_fstatat __NR_newfstatat
- +#define __NR_pread __NR_pread64
- +#define __NR_pwrite __NR_pwrite64
- +#define __NR_getdents __NR_getdents64
- +#define __NR_fadvise __NR_fadvise64
- +
- +
- +
- +/* Repeat with SYS_ prefix */
- +
- +
- +
- +#define SYS_read __NR_read
- +#define SYS_write __NR_write
- +#define SYS_open __NR_open
- +#define SYS_close __NR_close
- +#define SYS_stat __NR_stat
- +#define SYS_fstat __NR_fstat
- +#define SYS_lstat __NR_lstat
- +#define SYS_poll __NR_poll
- +#define SYS_lseek __NR_lseek
- +#define SYS_mmap __NR_mmap
- +#define SYS_mprotect __NR_mprotect
- +#define SYS_munmap __NR_munmap
- +#define SYS_brk __NR_brk
- +#define SYS_rt_sigprocmask __NR_rt_sigprocmask
- +#define SYS_pread64 __NR_pread64
- +#define SYS_pwrite64 __NR_pwrite64
- +#define SYS_access __NR_access
- +#define SYS_pipe __NR_pipe
- +#define SYS_select __NR_select
- +#define SYS_sched_yield __NR_sched_yield
- +#define SYS_mremap __NR_mremap
- +#define SYS_msync __NR_msync
- +#define SYS_mincore __NR_mincore
- +#define SYS_madvise __NR_madvise
- +#define SYS_shmget __NR_shmget
- +#define SYS_shmat __NR_shmat
- +#define SYS_shmctl __NR_shmctl
- +#define SYS_dup __NR_dup
- +#define SYS_dup2 __NR_dup2
- +#define SYS_pause __NR_pause
- +#define SYS_nanosleep __NR_nanosleep
- +#define SYS_getitimer __NR_getitimer
- +#define SYS_alarm __NR_alarm
- +#define SYS_setitimer __NR_setitimer
- +#define SYS_getpid __NR_getpid
- +#define SYS_sendfile __NR_sendfile
- +#define SYS_socket __NR_socket
- +#define SYS_connect __NR_connect
- +#define SYS_accept __NR_accept
- +#define SYS_sendto __NR_sendto
- +#define SYS_shutdown __NR_shutdown
- +#define SYS_bind __NR_bind
- +#define SYS_listen __NR_listen
- +#define SYS_getsockname __NR_getsockname
- +#define SYS_getpeername __NR_getpeername
- +#define SYS_socketpair __NR_socketpair
- +#define SYS_clone __NR_clone
- +#define SYS_fork __NR_fork
- +#define SYS_vfork __NR_vfork
- +#define SYS_exit __NR_exit
- +#define SYS_wait4 __NR_wait4
- +#define SYS_kill __NR_kill
- +#define SYS_uname __NR_uname
- +#define SYS_semget __NR_semget
- +#define SYS_semop __NR_semop
- +#define SYS_semctl __NR_semctl
- +#define SYS_shmdt __NR_shmdt
- +#define SYS_msgget __NR_msgget
- +#define SYS_msgsnd __NR_msgsnd
- +#define SYS_msgrcv __NR_msgrcv
- +#define SYS_msgctl __NR_msgctl
- +#define SYS_fcntl __NR_fcntl
- +#define SYS_flock __NR_flock
- +#define SYS_fsync __NR_fsync
- +#define SYS_fdatasync __NR_fdatasync
- +#define SYS_truncate __NR_truncate
- +#define SYS_ftruncate __NR_ftruncate
- +#define SYS_getdents __NR_getdents
- +#define SYS_getcwd __NR_getcwd
- +#define SYS_chdir __NR_chdir
- +#define SYS_fchdir __NR_fchdir
- +#define SYS_rename __NR_rename
- +#define SYS_mkdir __NR_mkdir
- +#define SYS_rmdir __NR_rmdir
- +#define SYS_creat __NR_creat
- +#define SYS_link __NR_link
- +#define SYS_unlink __NR_unlink
- +#define SYS_symlink __NR_symlink
- +#define SYS_readlink __NR_readlink
- +#define SYS_chmod __NR_chmod
- +#define SYS_fchmod __NR_fchmod
- +#define SYS_chown __NR_chown
- +#define SYS_fchown __NR_fchown
- +#define SYS_lchown __NR_lchown
- +#define SYS_umask __NR_umask
- +#define SYS_gettimeofday __NR_gettimeofday
- +#define SYS_getrlimit __NR_getrlimit
- +#define SYS_getrusage __NR_getrusage
- +#define SYS_sysinfo __NR_sysinfo
- +#define SYS_times __NR_times
- +#define SYS_getuid __NR_getuid
- +#define SYS_syslog __NR_syslog
- +#define SYS_getgid __NR_getgid
- +#define SYS_setuid __NR_setuid
- +#define SYS_setgid __NR_setgid
- +#define SYS_geteuid __NR_geteuid
- +#define SYS_getegid __NR_getegid
- +#define SYS_setpgid __NR_setpgid
- +#define SYS_getppid __NR_getppid
- +#define SYS_getpgrp __NR_getpgrp
- +#define SYS_setsid __NR_setsid
- +#define SYS_setreuid __NR_setreuid
- +#define SYS_setregid __NR_setregid
- +#define SYS_getgroups __NR_getgroups
- +#define SYS_setgroups __NR_setgroups
- +#define SYS_setresuid __NR_setresuid
- +#define SYS_getresuid __NR_getresuid
- +#define SYS_setresgid __NR_setresgid
- +#define SYS_getresgid __NR_getresgid
- +#define SYS_getpgid __NR_getpgid
- +#define SYS_setfsuid __NR_setfsuid
- +#define SYS_setfsgid __NR_setfsgid
- +#define SYS_getsid __NR_getsid
- +#define SYS_capget __NR_capget
- +#define SYS_capset __NR_capset
- +#define SYS_rt_sigsuspend __NR_rt_sigsuspend
- +#define SYS_utime __NR_utime
- +#define SYS_mknod __NR_mknod
- +#define SYS_personality __NR_personality
- +#define SYS_ustat __NR_ustat
- +#define SYS_statfs __NR_statfs
- +#define SYS_fstatfs __NR_fstatfs
- +#define SYS_sysfs __NR_sysfs
- +#define SYS_getpriority __NR_getpriority
- +#define SYS_setpriority __NR_setpriority
- +#define SYS_sched_setparam __NR_sched_setparam
- +#define SYS_sched_getparam __NR_sched_getparam
- +#define SYS_sched_setscheduler __NR_sched_setscheduler
- +#define SYS_sched_getscheduler __NR_sched_getscheduler
- +#define SYS_sched_get_priority_max __NR_sched_get_priority_max
- +#define SYS_sched_get_priority_min __NR_sched_get_priority_min
- +#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval
- +#define SYS_mlock __NR_mlock
- +#define SYS_munlock __NR_munlock
- +#define SYS_mlockall __NR_mlockall
- +#define SYS_munlockall __NR_munlockall
- +#define SYS_vhangup __NR_vhangup
- +#define SYS_modify_ldt __NR_modify_ldt
- +#define SYS_pivot_root __NR_pivot_root
- +#define SYS_prctl __NR_prctl
- +#define SYS_arch_prctl __NR_arch_prctl
- +#define SYS_adjtimex __NR_adjtimex
- +#define SYS_setrlimit __NR_setrlimit
- +#define SYS_chroot __NR_chroot
- +#define SYS_sync __NR_sync
- +#define SYS_acct __NR_acct
- +#define SYS_settimeofday __NR_settimeofday
- +#define SYS_mount __NR_mount
- +#define SYS_umount2 __NR_umount2
- +#define SYS_swapon __NR_swapon
- +#define SYS_swapoff __NR_swapoff
- +#define SYS_reboot __NR_reboot
- +#define SYS_sethostname __NR_sethostname
- +#define SYS_setdomainname __NR_setdomainname
- +#define SYS_iopl __NR_iopl
- +#define SYS_ioperm __NR_ioperm
- +#define SYS_init_module __NR_init_module
- +#define SYS_delete_module __NR_delete_module
- +#define SYS_quotactl __NR_quotactl
- +#define SYS_getpmsg __NR_getpmsg
- +#define SYS_putpmsg __NR_putpmsg
- +#define SYS_afs_syscall __NR_afs_syscall
- +#define SYS_tuxcall __NR_tuxcall
- +#define SYS_security __NR_security
- +#define SYS_gettid __NR_gettid
- +#define SYS_readahead __NR_readahead
- +#define SYS_setxattr __NR_setxattr
- +#define SYS_lsetxattr __NR_lsetxattr
- +#define SYS_fsetxattr __NR_fsetxattr
- +#define SYS_getxattr __NR_getxattr
- +#define SYS_lgetxattr __NR_lgetxattr
- +#define SYS_fgetxattr __NR_fgetxattr
- +#define SYS_listxattr __NR_listxattr
- +#define SYS_llistxattr __NR_llistxattr
- +#define SYS_flistxattr __NR_flistxattr
- +#define SYS_removexattr __NR_removexattr
- +#define SYS_lremovexattr __NR_lremovexattr
- +#define SYS_fremovexattr __NR_fremovexattr
- +#define SYS_tkill __NR_tkill
- +#define SYS_time __NR_time
- +#define SYS_futex __NR_futex
- +#define SYS_sched_setaffinity __NR_sched_setaffinity
- +#define SYS_sched_getaffinity __NR_sched_getaffinity
- +#define SYS_io_setup __NR_io_setup
- +#define SYS_io_destroy __NR_io_destroy
- +#define SYS_io_getevents __NR_io_getevents
- +#define SYS_io_submit __NR_io_submit
- +#define SYS_io_cancel __NR_io_cancel
- +#define SYS_lookup_dcookie __NR_lookup_dcookie
- +#define SYS_epoll_create __NR_epoll_create
- +#define SYS_remap_file_pages __NR_remap_file_pages
- +#define SYS_getdents64 __NR_getdents64
- +#define SYS_set_tid_address __NR_set_tid_address
- +#define SYS_restart_syscall __NR_restart_syscall
- +#define SYS_semtimedop __NR_semtimedop
- +#define SYS_fadvise64 __NR_fadvise64
- +#define SYS_timer_settime __NR_timer_settime
- +#define SYS_timer_gettime __NR_timer_gettime
- +#define SYS_timer_getoverrun __NR_timer_getoverrun
- +#define SYS_timer_delete __NR_timer_delete
- +#define SYS_clock_settime __NR_clock_settime
- +#define SYS_clock_gettime __NR_clock_gettime
- +#define SYS_clock_getres __NR_clock_getres
- +#define SYS_clock_nanosleep __NR_clock_nanosleep
- +#define SYS_exit_group __NR_exit_group
- +#define SYS_epoll_wait __NR_epoll_wait
- +#define SYS_epoll_ctl __NR_epoll_ctl
- +#define SYS_tgkill __NR_tgkill
- +#define SYS_utimes __NR_utimes
- +#define SYS_mbind __NR_mbind
- +#define SYS_set_mempolicy __NR_set_mempolicy
- +#define SYS_get_mempolicy __NR_get_mempolicy
- +#define SYS_mq_open __NR_mq_open
- +#define SYS_mq_unlink __NR_mq_unlink
- +#define SYS_mq_timedsend __NR_mq_timedsend
- +#define SYS_mq_timedreceive __NR_mq_timedreceive
- +#define SYS_mq_getsetattr __NR_mq_getsetattr
- +#define SYS_add_key __NR_add_key
- +#define SYS_request_key __NR_request_key
- +#define SYS_keyctl __NR_keyctl
- +#define SYS_ioprio_set __NR_ioprio_set
- +#define SYS_ioprio_get __NR_ioprio_get
- +#define SYS_inotify_init __NR_inotify_init
- +#define SYS_inotify_add_watch __NR_inotify_add_watch
- +#define SYS_inotify_rm_watch __NR_inotify_rm_watch
- +#define SYS_migrate_pages __NR_migrate_pages
- +#define SYS_openat __NR_openat
- +#define SYS_mkdirat __NR_mkdirat
- +#define SYS_mknodat __NR_mknodat
- +#define SYS_fchownat __NR_fchownat
- +#define SYS_futimesat __NR_futimesat
- +#define SYS_newfstatat __NR_newfstatat
- +#define SYS_unlinkat __NR_unlinkat
- +#define SYS_renameat __NR_renameat
- +#define SYS_linkat __NR_linkat
- +#define SYS_symlinkat __NR_symlinkat
- +#define SYS_readlinkat __NR_readlinkat
- +#define SYS_fchmodat __NR_fchmodat
- +#define SYS_faccessat __NR_faccessat
- +#define SYS_pselect6 __NR_pselect6
- +#define SYS_ppoll __NR_ppoll
- +#define SYS_unshare __NR_unshare
- +#define SYS_splice __NR_splice
- +#define SYS_tee __NR_tee
- +#define SYS_sync_file_range __NR_sync_file_range
- +#define SYS_utimensat __NR_utimensat
- +#define SYS_epoll_pwait __NR_epoll_pwait
- +#define SYS_signalfd __NR_signalfd
- +#define SYS_timerfd_create __NR_timerfd_create
- +#define SYS_eventfd __NR_eventfd
- +#define SYS_fallocate __NR_fallocate
- +#define SYS_timerfd_settime __NR_timerfd_settime
- +#define SYS_timerfd_gettime __NR_timerfd_gettime
- +#define SYS_accept4 __NR_accept4
- +#define SYS_signalfd4 __NR_signalfd4
- +#define SYS_eventfd2 __NR_eventfd2
- +#define SYS_epoll_create1 __NR_epoll_create1
- +#define SYS_dup3 __NR_dup3
- +#define SYS_pipe2 __NR_pipe2
- +#define SYS_inotify_init1 __NR_inotify_init1
- +#define SYS_perf_event_open __NR_perf_event_open
- +#define SYS_fanotify_init __NR_fanotify_init
- +#define SYS_fanotify_mark __NR_fanotify_mark
- +#define SYS_prlimit64 __NR_prlimit64
- +#define SYS_name_to_handle_at __NR_name_to_handle_at
- +#define SYS_open_by_handle_at __NR_open_by_handle_at
- +#define SYS_clock_adjtime __NR_clock_adjtime
- +#define SYS_syncfs __NR_syncfs
- +#define SYS_setns __NR_setns
- +#define SYS_getcpu __NR_getcpu
- +#define SYS_kcmp __NR_kcmp
- +#define SYS_finit_module __NR_finit_module
- +#define SYS_rt_sigaction __NR_rt_sigaction
- +#define SYS_rt_sigreturn __NR_rt_sigreturn
- +#define SYS_ioctl __NR_ioctl
- +#define SYS_readv __NR_readv
- +#define SYS_writev __NR_writev
- +#define SYS_recvfrom __NR_recvfrom
- +#define SYS_sendmsg __NR_sendmsg
- +#define SYS_recvmsg __NR_recvmsg
- +#define SYS_execve __NR_execve
- +#define SYS_ptrace __NR_ptrace
- +#define SYS_rt_sigpending __NR_rt_sigpending
- +#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait
- +#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
- +#define SYS_sigaltstack __NR_sigaltstack
- +#define SYS_timer_create __NR_timer_create
- +#define SYS_mq_notify __NR_mq_notify
- +#define SYS_kexec_load __NR_kexec_load
- +#define SYS_waitid __NR_waitid
- +#define SYS_set_robust_list __NR_set_robust_list
- +#define SYS_get_robust_list __NR_get_robust_list
- +#define SYS_vmsplice __NR_vmsplice
- +#define SYS_move_pages __NR_move_pages
- +#define SYS_preadv __NR_preadv
- +#define SYS_pwritev __NR_pwritev
- +#define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo
- +#define SYS_recvmmsg __NR_recvmmsg
- +#define SYS_sendmmsg __NR_sendmmsg
- +#define SYS_process_vm_readv __NR_process_vm_readv
- +#define SYS_process_vm_writev __NR_process_vm_writev
- +#define SYS_setsockopt __NR_setsockopt
- +#define SYS_getsockopt __NR_getsockopt
- +
- +#undef SYS_fstatat
- +#undef SYS_pread
- +#undef SYS_pwrite
- +#undef SYS_getdents
- +#define SYS_fstatat SYS_newfstatat
- +#define SYS_pread SYS_pread64
- +#define SYS_pwrite SYS_pwrite64
- +#define SYS_getdents SYS_getdents64
- +#define SYS_fadvise SYS_fadvise64
- diff -Nur musl-0.9.15/arch/x32/bits/termios.h musl-git/arch/x32/bits/termios.h
- --- musl-0.9.15/arch/x32/bits/termios.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,160 @@
- +struct termios
- +{
- + tcflag_t c_iflag;
- + tcflag_t c_oflag;
- + tcflag_t c_cflag;
- + tcflag_t c_lflag;
- + cc_t c_line;
- + cc_t c_cc[NCCS];
- + speed_t __c_ispeed;
- + speed_t __c_ospeed;
- +};
- +
- +#define VINTR 0
- +#define VQUIT 1
- +#define VERASE 2
- +#define VKILL 3
- +#define VEOF 4
- +#define VTIME 5
- +#define VMIN 6
- +#define VSWTC 7
- +#define VSTART 8
- +#define VSTOP 9
- +#define VSUSP 10
- +#define VEOL 11
- +#define VREPRINT 12
- +#define VDISCARD 13
- +#define VWERASE 14
- +#define VLNEXT 15
- +#define VEOL2 16
- +
- +#define IGNBRK 0000001
- +#define BRKINT 0000002
- +#define IGNPAR 0000004
- +#define PARMRK 0000010
- +#define INPCK 0000020
- +#define ISTRIP 0000040
- +#define INLCR 0000100
- +#define IGNCR 0000200
- +#define ICRNL 0000400
- +#define IUCLC 0001000
- +#define IXON 0002000
- +#define IXANY 0004000
- +#define IXOFF 0010000
- +#define IMAXBEL 0020000
- +#define IUTF8 0040000
- +
- +#define OPOST 0000001
- +#define OLCUC 0000002
- +#define ONLCR 0000004
- +#define OCRNL 0000010
- +#define ONOCR 0000020
- +#define ONLRET 0000040
- +#define OFILL 0000100
- +#define OFDEL 0000200
- +#define NLDLY 0000400
- +#define NL0 0000000
- +#define NL1 0000400
- +#define CRDLY 0003000
- +#define CR0 0000000
- +#define CR1 0001000
- +#define CR2 0002000
- +#define CR3 0003000
- +#define TABDLY 0014000
- +#define TAB0 0000000
- +#define TAB1 0004000
- +#define TAB2 0010000
- +#define TAB3 0014000
- +#define BSDLY 0020000
- +#define BS0 0000000
- +#define BS1 0020000
- +#define FFDLY 0100000
- +#define FF0 0000000
- +#define FF1 0100000
- +
- +#define VTDLY 0040000
- +#define VT0 0000000
- +#define VT1 0040000
- +
- +#define B0 0000000
- +#define B50 0000001
- +#define B75 0000002
- +#define B110 0000003
- +#define B134 0000004
- +#define B150 0000005
- +#define B200 0000006
- +#define B300 0000007
- +#define B600 0000010
- +#define B1200 0000011
- +#define B1800 0000012
- +#define B2400 0000013
- +#define B4800 0000014
- +#define B9600 0000015
- +#define B19200 0000016
- +#define B38400 0000017
- +
- +#define B57600 0010001
- +#define B115200 0010002
- +#define B230400 0010003
- +#define B460800 0010004
- +#define B500000 0010005
- +#define B576000 0010006
- +#define B921600 0010007
- +#define B1000000 0010010
- +#define B1152000 0010011
- +#define B1500000 0010012
- +#define B2000000 0010013
- +#define B2500000 0010014
- +#define B3000000 0010015
- +#define B3500000 0010016
- +#define B4000000 0010017
- +
- +#define CBAUD 0010017
- +
- +#define CSIZE 0000060
- +#define CS5 0000000
- +#define CS6 0000020
- +#define CS7 0000040
- +#define CS8 0000060
- +#define CSTOPB 0000100
- +#define CREAD 0000200
- +#define PARENB 0000400
- +#define PARODD 0001000
- +#define HUPCL 0002000
- +#define CLOCAL 0004000
- +
- +#define ISIG 0000001
- +#define ICANON 0000002
- +#define ECHO 0000010
- +#define ECHOE 0000020
- +#define ECHOK 0000040
- +#define ECHONL 0000100
- +#define NOFLSH 0000200
- +#define TOSTOP 0000400
- +#define IEXTEN 0100000
- +
- +#define ECHOCTL 0001000
- +#define ECHOPRT 0002000
- +#define ECHOKE 0004000
- +#define FLUSHO 0010000
- +#define PENDIN 0040000
- +
- +#define TCOOFF 0
- +#define TCOON 1
- +#define TCIOFF 2
- +#define TCION 3
- +
- +#define TCIFLUSH 0
- +#define TCOFLUSH 1
- +#define TCIOFLUSH 2
- +
- +#define TCSANOW 0
- +#define TCSADRAIN 1
- +#define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/x32/bits/user.h musl-git/arch/x32/bits/user.h
- --- musl-0.9.15/arch/x32/bits/user.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/bits/user.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,44 @@
- +#undef __WORDSIZE
- +#define __WORDSIZE 64
- +
- +typedef struct user_fpregs_struct
- +{
- + uint16_t cwd, swd, ftw, fop;
- + uint64_t rip, rdp;
- + uint32_t mxcsr, mxcs_mask;
- + uint32_t st_space[32], xmm_space[64], padding[24];
- +} elf_fpregset_t;
- +
- +struct user_regs_struct
- +{
- + unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8;
- + unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip;
- + unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs;
- +};
- +#define ELF_NGREG 27
- +typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG];
- +
- +struct user
- +{
- + struct user_regs_struct regs;
- + int u_fpvalid;
- + struct user_fpregs_struct i387;
- + unsigned long u_tsize;
- + unsigned long u_dsize;
- + unsigned long u_ssize;
- + unsigned long start_code;
- + unsigned long start_stack;
- + long signal;
- + int reserved;
- + struct user_regs_struct *u_ar0;
- + struct user_fpregs_struct *u_fpstate;
- + unsigned long magic;
- + char u_comm[32];
- + unsigned long u_debugreg[8];
- +};
- +
- +#define PAGE_MASK (~(PAGE_SIZE-1))
- +#define NBPG PAGE_SIZE
- +#define UPAGES 1
- +#define HOST_TEXT_START_ADDR (u.start_code)
- +#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
- diff -Nur musl-0.9.15/arch/x32/crt_arch.h musl-git/arch/x32/crt_arch.h
- --- musl-0.9.15/arch/x32/crt_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/crt_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,9 @@
- +__asm__("\
- +.text \n\
- +.global _start \n\
- +_start: \n\
- + xor %rbp,%rbp \n\
- + mov %rsp,%rdi \n\
- + andq $-16,%rsp \n\
- + call __cstart \n\
- +");
- diff -Nur musl-0.9.15/arch/x32/pthread_arch.h musl-git/arch/x32/pthread_arch.h
- --- musl-0.9.15/arch/x32/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/pthread_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,10 @@
- +static inline struct pthread *__pthread_self()
- +{
- + struct pthread *self;
- + __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) );
- + return self;
- +}
- +
- +#define TP_ADJ(p) (p)
- +
- +#define CANCEL_REG_IP 16
- diff -Nur musl-0.9.15/arch/x32/reloc.h musl-git/arch/x32/reloc.h
- --- musl-0.9.15/arch/x32/reloc.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/reloc.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,46 @@
- +#include <stdint.h>
- +#include <string.h>
- +#include <elf.h>
- +
- +#define LDSO_ARCH "x32"
- +
- +#define IS_COPY(x) ((x)==R_X86_64_COPY)
- +#define IS_PLT(x) ((x)==R_X86_64_JUMP_SLOT)
- +
- +static inline void do_single_reloc(
- + struct dso *self, unsigned char *base_addr,
- + size_t *reloc_addr, int type, size_t addend,
- + Sym *sym, size_t sym_size,
- + struct symdef def, size_t sym_val)
- +{
- + switch(type) {
- + case R_X86_64_GLOB_DAT:
- + case R_X86_64_JUMP_SLOT:
- + case R_X86_64_64:
- + *reloc_addr = sym_val + addend;
- + break;
- + case R_X86_64_32:
- + *(uint32_t *)reloc_addr = sym_val + addend;
- + break;
- + case R_X86_64_PC32:
- + *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr;
- + break;
- + case R_X86_64_RELATIVE:
- + *reloc_addr = (size_t)base_addr + addend;
- + break;
- + case R_X86_64_COPY:
- + memcpy(reloc_addr, (void *)sym_val, sym_size);
- + break;
- + case R_X86_64_DTPMOD64:
- + *reloc_addr = def.dso ? def.dso->tls_id : self->tls_id;
- + break;
- + case R_X86_64_DTPOFF64:
- + *reloc_addr = def.sym->st_value + addend;
- + break;
- + case R_X86_64_TPOFF64:
- + *reloc_addr = (def.sym
- + ? def.sym->st_value - def.dso->tls_offset
- + : 0 - self->tls_offset) + addend;
- + break;
- + }
- +}
- diff -Nur musl-0.9.15/arch/x32/src/syscall_cp_fixup.c musl-git/arch/x32/src/syscall_cp_fixup.c
- --- musl-0.9.15/arch/x32/src/syscall_cp_fixup.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/src/syscall_cp_fixup.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,31 @@
- +#include <sys/syscall.h>
- +long __syscall_cp_internal(volatile void*, long long, long long, long long, long long,
- + long long, long long, long long);
- +
- +struct __timespec { long long tv_sec; long tv_nsec; };
- +struct __timespec_kernel { long long tv_sec; long long tv_nsec; };
- +#define __tsc(X) ((struct __timespec*)(unsigned long)(X))
- +#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \
- + { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0)
- +
- +long __syscall_cp_asm (volatile void * foo, long long n, long long a1, long long a2, long long a3,
- + long long a4, long long a5, long long a6) {
- + switch (n) {
- + case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6:
- + __fixup(a5);
- + break;
- + case SYS_futex:
- + if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */)
- + __fixup(a4);
- + break;
- + case SYS_clock_nanosleep:
- + case SYS_rt_sigtimedwait: case SYS_ppoll:
- + __fixup(a3);
- + break;
- + case SYS_nanosleep:
- + __fixup(a1);
- + break;
- + }
- + return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6);
- +}
- +
- diff -Nur musl-0.9.15/arch/x32/src/sysinfo.c musl-git/arch/x32/src/sysinfo.c
- --- musl-0.9.15/arch/x32/src/sysinfo.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/src/sysinfo.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,47 @@
- +#include <sys/sysinfo.h>
- +#include "syscall.h"
- +
- +#define klong long long
- +#define kulong unsigned long long
- +
- +struct kernel_sysinfo {
- + klong uptime;
- + kulong loads[3];
- + kulong totalram;
- + kulong freeram;
- + kulong sharedram;
- + kulong bufferram;
- + kulong totalswap;
- + kulong freeswap;
- + short procs;
- + short pad;
- + kulong totalhigh;
- + kulong freehigh;
- + unsigned mem_unit;
- +};
- +
- +int __x32_sysinfo(struct sysinfo *info)
- +{
- + struct kernel_sysinfo tmp;
- + int ret = syscall(SYS_sysinfo, &tmp);
- + if(ret == -1) return ret;
- + info->uptime = tmp.uptime;
- + info->loads[0] = tmp.loads[0];
- + info->loads[1] = tmp.loads[1];
- + info->loads[2] = tmp.loads[2];
- + kulong shifts;
- + kulong max = tmp.totalram | tmp.totalswap;
- + __asm__("bsr %1,%0" : "=r"(shifts) : "r"(max));
- + shifts = shifts >= 32 ? shifts - 31 : 0;
- + info->totalram = tmp.totalram >> shifts;
- + info->freeram = tmp.freeram >> shifts;
- + info->sharedram = tmp.sharedram >> shifts;
- + info->bufferram = tmp.bufferram >> shifts;
- + info->totalswap = tmp.totalswap >> shifts;
- + info->freeswap = tmp.freeswap >> shifts;
- + info->procs = tmp.procs ;
- + info->totalhigh = tmp.totalhigh >> shifts;
- + info->freehigh = tmp.freehigh >> shifts;
- + info->mem_unit = (tmp.mem_unit ? tmp.mem_unit : 1) << shifts;
- + return ret;
- +}
- diff -Nur musl-0.9.15/arch/x32/syscall_arch.h musl-git/arch/x32/syscall_arch.h
- --- musl-0.9.15/arch/x32/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x32/syscall_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,117 @@
- +#define __SYSCALL_LL_E(x) (x)
- +#define __SYSCALL_LL_O(x) (x)
- +
- +#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X)
- +typedef long long syscall_arg_t;
- +struct __timespec { long long tv_sec; long tv_nsec; };
- +struct __timespec_kernel { long long tv_sec; long long tv_nsec; };
- +#define __tsc(X) ((struct __timespec*)(unsigned long)(X))
- +#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \
- + { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0)
- +#define __fixup_case_2 \
- + case SYS_nanosleep: \
- + __fixup(a1); break; \
- + case SYS_clock_settime: \
- + __fixup(a2); break;
- +#define __fixup_case_3 \
- + case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \
- + __fixup(a3); break; \
- + case SYS_utimensat: \
- + if(a3) a3 = (unsigned long) ((struct __timespec_kernel[2]) { \
- + [0] = {.tv_sec = __tsc(a3)[0].tv_sec, .tv_nsec = __tsc(a3)[0].tv_nsec}, \
- + [1] = {.tv_sec = __tsc(a3)[1].tv_sec, .tv_nsec = __tsc(a3)[1].tv_nsec}, \
- + }); break;
- +#define __fixup_case_4 \
- + case SYS_futex: \
- + if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break;
- +#define __fixup_case_5 \
- + case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \
- + __fixup(a5); break;
- +
- +static __inline long __syscall0(long long n)
- +{
- + unsigned long ret;
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall1(long long n, long long a1)
- +{
- + unsigned long ret;
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall2(long long n, long long a1, long long a2)
- +{
- + unsigned long ret;
- + struct __timespec *ts2 = 0;
- + switch (n) {
- + __fixup_case_2;
- + }
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
- + : "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall3(long long n, long long a1, long long a2, long long a3)
- +{
- + unsigned long ret;
- + switch (n) {
- + __fixup_case_2;
- + __fixup_case_3;
- + }
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
- + "d"(a3) : "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall4(long long n, long long a1, long long a2, long long a3,
- + long long a4_)
- +{
- + unsigned long ret;
- + register long long a4 __asm__("r10") = a4_;
- + switch (n) {
- + __fixup_case_2;
- + __fixup_case_3;
- + __fixup_case_4;
- + }
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
- + "d"(a3), "r"(a4): "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall5(long long n, long long a1, long long a2, long long a3,
- + long long a4_, long long a5_)
- +{
- + unsigned long ret;
- + register long long a4 __asm__("r10") = a4_;
- + register long long a5 __asm__("r8") = a5_;
- + switch (n) {
- + __fixup_case_2;
- + __fixup_case_3;
- + __fixup_case_4;
- + __fixup_case_5;
- + }
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
- + "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory");
- + return ret;
- +}
- +
- +static __inline long __syscall6(long long n, long long a1, long long a2, long long a3,
- + long long a4_, long long a5_, long long a6_)
- +{
- + unsigned long ret;
- + register long long a4 __asm__("r10") = a4_;
- + register long long a5 __asm__("r8") = a5_;
- + register long long a6 __asm__("r9") = a6_;
- + switch (n) {
- + __fixup_case_2;
- + __fixup_case_3;
- + __fixup_case_4;
- + __fixup_case_5;
- + }
- + __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
- + "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory");
- + return ret;
- +}
- diff -Nur musl-0.9.15/arch/x86_64/atomic.h musl-git/arch/x86_64/atomic.h
- --- musl-0.9.15/arch/x86_64/atomic.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/x86_64/atomic.h 2014-03-17 16:49:44.000000000 +0100
- @@ -5,38 +5,36 @@
-
- static inline int a_ctz_64(uint64_t x)
- {
- - long r;
- - __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) );
- - return r;
- + __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) );
- + return x;
- }
-
- static inline int a_ctz_l(unsigned long x)
- {
- - long r;
- - __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) );
- - return r;
- + __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) );
- + return x;
- }
-
- static inline void a_and_64(volatile uint64_t *p, uint64_t v)
- {
- - __asm__( "lock ; andq %1, %0"
- - : "=m"(*(long *)p) : "r"(v) : "memory" );
- + __asm__( "lock ; and %1, %0"
- + : "=m"(*p) : "r"(v) : "memory" );
- }
-
- static inline void a_or_64(volatile uint64_t *p, uint64_t v)
- {
- - __asm__( "lock ; orq %1, %0"
- - : "=m"(*(long *)p) : "r"(v) : "memory" );
- + __asm__( "lock ; or %1, %0"
- + : "=m"(*p) : "r"(v) : "memory" );
- }
-
- static inline void a_store_l(volatile void *p, long x)
- {
- - __asm__( "movq %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" );
- + __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" );
- }
-
- static inline void a_or_l(volatile void *p, long v)
- {
- - __asm__( "lock ; orq %1, %0"
- + __asm__( "lock ; or %1, %0"
- : "=m"(*(long *)p) : "r"(v) : "memory" );
- }
-
- @@ -56,7 +54,7 @@
-
- static inline int a_cas(volatile int *p, int t, int s)
- {
- - __asm__( "lock ; cmpxchgl %3, %1"
- + __asm__( "lock ; cmpxchg %3, %1"
- : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" );
- return t;
- }
- @@ -74,13 +72,13 @@
-
- static inline void a_or(volatile void *p, int v)
- {
- - __asm__( "lock ; orl %1, %0"
- + __asm__( "lock ; or %1, %0"
- : "=m"(*(int *)p) : "r"(v) : "memory" );
- }
-
- static inline void a_and(volatile void *p, int v)
- {
- - __asm__( "lock ; andl %1, %0"
- + __asm__( "lock ; and %1, %0"
- : "=m"(*(int *)p) : "r"(v) : "memory" );
- }
-
- @@ -110,7 +108,7 @@
-
- static inline void a_store(volatile int *p, int x)
- {
- - __asm__( "movl %1, %0" : "=m"(*p) : "r"(x) : "memory" );
- + __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" );
- }
-
- static inline void a_spin()
- diff -Nur musl-0.9.15/arch/x86_64/bits/sem.h musl-git/arch/x86_64/bits/sem.h
- --- musl-0.9.15/arch/x86_64/bits/sem.h 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/arch/x86_64/bits/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +struct semid_ds {
- + struct ipc_perm sem_perm;
- + time_t sem_otime;
- + time_t __unused1;
- + time_t sem_ctime;
- + time_t __unused2;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + unsigned short sem_nsems;
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- +#else
- + char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
- + unsigned short sem_nsems;
- +#endif
- + time_t __unused3;
- + time_t __unused4;
- +};
- diff -Nur musl-0.9.15/arch/x86_64/bits/shm.h musl-git/arch/x86_64/bits/shm.h
- --- musl-0.9.15/arch/x86_64/bits/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/x86_64/bits/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -13,3 +13,14 @@
- unsigned long __pad1;
- unsigned long __pad2;
- };
- +
- +struct shminfo {
- + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- +};
- +
- +struct shm_info {
- + int __used_ids;
- + unsigned long shm_tot, shm_rss, shm_swp;
- + unsigned long __swap_attempts, __swap_successes;
- +};
- +
- diff -Nur musl-0.9.15/arch/x86_64/bits/stat.h musl-git/arch/x86_64/bits/stat.h
- --- musl-0.9.15/arch/x86_64/bits/stat.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/x86_64/bits/stat.h 2014-03-17 16:49:44.000000000 +0100
- @@ -2,7 +2,7 @@
- * by the corresponding correctly-sized userspace types. */
-
- struct stat {
- - unsigned long st_dev;
- + dev_t st_dev;
- ino_t st_ino;
- nlink_t st_nlink;
-
- diff -Nur musl-0.9.15/arch/x86_64/bits/termios.h musl-git/arch/x86_64/bits/termios.h
- --- musl-0.9.15/arch/x86_64/bits/termios.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/x86_64/bits/termios.h 2014-03-17 16:49:44.000000000 +0100
- @@ -42,6 +42,7 @@
- #define IXANY 0004000
- #define IXOFF 0010000
- #define IMAXBEL 0020000
- +#define IUTF8 0040000
-
- #define OPOST 0000001
- #define OLCUC 0000002
- @@ -75,9 +76,6 @@
- #define VT0 0000000
- #define VT1 0040000
-
- -/* ?? */
- -#define XTABS 0014000
- -
- #define B0 0000000
- #define B50 0000001
- #define B75 0000002
- @@ -125,8 +123,6 @@
- #define HUPCL 0002000
- #define CLOCAL 0004000
-
- -#define CRTSCTS 020000000000
- -
- #define ISIG 0000001
- #define ICANON 0000002
- #define ECHO 0000010
- @@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
-
- -/* Extensions? */
- -#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
- -#define EXTPROC 0200000
-
- #define TCOOFF 0
- #define TCOON 1
- @@ -158,3 +151,10 @@
- #define TCSANOW 0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
- +
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +#define CBAUDEX 0010000
- +#define CRTSCTS 020000000000
- +#define EXTPROC 0200000
- +#define XTABS 0014000
- +#endif
- diff -Nur musl-0.9.15/arch/x86_64/pthread_arch.h musl-git/arch/x86_64/pthread_arch.h
- --- musl-0.9.15/arch/x86_64/pthread_arch.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/arch/x86_64/pthread_arch.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,7 +1,7 @@
- static inline struct pthread *__pthread_self()
- {
- struct pthread *self;
- - __asm__ __volatile__ ("movq %%fs:0,%0" : "=r" (self) );
- + __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) );
- return self;
- }
-
- diff -Nur musl-0.9.15/configure musl-git/configure
- --- musl-0.9.15/configure 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/configure 2014-03-18 13:19:59.000000000 +0100
- @@ -222,12 +222,16 @@
- # Convert to just ARCH
- #
- case "$target" in
- +# Catch these early to simplify matching for 32-bit archs
- +mips64*|powerpc64*) fail "$0: unsupported target \"$target\"" ;;
- arm*) ARCH=arm ;;
- i?86*) ARCH=i386 ;;
- +x86_64-x32*|x32*|x86_64*x32) ARCH=x32 ;;
- x86_64*) ARCH=x86_64 ;;
- -mips-*|mipsel-*) ARCH=mips ;;
- -microblaze-*) ARCH=microblaze ;;
- -powerpc-*) ARCH=powerpc ;;
- +mips*) ARCH=mips ;;
- +microblaze*) ARCH=microblaze ;;
- +powerpc*) ARCH=powerpc ;;
- +sh[1-9bel-]*|sh|superh*) ARCH=sh ;;
- unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
- *) fail "$0: unknown or unsupported target \"$target\"" ;;
- esac
- @@ -381,6 +385,7 @@
- tryflag CFLAGS_AUTO -Wno-unused-value
- tryflag CFLAGS_AUTO -Wno-unused-but-set-variable
- tryflag CFLAGS_AUTO -Wno-unknown-pragmas
- +tryflag CFLAGS_AUTO -Wno-pointer-to-int-cast
- fi
-
- # Some patched GCC builds have these defaults messed up...
- @@ -410,12 +415,33 @@
- trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf
- fi
-
- -test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \
- -&& SUBARCH=${SUBARCH}el
- +if test "$ARCH" = "mips" ; then
- +trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" && SUBARCH=${SUBARCH}el
- +trycppif __mips_soft_float "$t" && SUBARCH=${SUBARCH}-sf
- +fi
-
- test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
- && SUBARCH=${SUBARCH}el
-
- +if test "$ARCH" = "sh" ; then
- +trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb
- +if trycppif __SH_FPU_ANY__ "$t" ; then
- +# Some sh configurations are broken and replace double with float
- +# rather than using softfloat when the fpu is present but only
- +# supports single precision. Reject them.
- +printf "checking whether compiler's double type is IEEE double... "
- +echo 'typedef char dblcheck[(int)sizeof(double)-5];' > "$tmpc"
- +if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
- +printf "yes\n"
- +else
- +printf "no\n"
- +fail "$0: error: compiler's floating point configuration is unsupported"
- +fi
- +else
- +SUBARCH=${SUBARCH}-nofpu
- +fi
- +fi
- +
- test "$SUBARCH" \
- && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH"
-
- diff -Nur musl-0.9.15/COPYRIGHT musl-git/COPYRIGHT
- --- musl-0.9.15/COPYRIGHT 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/COPYRIGHT 2014-03-17 16:49:44.000000000 +0100
- @@ -1,6 +1,6 @@
- musl as a whole is licensed under the following standard MIT license:
-
- -Copyright © 2005-2013 Rich Felker
- +Copyright © 2005-2014 Rich Felker
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- @@ -79,7 +79,7 @@
- from Bionic libc, used on Android.
-
- All other files which have no copyright comments are original works
- -Copyright © 2005-2013 Rich Felker, the main author of this library.
- +Copyright © 2005-2014 Rich Felker, the main author of this library.
- The decision to exclude such comments is intentional, as it should be
- possible to carry around the complete source code on tiny storage
- media. All public header files (include/* and arch/*/bits/*) should be
- diff -Nur musl-0.9.15/crt/superh/crti.s musl-git/crt/superh/crti.s
- --- musl-0.9.15/crt/superh/crti.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/crt/superh/crti.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,13 @@
- +.section .init
- +.global _init
- +.type _init, @function
- +_init:
- + sts.l pr, @-r15
- + nop
- +
- +.section .fini
- +.global _fini
- +.type _fini, @function
- +_fini:
- + sts.l pr, @-r15
- + nop
- diff -Nur musl-0.9.15/crt/superh/crtn.s musl-git/crt/superh/crtn.s
- --- musl-0.9.15/crt/superh/crtn.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/crt/superh/crtn.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,9 @@
- +.section .init
- + lds.l @r15+, pr
- + rts
- + nop
- +
- +.section .fini
- + lds.l @r15+, pr
- + rts
- + nop
- diff -Nur musl-0.9.15/crt/x32/crti.s musl-git/crt/x32/crti.s
- --- musl-0.9.15/crt/x32/crti.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/crt/x32/crti.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,9 @@
- +.section .init
- +.global _init
- +_init:
- + push %rax
- +
- +.section .fini
- +.global _fini
- +_fini:
- + push %rax
- diff -Nur musl-0.9.15/crt/x32/crtn.s musl-git/crt/x32/crtn.s
- --- musl-0.9.15/crt/x32/crtn.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/crt/x32/crtn.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.section .init
- + pop %rax
- + ret
- +
- +.section .fini
- + pop %rax
- + ret
- diff -Nur musl-0.9.15/.gitignore musl-git/.gitignore
- --- musl-0.9.15/.gitignore 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/.gitignore 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,11 @@
- +*.o
- +*.lo
- +*.a
- +*.so
- +*.so.1
- +arch/*/bits/alltypes.h
- +config.mak
- +include/bits
- +tools/musl-gcc
- +lib/musl-gcc.specs
- +src/internal/version.h
- diff -Nur musl-0.9.15/include/arpa/inet.h musl-git/include/arpa/inet.h
- --- musl-0.9.15/include/arpa/inet.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/arpa/inet.h 2014-03-17 16:49:44.000000000 +0100
- @@ -20,7 +20,7 @@
- const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t);
-
- int inet_aton (const char *, struct in_addr *);
- -struct in_addr inet_makeaddr(int, int);
- +struct in_addr inet_makeaddr(in_addr_t, in_addr_t);
- in_addr_t inet_lnaof(struct in_addr);
- in_addr_t inet_netof(struct in_addr);
-
- diff -Nur musl-0.9.15/include/dlfcn.h musl-git/include/dlfcn.h
- --- musl-0.9.15/include/dlfcn.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/dlfcn.h 2014-03-17 16:49:44.000000000 +0100
- @@ -31,7 +31,7 @@
- const char *dli_sname;
- void *dli_saddr;
- } Dl_info;
- -int dladdr(void *, Dl_info *);
- +int dladdr(const void *, Dl_info *);
- int dlinfo(void *, int, void *);
- #endif
-
- diff -Nur musl-0.9.15/include/elf.h musl-git/include/elf.h
- --- musl-0.9.15/include/elf.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/elf.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1153,6 +1153,7 @@
- #define EF_MIPS_64BIT_WHIRL 16
- #define EF_MIPS_ABI2 32
- #define EF_MIPS_ABI_ON32 64
- +#define EF_MIPS_NAN2008 1024
- #define EF_MIPS_ARCH 0xf0000000
-
-
- @@ -2092,6 +2093,117 @@
- #define R_AARCH64_NONE 0
- #define R_AARCH64_ABS64 257
- #define R_AARCH64_ABS32 258
- +#define R_AARCH64_ABS16 259
- +#define R_AARCH64_PREL64 260
- +#define R_AARCH64_PREL32 261
- +#define R_AARCH64_PREL16 262
- +#define R_AARCH64_MOVW_UABS_G0 263
- +#define R_AARCH64_MOVW_UABS_G0_NC 264
- +#define R_AARCH64_MOVW_UABS_G1 265
- +#define R_AARCH64_MOVW_UABS_G1_NC 266
- +#define R_AARCH64_MOVW_UABS_G2 267
- +#define R_AARCH64_MOVW_UABS_G2_NC 268
- +#define R_AARCH64_MOVW_UABS_G3 269
- +#define R_AARCH64_MOVW_SABS_G0 270
- +#define R_AARCH64_MOVW_SABS_G1 271
- +#define R_AARCH64_MOVW_SABS_G2 272
- +#define R_AARCH64_LD_PREL_LO19 273
- +#define R_AARCH64_ADR_PREL_LO21 274
- +#define R_AARCH64_ADR_PREL_PG_HI21 275
- +#define R_AARCH64_ADR_PREL_PG_HI21_NC 276
- +#define R_AARCH64_ADD_ABS_LO12_NC 277
- +#define R_AARCH64_LDST8_ABS_LO12_NC 278
- +#define R_AARCH64_TSTBR14 279
- +#define R_AARCH64_CONDBR19 280
- +#define R_AARCH64_JUMP26 282
- +#define R_AARCH64_CALL26 283
- +#define R_AARCH64_LDST16_ABS_LO12_NC 284
- +#define R_AARCH64_LDST32_ABS_LO12_NC 285
- +#define R_AARCH64_LDST64_ABS_LO12_NC 286
- +#define R_AARCH64_MOVW_PREL_G0 287
- +#define R_AARCH64_MOVW_PREL_G0_NC 288
- +#define R_AARCH64_MOVW_PREL_G1 289
- +#define R_AARCH64_MOVW_PREL_G1_NC 290
- +#define R_AARCH64_MOVW_PREL_G2 291
- +#define R_AARCH64_MOVW_PREL_G2_NC 292
- +#define R_AARCH64_MOVW_PREL_G3 293
- +#define R_AARCH64_LDST128_ABS_LO12_NC 299
- +#define R_AARCH64_MOVW_GOTOFF_G0 300
- +#define R_AARCH64_MOVW_GOTOFF_G0_NC 301
- +#define R_AARCH64_MOVW_GOTOFF_G1 302
- +#define R_AARCH64_MOVW_GOTOFF_G1_NC 303
- +#define R_AARCH64_MOVW_GOTOFF_G2 304
- +#define R_AARCH64_MOVW_GOTOFF_G2_NC 305
- +#define R_AARCH64_MOVW_GOTOFF_G3 306
- +#define R_AARCH64_GOTREL64 307
- +#define R_AARCH64_GOTREL32 308
- +#define R_AARCH64_GOT_LD_PREL19 309
- +#define R_AARCH64_LD64_GOTOFF_LO15 310
- +#define R_AARCH64_ADR_GOT_PAGE 311
- +#define R_AARCH64_LD64_GOT_LO12_NC 312
- +#define R_AARCH64_LD64_GOTPAGE_LO15 313
- +#define R_AARCH64_TLSGD_ADR_PREL21 512
- +#define R_AARCH64_TLSGD_ADR_PAGE21 513
- +#define R_AARCH64_TLSGD_ADD_LO12_NC 514
- +#define R_AARCH64_TLSGD_MOVW_G1 515
- +#define R_AARCH64_TLSGD_MOVW_G0_NC 516
- +#define R_AARCH64_TLSLD_ADR_PREL21 517
- +#define R_AARCH64_TLSLD_ADR_PAGE21 518
- +#define R_AARCH64_TLSLD_ADD_LO12_NC 519
- +#define R_AARCH64_TLSLD_MOVW_G1 520
- +#define R_AARCH64_TLSLD_MOVW_G0_NC 521
- +#define R_AARCH64_TLSLD_LD_PREL19 522
- +#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
- +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
- +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
- +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
- +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
- +#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
- +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
- +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
- +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
- +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
- +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
- +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
- +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
- +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
- +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
- +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
- +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
- +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
- +#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
- +#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
- +#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
- +#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
- +#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
- +#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
- +#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
- +#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
- +#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
- +#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
- +#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
- +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
- +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
- +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
- +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
- +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
- +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
- +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
- +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
- +#define R_AARCH64_TLSDESC_LD_PREL19 560
- +#define R_AARCH64_TLSDESC_ADR_PREL21 561
- +#define R_AARCH64_TLSDESC_ADR_PAGE21 562
- +#define R_AARCH64_TLSDESC_LD64_LO12 563
- +#define R_AARCH64_TLSDESC_ADD_LO12 564
- +#define R_AARCH64_TLSDESC_OFF_G1 565
- +#define R_AARCH64_TLSDESC_OFF_G0_NC 566
- +#define R_AARCH64_TLSDESC_LDR 567
- +#define R_AARCH64_TLSDESC_ADD 568
- +#define R_AARCH64_TLSDESC_CALL 569
- +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
- +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
- +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
- +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
- #define R_AARCH64_COPY 1024
- #define R_AARCH64_GLOB_DAT 1025
- #define R_AARCH64_JUMP_SLOT 1026
- diff -Nur musl-0.9.15/include/fcntl.h musl-git/include/fcntl.h
- --- musl-0.9.15/include/fcntl.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/fcntl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -148,6 +148,7 @@
- #define SPLICE_F_MORE 4
- #define SPLICE_F_GIFT 8
- int fallocate(int, int, off_t, off_t);
- +#define fallocate64 fallocate
- ssize_t readahead(int, off_t, size_t);
- int sync_file_range(int, off_t, off_t, unsigned);
- ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
- @@ -160,6 +161,7 @@
- #define F_GETLK64 F_GETLK
- #define F_SETLK64 F_SETLK
- #define F_SETLKW64 F_SETLKW
- +#define flock64 flock
- #define open64 open
- #define openat64 openat
- #define creat64 creat
- diff -Nur musl-0.9.15/include/math.h musl-git/include/math.h
- --- musl-0.9.15/include/math.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/math.h 2014-03-17 16:49:44.000000000 +0100
- @@ -42,12 +42,14 @@
-
- static __inline unsigned __FLOAT_BITS(float __f)
- {
- - union {float __f; unsigned __i;} __u = {__f};
- + union {float __f; unsigned __i;} __u;
- + __u.__f = __f;
- return __u.__i;
- }
- static __inline unsigned long long __DOUBLE_BITS(double __f)
- {
- - union {double __f; unsigned long long __i;} __u = {__f};
- + union {double __f; unsigned long long __i;} __u;
- + __u.__f = __f;
- return __u.__i;
- }
-
- diff -Nur musl-0.9.15/include/netdb.h musl-git/include/netdb.h
- --- musl-0.9.15/include/netdb.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/netdb.h 2014-03-17 16:49:44.000000000 +0100
- @@ -131,6 +131,7 @@
- #define TRY_AGAIN 2
- #define NO_RECOVERY 3
- #define NO_DATA 4
- +#define NO_ADDRESS NO_DATA
- #endif
-
- #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- diff -Nur musl-0.9.15/include/netinet/if_ether.h musl-git/include/netinet/if_ether.h
- --- musl-0.9.15/include/netinet/if_ether.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/netinet/if_ether.h 2014-03-17 16:49:44.000000000 +0100
- @@ -54,6 +54,7 @@
- #define ETH_P_8021AH 0x88E7
- #define ETH_P_MVRP 0x88F5
- #define ETH_P_1588 0x88F7
- +#define ETH_P_PRP 0x88FB
- #define ETH_P_FCOE 0x8906
- #define ETH_P_TDLS 0x890D
- #define ETH_P_FIP 0x8914
- diff -Nur musl-0.9.15/include/netinet/in.h musl-git/include/netinet/in.h
- --- musl-0.9.15/include/netinet/in.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/netinet/in.h 2014-03-17 16:49:44.000000000 +0100
- @@ -149,7 +149,7 @@
- (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))
-
- #define __ARE_4_EQUAL(a,b) \
- - (!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] ))
- + (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) ))
- #define IN6_ARE_ADDR_EQUAL(a,b) \
- __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b))
-
- @@ -211,27 +211,13 @@
- #define IP_MULTICAST_ALL 49
- #define IP_UNICAST_IF 50
-
- -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- -#define MCAST_JOIN_GROUP 42
- -#define MCAST_BLOCK_SOURCE 43
- -#define MCAST_UNBLOCK_SOURCE 44
- -#define MCAST_LEAVE_GROUP 45
- -#define MCAST_JOIN_SOURCE_GROUP 46
- -#define MCAST_LEAVE_SOURCE_GROUP 47
- -#define MCAST_MSFILTER 48
- -
- -#define MCAST_EXCLUDE 0
- -#define MCAST_INCLUDE 1
- -#endif
- -
- #define IP_RECVRETOPTS IP_RETOPTS
-
- #define IP_PMTUDISC_DONT 0
- #define IP_PMTUDISC_WANT 1
- #define IP_PMTUDISC_DO 2
- #define IP_PMTUDISC_PROBE 3
- -
- -#define SOL_IP 0
- +#define IP_PMTUDISC_INTERFACE 4
-
- #define IP_DEFAULT_MULTICAST_TTL 1
- #define IP_DEFAULT_MULTICAST_LOOP 1
- @@ -243,6 +229,19 @@
- char ip_opts[40];
- };
-
- +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- +
- +#define MCAST_JOIN_GROUP 42
- +#define MCAST_BLOCK_SOURCE 43
- +#define MCAST_UNBLOCK_SOURCE 44
- +#define MCAST_LEAVE_GROUP 45
- +#define MCAST_JOIN_SOURCE_GROUP 46
- +#define MCAST_LEAVE_SOURCE_GROUP 47
- +#define MCAST_MSFILTER 48
- +
- +#define MCAST_EXCLUDE 0
- +#define MCAST_INCLUDE 1
- +
- struct ip_mreq
- {
- struct in_addr imr_multiaddr;
- @@ -273,7 +272,6 @@
- (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \
- + (numsrc) * sizeof(struct in_addr))
-
- -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- struct group_req {
- uint32_t gr_interface;
- struct sockaddr_storage gr_group;
- @@ -295,7 +293,6 @@
- #define GROUP_FILTER_SIZE(numsrc) \
- (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \
- + (numsrc) * sizeof(struct sockaddr_storage))
- -#endif
-
- struct in_pktinfo
- {
- @@ -315,6 +312,7 @@
- struct sockaddr_in6 ip6m_addr;
- uint32_t ip6m_mtu;
- };
- +#endif
-
- #define IPV6_ADDRFORM 1
- #define IPV6_2292PKTINFO 2
- @@ -324,7 +322,6 @@
- #define IPV6_2292PKTOPTIONS 6
- #define IPV6_CHECKSUM 7
- #define IPV6_2292HOPLIMIT 8
- -#define SCM_SRCRT IPV6_RXSRCRT
- #define IPV6_NEXTHOP 9
- #define IPV6_AUTHHDR 10
- #define IPV6_UNICAST_HOPS 16
- @@ -363,15 +360,11 @@
- #define IPV6_RXHOPOPTS IPV6_HOPOPTS
- #define IPV6_RXDSTOPTS IPV6_DSTOPTS
-
- -
- #define IPV6_PMTUDISC_DONT 0
- #define IPV6_PMTUDISC_WANT 1
- #define IPV6_PMTUDISC_DO 2
- #define IPV6_PMTUDISC_PROBE 3
-
- -#define SOL_IPV6 41
- -#define SOL_ICMPV6 58
- -
- #define IPV6_RTHDR_LOOSE 0
- #define IPV6_RTHDR_STRICT 1
-
- diff -Nur musl-0.9.15/include/netinet/tcp.h musl-git/include/netinet/tcp.h
- --- musl-0.9.15/include/netinet/tcp.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/netinet/tcp.h 2014-03-17 16:49:44.000000000 +0100
- @@ -44,42 +44,80 @@
- #define SOL_TCP 6
- #include <sys/types.h>
- #include <sys/socket.h>
- -#endif
- +#include <stdint.h>
- +#include <endian.h>
- +
- +typedef uint32_t tcp_seq;
-
- +#define TH_FIN 0x01
- +#define TH_SYN 0x02
- +#define TH_RST 0x04
- +#define TH_PUSH 0x08
- +#define TH_ACK 0x10
- +#define TH_URG 0x20
- +
- +struct tcphdr {
- #ifdef _GNU_SOURCE
- -#include <endian.h>
- -struct tcphdr
- -{
- - u_int16_t source;
- - u_int16_t dest;
- - u_int32_t seq;
- - u_int32_t ack_seq;
- +#ifdef __GNUC__
- + __extension__
- +#endif
- + union { struct {
- +
- + uint16_t source;
- + uint16_t dest;
- + uint32_t seq;
- + uint32_t ack_seq;
- +#if __BYTE_ORDER == __LITTLE_ENDIAN
- + uint16_t res1:4;
- + uint16_t doff:4;
- + uint16_t fin:1;
- + uint16_t syn:1;
- + uint16_t rst:1;
- + uint16_t psh:1;
- + uint16_t ack:1;
- + uint16_t urg:1;
- + uint16_t res2:2;
- +#else
- + uint16_t doff:4;
- + uint16_t res1:4;
- + uint16_t res2:2;
- + uint16_t urg:1;
- + uint16_t ack:1;
- + uint16_t psh:1;
- + uint16_t rst:1;
- + uint16_t syn:1;
- + uint16_t fin:1;
- +#endif
- + uint16_t window;
- + uint16_t check;
- + uint16_t urg_ptr;
- +
- + }; struct {
- +#endif
- +
- + uint16_t th_sport;
- + uint16_t th_dport;
- + uint32_t th_seq;
- + uint32_t th_ack;
- #if __BYTE_ORDER == __LITTLE_ENDIAN
- - u_int16_t res1:4;
- - u_int16_t doff:4;
- - u_int16_t fin:1;
- - u_int16_t syn:1;
- - u_int16_t rst:1;
- - u_int16_t psh:1;
- - u_int16_t ack:1;
- - u_int16_t urg:1;
- - u_int16_t res2:2;
- + uint8_t th_x2:4;
- + uint8_t th_off:4;
- #else
- - u_int16_t doff:4;
- - u_int16_t res1:4;
- - u_int16_t res2:2;
- - u_int16_t urg:1;
- - u_int16_t ack:1;
- - u_int16_t psh:1;
- - u_int16_t rst:1;
- - u_int16_t syn:1;
- - u_int16_t fin:1;
- -#endif
- - u_int16_t window;
- - u_int16_t check;
- - u_int16_t urg_ptr;
- + uint8_t th_off:4;
- + uint8_t th_x2:4;
- +#endif
- + uint8_t th_flags;
- + uint16_t th_win;
- + uint16_t th_sum;
- + uint16_t th_urp;
- +
- +#ifdef _GNU_SOURCE
- + }; };
- +#endif
- };
- +#endif
-
- +#ifdef _GNU_SOURCE
- #define TCPI_OPT_TIMESTAMPS 1
- #define TCPI_OPT_SACK 2
- #define TCPI_OPT_WSCALE 4
- @@ -93,37 +131,37 @@
-
- struct tcp_info
- {
- - u_int8_t tcpi_state;
- - u_int8_t tcpi_ca_state;
- - u_int8_t tcpi_retransmits;
- - u_int8_t tcpi_probes;
- - u_int8_t tcpi_backoff;
- - u_int8_t tcpi_options;
- - u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
- - u_int32_t tcpi_rto;
- - u_int32_t tcpi_ato;
- - u_int32_t tcpi_snd_mss;
- - u_int32_t tcpi_rcv_mss;
- - u_int32_t tcpi_unacked;
- - u_int32_t tcpi_sacked;
- - u_int32_t tcpi_lost;
- - u_int32_t tcpi_retrans;
- - u_int32_t tcpi_fackets;
- - u_int32_t tcpi_last_data_sent;
- - u_int32_t tcpi_last_ack_sent;
- - u_int32_t tcpi_last_data_recv;
- - u_int32_t tcpi_last_ack_recv;
- - u_int32_t tcpi_pmtu;
- - u_int32_t tcpi_rcv_ssthresh;
- - u_int32_t tcpi_rtt;
- - u_int32_t tcpi_rttvar;
- - u_int32_t tcpi_snd_ssthresh;
- - u_int32_t tcpi_snd_cwnd;
- - u_int32_t tcpi_advmss;
- - u_int32_t tcpi_reordering;
- - u_int32_t tcpi_rcv_rtt;
- - u_int32_t tcpi_rcv_space;
- - u_int32_t tcpi_total_retrans;
- + uint8_t tcpi_state;
- + uint8_t tcpi_ca_state;
- + uint8_t tcpi_retransmits;
- + uint8_t tcpi_probes;
- + uint8_t tcpi_backoff;
- + uint8_t tcpi_options;
- + uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
- + uint32_t tcpi_rto;
- + uint32_t tcpi_ato;
- + uint32_t tcpi_snd_mss;
- + uint32_t tcpi_rcv_mss;
- + uint32_t tcpi_unacked;
- + uint32_t tcpi_sacked;
- + uint32_t tcpi_lost;
- + uint32_t tcpi_retrans;
- + uint32_t tcpi_fackets;
- + uint32_t tcpi_last_data_sent;
- + uint32_t tcpi_last_ack_sent;
- + uint32_t tcpi_last_data_recv;
- + uint32_t tcpi_last_ack_recv;
- + uint32_t tcpi_pmtu;
- + uint32_t tcpi_rcv_ssthresh;
- + uint32_t tcpi_rtt;
- + uint32_t tcpi_rttvar;
- + uint32_t tcpi_snd_ssthresh;
- + uint32_t tcpi_snd_cwnd;
- + uint32_t tcpi_advmss;
- + uint32_t tcpi_reordering;
- + uint32_t tcpi_rcv_rtt;
- + uint32_t tcpi_rcv_space;
- + uint32_t tcpi_total_retrans;
- };
-
- #define TCP_MD5SIG_MAXKEYLEN 80
- @@ -131,10 +169,10 @@
- struct tcp_md5sig
- {
- struct sockaddr_storage tcpm_addr;
- - u_int16_t __tcpm_pad1;
- - u_int16_t tcpm_keylen;
- - u_int32_t __tcpm_pad2;
- - u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
- + uint16_t __tcpm_pad1;
- + uint16_t tcpm_keylen;
- + uint32_t __tcpm_pad2;
- + uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
- };
-
- #endif
- diff -Nur musl-0.9.15/include/netinet/udp.h musl-git/include/netinet/udp.h
- --- musl-0.9.15/include/netinet/udp.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/netinet/udp.h 2014-03-17 16:49:44.000000000 +0100
- @@ -5,19 +5,22 @@
- extern "C" {
- #endif
-
- +#include <features.h>
- #include <stdint.h>
-
- -struct udphdr {
- - uint16_t source;
- - uint16_t dest;
- - uint16_t len;
- - uint16_t check;
- -};
- -
- +#ifdef _GNU_SOURCE
- #define uh_sport source
- #define uh_dport dest
- #define uh_ulen len
- #define uh_sum check
- +#endif
- +
- +struct udphdr {
- + uint16_t uh_sport;
- + uint16_t uh_dport;
- + uint16_t uh_ulen;
- + uint16_t uh_sum;
- +};
-
- #define UDP_CORK 1
- #define UDP_ENCAP 100
- diff -Nur musl-0.9.15/include/sched.h musl-git/include/sched.h
- --- musl-0.9.15/include/sched.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sched.h 2014-03-17 16:49:44.000000000 +0100
- @@ -78,7 +78,7 @@
- int sched_getaffinity(pid_t, size_t, cpu_set_t *);
- int sched_setaffinity(pid_t, size_t, const cpu_set_t *);
-
- -#define __CPU_op_S(i, size, set, op) ( (i)/8 >= (size) ? 0 : \
- +#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \
- ((set)->__bits[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) )
-
- #define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=)
- diff -Nur musl-0.9.15/include/signal.h musl-git/include/signal.h
- --- musl-0.9.15/include/signal.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/signal.h 2014-03-17 16:49:44.000000000 +0100
- @@ -227,8 +227,8 @@
- typedef void (*sighandler_t)(int);
- void (*bsd_signal(int, void (*)(int)))(int);
- int sigisemptyset(const sigset_t *);
- -int sigorset (sigset_t *, sigset_t *, sigset_t *);
- -int sigandset(sigset_t *, sigset_t *, sigset_t *);
- +int sigorset (sigset_t *, const sigset_t *, const sigset_t *);
- +int sigandset(sigset_t *, const sigset_t *, const sigset_t *);
-
- #define SA_NOMASK SA_NODEFER
- #define SA_ONESHOT SA_RESETHAND
- diff -Nur musl-0.9.15/include/stdlib.h musl-git/include/stdlib.h
- --- musl-0.9.15/include/stdlib.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/stdlib.h 2014-03-17 16:49:44.000000000 +0100
- @@ -93,7 +93,7 @@
- #define WSTOPSIG(s) WEXITSTATUS(s)
- #define WIFEXITED(s) (!WTERMSIG(s))
- #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00)
- -#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu)
- +#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)
-
- int posix_memalign (void **, size_t, size_t);
- int setenv (const char *, const char *, int);
- diff -Nur musl-0.9.15/include/sys/inotify.h musl-git/include/sys/inotify.h
- --- musl-0.9.15/include/sys/inotify.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/inotify.h 2014-03-17 16:49:44.000000000 +0100
- @@ -48,7 +48,7 @@
- int inotify_init(void);
- int inotify_init1(int);
- int inotify_add_watch(int, const char *, uint32_t);
- -int inotify_rm_watch(int, uint32_t);
- +int inotify_rm_watch(int, int);
-
- #ifdef __cplusplus
- }
- diff -Nur musl-0.9.15/include/sys/mman.h musl-git/include/sys/mman.h
- --- musl-0.9.15/include/sys/mman.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/mman.h 2014-03-17 16:49:44.000000000 +0100
- @@ -33,7 +33,7 @@
-
- #ifdef _GNU_SOURCE
- void *mremap (void *, size_t, size_t, int, ...);
- -int remap_file_pages (void *, size_t, int, ssize_t, int);
- +int remap_file_pages (void *, size_t, int, size_t, int);
- #endif
-
- #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- diff -Nur musl-0.9.15/include/sys/procfs.h musl-git/include/sys/procfs.h
- --- musl-0.9.15/include/sys/procfs.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/procfs.h 2014-03-17 16:49:44.000000000 +0100
- @@ -40,7 +40,7 @@
- char pr_zomb;
- char pr_nice;
- unsigned long int pr_flag;
- -#if __WORDSIZE == 32
- +#if UINTPTR_MAX == 0xffffffff
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- #else
- diff -Nur musl-0.9.15/include/sys/sem.h musl-git/include/sys/sem.h
- --- musl-0.9.15/include/sys/sem.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/sem.h 2014-03-17 16:49:44.000000000 +0100
- @@ -27,22 +27,7 @@
-
- #include <endian.h>
-
- -struct semid_ds {
- - struct ipc_perm sem_perm;
- - long sem_otime;
- - unsigned long __unused1;
- - long sem_ctime;
- - unsigned long __unused2;
- -#if __BYTE_ORDER == __LITTLE_ENDIAN
- - unsigned short sem_nsems;
- - char __sem_nsems_pad[sizeof(long)-sizeof(short)];
- -#else
- - char __sem_nsems_pad[sizeof(long)-sizeof(short)];
- - unsigned short sem_nsems;
- -#endif
- - unsigned long __unused3;
- - unsigned long __unused4;
- -};
- +#include <bits/sem.h>
-
- #define _SEM_SEMUN_UNDEFINED 1
-
- diff -Nur musl-0.9.15/include/sys/shm.h musl-git/include/sys/shm.h
- --- musl-0.9.15/include/sys/shm.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/shm.h 2014-03-17 16:49:44.000000000 +0100
- @@ -14,6 +14,13 @@
- #include <bits/alltypes.h>
-
- #include <sys/ipc.h>
- +
- +#ifdef _GNU_SOURCE
- +#define __used_ids used_ids
- +#define __swap_attempts swap_attempts
- +#define __swap_successes swap_successes
- +#endif
- +
- #include <bits/shm.h>
-
- #define SHM_R 0400
- @@ -33,20 +40,6 @@
- #define SHM_HUGETLB 04000
- #define SHM_NORESERVE 010000
-
- -struct shminfo {
- - unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
- -};
- -
- -struct shm_info {
- - int used_ids;
- - unsigned long shm_tot, shm_rss, shm_swp;
- -#ifdef _GNU_SOURCE
- - unsigned long swap_attempts, swap_successes;
- -#else
- - unsigned long __reserved[2];
- -#endif
- -};
- -
- typedef unsigned long shmatt_t;
-
- void *shmat(int, const void *, int);
- diff -Nur musl-0.9.15/include/sys/socket.h musl-git/include/sys/socket.h
- --- musl-0.9.15/include/sys/socket.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/socket.h 2014-03-17 16:49:44.000000000 +0100
- @@ -202,11 +202,16 @@
- #define SO_LOCK_FILTER 44
- #define SO_SELECT_ERR_QUEUE 45
- #define SO_BUSY_POLL 46
- +#define SO_MAX_PACING_RATE 47
-
- #ifndef SOL_SOCKET
- #define SOL_SOCKET 1
- #endif
-
- +#define SOL_IP 0
- +#define SOL_IPV6 41
- +#define SOL_ICMPV6 58
- +
- #define SOL_RAW 255
- #define SOL_DECNET 261
- #define SOL_X25 262
- diff -Nur musl-0.9.15/include/sys/sysctl.h musl-git/include/sys/sysctl.h
- --- musl-0.9.15/include/sys/sysctl.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/sysctl.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,17 +0,0 @@
- -#ifndef _SYS_SYSCTL_H
- -#define _SYS_SYSCTL_H
- -
- -#ifdef __cplusplus
- -extern "C" {
- -#endif
- -
- -#define __NEED_size_t
- -#include <bits/alltypes.h>
- -
- -int sysctl (int *, int, void *, size_t *, void *, size_t);
- -
- -#ifdef __cplusplus
- -}
- -#endif
- -
- -#endif
- diff -Nur musl-0.9.15/include/sys/time.h musl-git/include/sys/time.h
- --- musl-0.9.15/include/sys/time.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/time.h 2014-03-17 16:49:44.000000000 +0100
- @@ -51,6 +51,17 @@
- ((a)->tv_usec += 1000000, (a)->tv_sec--) )
- #endif
-
- +#if defined(_GNU_SOURCE)
- +#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \
- + (ts)->tv_sec = (tv)->tv_sec, \
- + (ts)->tv_nsec = (tv)->tv_usec * 1000, \
- + (void)0 )
- +#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \
- + (tv)->tv_sec = (ts)->tv_sec, \
- + (tv)->tv_usec = (ts)->tv_nsec / 1000, \
- + (void)0 )
- +#endif
- +
- #ifdef __cplusplus
- }
- #endif
- diff -Nur musl-0.9.15/include/sys/wait.h musl-git/include/sys/wait.h
- --- musl-0.9.15/include/sys/wait.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/sys/wait.h 2014-03-17 16:49:44.000000000 +0100
- @@ -50,7 +50,7 @@
- #define WCOREDUMP(s) ((s) & 0x80)
- #define WIFEXITED(s) (!WTERMSIG(s))
- #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00)
- -#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu)
- +#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)
- #define WIFCONTINUED(s) ((s) == 0xffff)
-
- #ifdef __cplusplus
- diff -Nur musl-0.9.15/include/syslog.h musl-git/include/syslog.h
- --- musl-0.9.15/include/syslog.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/syslog.h 2014-03-17 16:49:44.000000000 +0100
- @@ -21,7 +21,7 @@
- #define LOG_MAKEPRI(f, p) (((f)<<3)|(p))
-
- #define LOG_MASK(p) (1<<(p))
- -#define LOG_UPTO(p) ((1<<(p)+1)-1)
- +#define LOG_UPTO(p) ((1<<((p)+1))-1)
-
- #define LOG_KERN (0<<3)
- #define LOG_USER (1<<3)
- diff -Nur musl-0.9.15/include/time.h musl-git/include/time.h
- --- musl-0.9.15/include/time.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/time.h 2014-03-17 16:49:44.000000000 +0100
- @@ -125,7 +125,7 @@
-
-
- #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- -int stime(time_t *);
- +int stime(const time_t *);
- time_t timegm(struct tm *);
- #endif
-
- diff -Nur musl-0.9.15/include/utmp.h musl-git/include/utmp.h
- --- musl-0.9.15/include/utmp.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/utmp.h 2014-03-17 16:49:44.000000000 +0100
- @@ -10,6 +10,7 @@
- #define ACCOUNTING 9
- #define UT_NAMESIZE 32
- #define UT_HOSTSIZE 256
- +#define UT_LINESIZE 32
-
- struct lastlog {
- time_t ll_time;
- @@ -22,6 +23,8 @@
- #define ut_addr ut_addr_v6[0]
- #define utmp utmpx
- #define utmpname(x) (-1)
- +#define e_exit __e_exit
- +#define e_termination __e_termination
-
- void endutent(void);
- struct utmp *getutent(void);
- diff -Nur musl-0.9.15/include/utmpx.h musl-git/include/utmpx.h
- --- musl-0.9.15/include/utmpx.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/include/utmpx.h 2014-03-17 16:49:44.000000000 +0100
- @@ -5,6 +5,8 @@
- extern "C" {
- #endif
-
- +#include <features.h>
- +
- #define __NEED_pid_t
- #define __NEED_time_t
- #define __NEED_suseconds_t
- @@ -12,19 +14,17 @@
-
- #include <bits/alltypes.h>
-
- -#define UT_LINESIZE 32
- -
- struct utmpx
- {
- short ut_type;
- pid_t ut_pid;
- - char ut_line[UT_LINESIZE];
- + char ut_line[32];
- char ut_id[4];
- char ut_user[32];
- char ut_host[256];
- struct {
- - short e_termination;
- - short e_exit;
- + short __e_termination;
- + short __e_exit;
- } ut_exit;
- long ut_session;
- struct timeval ut_tv;
- @@ -39,7 +39,11 @@
- struct utmpx *pututxline(const struct utmpx *);
- void setutxent(void);
-
- +#if defined(_BSD_SOURCE) | defined(_GNU_SOURCE)
- +#define e_exit __e_exit
- +#define e_termination __e_termination
- void updwtmpx(const char *, const struct utmpx *);
- +#endif
-
- #define EMPTY 0
- #define RUN_LVL 1
- diff -Nur musl-0.9.15/src/crypt/crypt_des.c musl-git/src/crypt/crypt_des.c
- --- musl-0.9.15/src/crypt/crypt_des.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/crypt/crypt_des.c 2014-03-17 16:49:44.000000000 +0100
- @@ -692,7 +692,7 @@
- return saltbits;
- }
-
- -static void des_setkey(const unsigned char *key, struct expanded_key *ekey)
- +void __des_setkey(const unsigned char *key, struct expanded_key *ekey)
- {
- uint32_t k0, k1, rawkey0, rawkey1;
- unsigned int shifts, round, i, ibit;
- @@ -753,7 +753,7 @@
- /*
- * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format.
- */
- -static void do_des(uint32_t l_in, uint32_t r_in,
- +void __do_des(uint32_t l_in, uint32_t r_in,
- uint32_t *l_out, uint32_t *r_out,
- uint32_t count, uint32_t saltbits, const struct expanded_key *ekey)
- {
- @@ -862,7 +862,7 @@
- ((uint32_t)in[5] << 16) |
- ((uint32_t)in[4] << 24);
-
- - do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey);
- + __do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey);
-
- out[0] = l_out >> 24;
- out[1] = l_out >> 16;
- @@ -894,7 +894,7 @@
- if (*key)
- key++;
- }
- - des_setkey(keybuf, &ekey);
- + __des_setkey(keybuf, &ekey);
-
- if (*setting == _PASSWORD_EFMT1) {
- /*
- @@ -929,7 +929,7 @@
- q = keybuf;
- while (q <= &keybuf[sizeof(keybuf) - 1] && *key)
- *q++ ^= *key++ << 1;
- - des_setkey(keybuf, &ekey);
- + __des_setkey(keybuf, &ekey);
- }
-
- memcpy(output, setting, 9);
- @@ -957,7 +957,7 @@
- /*
- * Do it.
- */
- - do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey);
- + __do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey);
-
- /*
- * Now encode the result...
- diff -Nur musl-0.9.15/src/crypt/encrypt.c musl-git/src/crypt/encrypt.c
- --- musl-0.9.15/src/crypt/encrypt.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/crypt/encrypt.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,60 @@
- +#include <stdint.h>
- +#include <stdlib.h>
- +#include <unistd.h>
- +
- +struct expanded_key {
- + uint32_t l[16], r[16];
- +};
- +
- +void __des_setkey(const unsigned char *key, struct expanded_key *ekey);
- +void __do_des(uint32_t l_in, uint32_t r_in,
- + uint32_t *l_out, uint32_t *r_out,
- + uint32_t count, uint32_t saltbits, const struct expanded_key *ekey);
- +
- +
- +static struct expanded_key __encrypt_key;
- +
- +void setkey(const char *key)
- +{
- + unsigned char bkey[8];
- + int i, j;
- +
- + for (i = 0; i < 8; i++) {
- + bkey[i] = 0;
- + for (j = 7; j >= 0; j--, key++)
- + bkey[i] |= (uint32_t)(*key & 1) << j;
- + }
- +
- + __des_setkey(bkey, &__encrypt_key);
- +}
- +
- +void encrypt(char *block, int edflag)
- +{
- + struct expanded_key decrypt_key, *key;
- + uint32_t b[2];
- + int i, j;
- + char *p;
- +
- + p = block;
- + for (i = 0; i < 2; i++) {
- + b[i] = 0;
- + for (j = 31; j >= 0; j--, p++)
- + b[i] |= (uint32_t)(*p & 1) << j;
- + }
- +
- + key = &__encrypt_key;
- + if (edflag) {
- + key = &decrypt_key;
- + for (i = 0; i < 16; i++) {
- + decrypt_key.l[i] = __encrypt_key.l[15-i];
- + decrypt_key.r[i] = __encrypt_key.r[15-i];
- + }
- + }
- +
- + __do_des(b[0], b[1], b, b + 1, 1, 0, key);
- +
- + p = block;
- + for (i = 0; i < 2; i++)
- + for (j = 31; j >= 0; j--)
- + *p++ = b[i]>>j & 1;
- +}
- diff -Nur musl-0.9.15/src/dirent/readdir.c musl-git/src/dirent/readdir.c
- --- musl-0.9.15/src/dirent/readdir.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/dirent/readdir.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,5 +1,7 @@
- #include <dirent.h>
- +#include <errno.h>
- #include "__dirent.h"
- +#include "syscall.h"
- #include "libc.h"
-
- int __getdents(int, struct dirent *, size_t);
- @@ -9,8 +11,11 @@
- struct dirent *de;
-
- if (dir->buf_pos >= dir->buf_end) {
- - int len = __getdents(dir->fd, (void *)dir->buf, sizeof dir->buf);
- - if (len <= 0) return 0;
- + int len = __syscall(SYS_getdents, dir->fd, dir->buf, sizeof dir->buf);
- + if (len <= 0) {
- + if (len < 0 && len != -ENOENT) errno = -len;
- + return 0;
- + }
- dir->buf_end = len;
- dir->buf_pos = 0;
- }
- diff -Nur musl-0.9.15/src/errno/strerror.c musl-git/src/errno/strerror.c
- --- musl-0.9.15/src/errno/strerror.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/errno/strerror.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,7 +1,7 @@
- #include <errno.h>
- #include <string.h>
-
- -#define E(a,b) a,
- +#define E(a,b) ((unsigned char)a),
- static const unsigned char errid[] = {
- #include "__strerror.h"
- };
- @@ -16,6 +16,12 @@
- {
- const char *s;
- int i;
- + /* mips has one error code outside of the 8-bit range due to a
- + * historical typo, so we just remap it. */
- + if (EDQUOT==1133) {
- + if (e==109) e=-1;
- + else if (e==EDQUOT) e=109;
- + }
- for (i=0; errid[i] && errid[i] != e; i++);
- for (s=errmsg; i; s++, i--) for (; *s; s++);
- return (char *)s;
- diff -Nur musl-0.9.15/src/fcntl/fcntl.c musl-git/src/fcntl/fcntl.c
- --- musl-0.9.15/src/fcntl/fcntl.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/fcntl/fcntl.c 2014-03-17 16:49:44.000000000 +0100
- @@ -7,17 +7,17 @@
-
- int fcntl(int fd, int cmd, ...)
- {
- - long arg;
- + unsigned long arg;
- va_list ap;
- va_start(ap, cmd);
- - arg = va_arg(ap, long);
- + arg = va_arg(ap, unsigned long);
- va_end(ap);
- if (cmd == F_SETFL) arg |= O_LARGEFILE;
- - if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, arg);
- + if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, (void *)arg);
- if (cmd == F_GETOWN) {
- struct f_owner_ex ex;
- int ret = __syscall(SYS_fcntl, fd, F_GETOWN_EX, &ex);
- - if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, arg);
- + if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, (void *)arg);
- if (ret) return __syscall_ret(ret);
- return ex.type == F_OWNER_PGRP ? -ex.pid : ex.pid;
- }
- @@ -37,5 +37,14 @@
- if (ret >= 0) __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC);
- return __syscall_ret(ret);
- }
- - return syscall(SYS_fcntl, fd, cmd, arg);
- + switch (cmd) {
- + case F_SETLK:
- + case F_SETLKW:
- + case F_GETLK:
- + case F_GETOWN_EX:
- + case F_SETOWN_EX:
- + return syscall(SYS_fcntl, fd, cmd, (void *)arg);
- + default:
- + return syscall(SYS_fcntl, fd, cmd, arg);
- + }
- }
- diff -Nur musl-0.9.15/src/fcntl/posix_fadvise.c musl-git/src/fcntl/posix_fadvise.c
- --- musl-0.9.15/src/fcntl/posix_fadvise.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/fcntl/posix_fadvise.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,8 +1,11 @@
- #include <fcntl.h>
- #include "syscall.h"
- +#include "libc.h"
-
- int posix_fadvise(int fd, off_t base, off_t len, int advice)
- {
- return -(__syscall)(SYS_fadvise, fd, __SYSCALL_LL_O(base),
- __SYSCALL_LL_E(len), advice);
- }
- +
- +LFS64(posix_fadvise);
- diff -Nur musl-0.9.15/src/fcntl/posix_fallocate.c musl-git/src/fcntl/posix_fallocate.c
- --- musl-0.9.15/src/fcntl/posix_fallocate.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/fcntl/posix_fallocate.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,8 +1,11 @@
- #include <fcntl.h>
- #include "syscall.h"
- +#include "libc.h"
-
- int posix_fallocate(int fd, off_t base, off_t len)
- {
- return -__syscall(SYS_fallocate, fd, 0, __SYSCALL_LL_E(base),
- __SYSCALL_LL_E(len));
- }
- +
- +LFS64(posix_fallocate);
- diff -Nur musl-0.9.15/src/fenv/i386/fenv.s musl-git/src/fenv/i386/fenv.s
- --- musl-0.9.15/src/fenv/i386/fenv.s 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/fenv/i386/fenv.s 2014-03-17 16:49:44.000000000 +0100
- @@ -126,7 +126,7 @@
- push %eax
- push %eax
- push %eax
- - push %eax
- + pushl $0xffff
- push %eax
- pushl $0x37f
- fldenv (%esp)
- diff -Nur musl-0.9.15/src/fenv/mipsel-sf/fenv.sub musl-git/src/fenv/mipsel-sf/fenv.sub
- --- musl-0.9.15/src/fenv/mipsel-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/mipsel-sf/fenv.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../fenv.c
- diff -Nur musl-0.9.15/src/fenv/mips-sf/fenv.sub musl-git/src/fenv/mips-sf/fenv.sub
- --- musl-0.9.15/src/fenv/mips-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/mips-sf/fenv.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../fenv.c
- diff -Nur musl-0.9.15/src/fenv/sh/fenv.s musl-git/src/fenv/sh/fenv.s
- --- musl-0.9.15/src/fenv/sh/fenv.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/sh/fenv.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,74 @@
- +.global fegetround
- +.type fegetround, @function
- +fegetround:
- + sts fpscr, r0
- + rts
- + and #3, r0
- +
- +.global __fesetround
- +.type __fesetround, @function
- +__fesetround:
- + sts fpscr, r0
- + or r4, r0
- + lds r0, fpscr
- + rts
- + mov #0, r0
- +
- +.global fetestexcept
- +.type fetestexcept, @function
- +fetestexcept:
- + sts fpscr, r0
- + and r4, r0
- + rts
- + and #0x7c, r0
- +
- +.global feclearexcept
- +.type feclearexcept, @function
- +feclearexcept:
- + mov r4, r0
- + and #0x7c, r0
- + not r0, r4
- + sts fpscr, r0
- + and r4, r0
- + lds r0, fpscr
- + rts
- + mov #0, r0
- +
- +.global feraiseexcept
- +.type feraiseexcept, @function
- +feraiseexcept:
- + mov r4, r0
- + and #0x7c, r0
- + sts fpscr, r4
- + or r4, r0
- + lds r0, fpscr
- + rts
- + mov #0, r0
- +
- +.global fegetenv
- +.type fegetenv, @function
- +fegetenv:
- + sts fpscr, r0
- + mov.l r0, @r4
- + rts
- + mov #0, r0
- +
- +.global fesetenv
- +.type fesetenv, @function
- +fesetenv:
- + mov r4, r0
- + cmp/eq #-1, r0
- + bf 1f
- +
- + ! the default environment is complicated by the fact that we need to
- + ! preserve the current precision bit, which we do not know a priori
- + sts fpscr, r0
- + mov #8, r1
- + swap.w r1, r1
- + bra 2f
- + and r1, r0
- +
- +1: mov.l @r4, r0 ! non-default environment
- +2: lds r0, fpscr
- + rts
- + mov #0, r0
- diff -Nur musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub musl-git/src/fenv/sheb-nofpu/fenv.sub
- --- musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/sheb-nofpu/fenv.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../fenv.c
- diff -Nur musl-0.9.15/src/fenv/sh-nofpu/fenv.sub musl-git/src/fenv/sh-nofpu/fenv.sub
- --- musl-0.9.15/src/fenv/sh-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/sh-nofpu/fenv.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../fenv.c
- diff -Nur musl-0.9.15/src/fenv/x32/fenv.s musl-git/src/fenv/x32/fenv.s
- --- musl-0.9.15/src/fenv/x32/fenv.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/fenv/x32/fenv.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,97 @@
- +.global feclearexcept
- +.type feclearexcept,@function
- +feclearexcept:
- + # maintain exceptions in the sse mxcsr, clear x87 exceptions
- + mov %edi,%ecx
- + and $0x3f,%ecx
- + fnstsw %ax
- + test %eax,%ecx
- + jz 1f
- + fnclex
- +1: stmxcsr -8(%esp)
- + and $0x3f,%eax
- + or %eax,-8(%esp)
- + test %ecx,-8(%esp)
- + jz 1f
- + not %ecx
- + and %ecx,-8(%esp)
- + ldmxcsr -8(%esp)
- +1: xor %eax,%eax
- + ret
- +
- +.global feraiseexcept
- +.type feraiseexcept,@function
- +feraiseexcept:
- + and $0x3f,%edi
- + stmxcsr -8(%esp)
- + or %edi,-8(%esp)
- + ldmxcsr -8(%esp)
- + xor %eax,%eax
- + ret
- +
- +.global __fesetround
- +.type __fesetround,@function
- +__fesetround:
- + push %rax
- + xor %eax,%eax
- + mov %edi,%ecx
- + fnstcw (%esp)
- + andb $0xf3,1(%esp)
- + or %ch,1(%esp)
- + fldcw (%esp)
- + stmxcsr (%esp)
- + shl $3,%ch
- + andb $0x9f,1(%esp)
- + or %ch,1(%esp)
- + ldmxcsr (%esp)
- + pop %rcx
- + ret
- +
- +.global fegetround
- +.type fegetround,@function
- +fegetround:
- + push %rax
- + stmxcsr (%esp)
- + pop %rax
- + shr $3,%eax
- + and $0xc00,%eax
- + ret
- +
- +.global fegetenv
- +.type fegetenv,@function
- +fegetenv:
- + xor %eax,%eax
- + fnstenv (%edi)
- + stmxcsr 28(%edi)
- + ret
- +
- +.global fesetenv
- +.type fesetenv,@function
- +fesetenv:
- + xor %eax,%eax
- + inc %edi
- + jz 1f
- + fldenv -1(%edi)
- + ldmxcsr 27(%edi)
- + ret
- +1: push %rax
- + push %rax
- + pushq $0xffff
- + pushq $0x37f
- + fldenv (%esp)
- + pushq $0x1f80
- + ldmxcsr (%esp)
- + add $40,%esp
- + ret
- +
- +.global fetestexcept
- +.type fetestexcept,@function
- +fetestexcept:
- + and $0x3f,%edi
- + push %rax
- + stmxcsr (%esp)
- + pop %rsi
- + fnstsw %ax
- + or %esi,%eax
- + and %edi,%eax
- + ret
- diff -Nur musl-0.9.15/src/fenv/x86_64/fenv.s musl-git/src/fenv/x86_64/fenv.s
- --- musl-0.9.15/src/fenv/x86_64/fenv.s 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/fenv/x86_64/fenv.s 2014-03-17 16:49:44.000000000 +0100
- @@ -76,7 +76,7 @@
- ret
- 1: push %rax
- push %rax
- - push %rax
- + pushq $0xffff
- pushq $0x37f
- fldenv (%rsp)
- pushq $0x1f80
- diff -Nur musl-0.9.15/src/internal/sh/syscall.s musl-git/src/internal/sh/syscall.s
- --- musl-0.9.15/src/internal/sh/syscall.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/internal/sh/syscall.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +.global __syscall
- +.type __syscall, @function
- +__syscall:
- + ! The kernel syscall entry point documents that the trap number indicates
- + ! the number of arguments being passed, but it then ignores that information.
- + ! Since we do not actually know how many arguments are being passed, we will
- + ! say there are six, since that is the maximum we support here.
- + mov r4, r3
- + mov r5, r4
- + mov r6, r5
- + mov r7, r6
- + mov.l @r15, r7
- + mov.l @(4,r15), r0
- + mov.l @(8,r15), r1
- + trapa #22
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + rts
- + nop
- diff -Nur musl-0.9.15/src/internal/stdio_impl.h musl-git/src/internal/stdio_impl.h
- --- musl-0.9.15/src/internal/stdio_impl.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/internal/stdio_impl.h 2014-03-17 16:49:44.000000000 +0100
- @@ -17,6 +17,7 @@
- #define F_EOF 16
- #define F_ERR 32
- #define F_SVB 64
- +#define F_APP 128
-
- struct _IO_FILE {
- unsigned flags;
- diff -Nur musl-0.9.15/src/internal/syscall.h musl-git/src/internal/syscall.h
- --- musl-0.9.15/src/internal/syscall.h 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/internal/syscall.h 2014-03-17 16:49:44.000000000 +0100
- @@ -1,22 +1,28 @@
- #ifndef _INTERNAL_SYSCALL_H
- #define _INTERNAL_SYSCALL_H
-
- -#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303)
- -__attribute__((visibility("protected")))
- -#endif
- -long __syscall_ret(unsigned long), __syscall(long, ...),
- - __syscall_cp(long, long, long, long, long, long, long);
- -
- #include <sys/syscall.h>
- #include "syscall_arch.h"
-
- -#define __syscall1(n,a) __syscall1(n,(long)(a))
- -#define __syscall2(n,a,b) __syscall2(n,(long)(a),(long)(b))
- -#define __syscall3(n,a,b,c) __syscall3(n,(long)(a),(long)(b),(long)(c))
- -#define __syscall4(n,a,b,c,d) __syscall4(n,(long)(a),(long)(b),(long)(c),(long)(d))
- -#define __syscall5(n,a,b,c,d,e) __syscall5(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e))
- -#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f))
- -#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f),(long)g)
- +#ifndef __scc
- +#define __scc(X) ((long) (X))
- +typedef long syscall_arg_t;
- +#endif
- +
- +#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303)
- +__attribute__((visibility("protected")))
- +#endif
- +long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...),
- + __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t,
- + syscall_arg_t, syscall_arg_t, syscall_arg_t);
- +
- +#define __syscall1(n,a) __syscall1(n,__scc(a))
- +#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b))
- +#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c))
- +#define __syscall4(n,a,b,c,d) __syscall4(n,__scc(a),__scc(b),__scc(c),__scc(d))
- +#define __syscall5(n,a,b,c,d,e) __syscall5(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e))
- +#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f))
- +#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g))
-
- #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
- #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,)
- @@ -31,12 +37,12 @@
- #define socketcall_cp __socketcall_cp
-
- #define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0)
- -#define __syscall_cp1(n,a) (__syscall_cp)(n,(long)(a),0,0,0,0,0)
- -#define __syscall_cp2(n,a,b) (__syscall_cp)(n,(long)(a),(long)(b),0,0,0,0)
- -#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),0,0,0)
- -#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),0,0)
- -#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),0)
- -#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f))
- +#define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0)
- +#define __syscall_cp2(n,a,b) (__syscall_cp)(n,__scc(a),__scc(b),0,0,0,0)
- +#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),0,0,0)
- +#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),0,0)
- +#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),0)
- +#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f))
-
- #define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__)
- #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__))
- diff -Nur musl-0.9.15/src/internal/x32/syscall.s musl-git/src/internal/x32/syscall.s
- --- musl-0.9.15/src/internal/x32/syscall.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/internal/x32/syscall.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,12 @@
- +.global __syscall
- +.type __syscall,@function
- +__syscall:
- + movq %rdi,%rax
- + movq %rsi,%rdi
- + movq %rdx,%rsi
- + movq %rcx,%rdx
- + movq %r8,%r10
- + movq %r9,%r8
- + movq 8(%rsp),%r9
- + syscall
- + ret
- diff -Nur musl-0.9.15/src/ipc/semctl.c musl-git/src/ipc/semctl.c
- --- musl-0.9.15/src/ipc/semctl.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/ipc/semctl.c 2014-03-17 16:49:44.000000000 +0100
- @@ -3,16 +3,26 @@
- #include "syscall.h"
- #include "ipc.h"
-
- +union semun {
- + int val;
- + struct semid_ds *buf;
- + unsigned short *array;
- +};
- +
- int semctl(int id, int num, int cmd, ...)
- {
- - long arg;
- + union semun arg = {0};
- va_list ap;
- - va_start(ap, cmd);
- - arg = va_arg(ap, long);
- - va_end(ap);
- + switch (cmd) {
- + case SETVAL: case GETALL: case SETALL: case IPC_STAT: case IPC_SET:
- + case IPC_INFO: case SEM_INFO: case SEM_STAT:
- + va_start(ap, cmd);
- + arg = va_arg(ap, union semun);
- + va_end(ap);
- + }
- #ifdef SYS_semctl
- - return syscall(SYS_semctl, id, num, cmd | IPC_64, arg);
- + return syscall(SYS_semctl, id, num, cmd | IPC_64, arg.buf);
- #else
- - return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg);
- + return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg.buf);
- #endif
- }
- diff -Nur musl-0.9.15/src/ldso/dladdr.c musl-git/src/ldso/dladdr.c
- --- musl-0.9.15/src/ldso/dladdr.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/ldso/dladdr.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,9 +1,9 @@
- #define _GNU_SOURCE
- #include <dlfcn.h>
-
- -int __dladdr(void *, Dl_info *);
- +int __dladdr(const void *, Dl_info *);
-
- -int dladdr(void *addr, Dl_info *info)
- +int dladdr(const void *addr, Dl_info *info)
- {
- return __dladdr(addr, info);
- }
- diff -Nur musl-0.9.15/src/ldso/dynlink.c musl-git/src/ldso/dynlink.c
- --- musl-0.9.15/src/ldso/dynlink.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/ldso/dynlink.c 2014-03-17 16:49:44.000000000 +0100
- @@ -253,7 +253,8 @@
- name = strings + sym->st_name;
- ctx = IS_COPY(type) ? head->next : head;
- def = find_sym(ctx, name, IS_PLT(type));
- - if (!def.sym && sym->st_info>>4 != STB_WEAK) {
- + if (!def.sym && (sym->st_shndx != SHN_UNDEF
- + || sym->st_info>>4 != STB_WEAK)) {
- snprintf(errbuf, sizeof errbuf,
- "Error relocating %s: %s: symbol not found",
- dso->name, name);
- @@ -1331,7 +1332,7 @@
- return 0;
- }
-
- -int __dladdr(void *addr, Dl_info *info)
- +int __dladdr(const void *addr, Dl_info *info)
- {
- struct dso *p;
- Sym *sym;
- @@ -1441,7 +1442,7 @@
- {
- return 0;
- }
- -int __dladdr (void *addr, Dl_info *info)
- +int __dladdr (const void *addr, Dl_info *info)
- {
- return 0;
- }
- diff -Nur musl-0.9.15/src/ldso/sh/dlsym.s musl-git/src/ldso/sh/dlsym.s
- --- musl-0.9.15/src/ldso/sh/dlsym.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/ldso/sh/dlsym.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,10 @@
- +.text
- +.global dlsym
- +.type dlsym, @function
- +dlsym:
- + mov.l L1, r0
- + braf r0
- +1: mov.l @r15, r6
- +
- +.align 2
- +L1: .long __dlsym@PLT-(1b-.)
- diff -Nur musl-0.9.15/src/ldso/sh/start.s musl-git/src/ldso/sh/start.s
- --- musl-0.9.15/src/ldso/sh/start.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/ldso/sh/start.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,26 @@
- +.text
- +.global _start
- +.type _start, @function
- +_start:
- + mov.l @r15, r4
- + mov r15, r5
- + mov.l L1, r0
- + bsrf r0
- + add #4, r5
- +
- +2: mov r0, r2
- + mov.l @r15+, r1
- +1: mov.l @r15+, r0
- + cmp/eq #-1, r0
- + bt/s 1b
- + add #-1, r1
- +
- + add #1, r1
- + mov.l r0, @-r15
- + mov.l r1, @-r15
- + mov #0, r4
- + jmp @r2
- + nop
- +
- +.align 2
- +L1: .long __dynlink@PLT-(2b-.)
- diff -Nur musl-0.9.15/src/ldso/x32/dlsym.s musl-git/src/ldso/x32/dlsym.s
- --- musl-0.9.15/src/ldso/x32/dlsym.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/ldso/x32/dlsym.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,6 @@
- +.text
- +.global dlsym
- +.type dlsym,@function
- +dlsym:
- + mov (%rsp),%rdx
- + jmp __dlsym
- diff -Nur musl-0.9.15/src/ldso/x32/start.s musl-git/src/ldso/x32/start.s
- --- musl-0.9.15/src/ldso/x32/start.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/ldso/x32/start.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,24 @@
- +.text
- +.global _start
- +_start:
- + mov (%rsp),%rdi /* move argc into 1st argument slot */
- + lea 4(%rsp),%rsi /* move argv into 2nd argument slot */
- + call __dynlink
- + /* in case the dynlinker was called directly, it sets the "consumed"
- + argv values to -1. so we must loop over the array as long as -1
- + is in the top argv slot, decrement argc, and then set the stackpointer
- + to the new argc as well as argc's new value.
- + as the x32 abi has longs in the argv array, we cannot use push/pop.*/
- + movl (%rsp),%edi /* copy argc into edi */
- + xor %rdx,%rdx /* we use rdx as an offset to the current argv member */
- +1: dec %edi
- + addl $4, %edx
- + movl (%rsp, %rdx), %esi
- + cmp $-1,%esi
- + jz 1b
- + inc %edi
- + subl $4, %edx
- + lea (%rsp, %rdx), %rsp /* set rsp to new argv[-1] */
- + movl %edi, (%rsp) /* write new argc there */
- + xor %edx,%edx
- + jmp *%rax
- diff -Nur musl-0.9.15/src/linux/clone.c musl-git/src/linux/clone.c
- --- musl-0.9.15/src/linux/clone.c 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/linux/clone.c 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,19 @@
- +#include <stdarg.h>
- +#include <unistd.h>
- +#include "pthread_impl.h"
- +#include "syscall.h"
- +
- +int clone(int (*func)(void *), void *stack, int flags, void *arg, ...)
- +{
- + va_list ap;
- + pid_t *ptid, *ctid;
- + void *tls;
- +
- + va_start(ap, arg);
- + ptid = va_arg(ap, pid_t *);
- + tls = va_arg(ap, void *);
- + ctid = va_arg(ap, pid_t *);
- + va_end(ap);
- +
- + return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid));
- +}
- diff -Nur musl-0.9.15/src/linux/fallocate.c musl-git/src/linux/fallocate.c
- --- musl-0.9.15/src/linux/fallocate.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/linux/fallocate.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,9 +1,13 @@
- #define _GNU_SOURCE
- #include <fcntl.h>
- #include "syscall.h"
- +#include "libc.h"
-
- int fallocate(int fd, int mode, off_t base, off_t len)
- {
- return syscall(SYS_fallocate, fd, mode, __SYSCALL_LL_E(base),
- __SYSCALL_LL_E(len));
- }
- +
- +#undef fallocate64
- +LFS64(fallocate);
- diff -Nur musl-0.9.15/src/linux/inotify.c musl-git/src/linux/inotify.c
- --- musl-0.9.15/src/linux/inotify.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/linux/inotify.c 2014-03-17 16:49:44.000000000 +0100
- @@ -15,7 +15,7 @@
- return syscall(SYS_inotify_add_watch, fd, pathname, mask);
- }
-
- -int inotify_rm_watch(int fd, uint32_t wd)
- +int inotify_rm_watch(int fd, int wd)
- {
- return syscall(SYS_inotify_rm_watch, fd, wd);
- }
- diff -Nur musl-0.9.15/src/linux/remap_file_pages.c musl-git/src/linux/remap_file_pages.c
- --- musl-0.9.15/src/linux/remap_file_pages.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/linux/remap_file_pages.c 2014-03-17 16:49:44.000000000 +0100
- @@ -2,7 +2,7 @@
- #include <sys/mman.h>
- #include "syscall.h"
-
- -int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags)
- +int remap_file_pages(void *addr, size_t size, int prot, size_t pgoff, int flags)
- {
- return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags);
- }
- diff -Nur musl-0.9.15/src/linux/stime.c musl-git/src/linux/stime.c
- --- musl-0.9.15/src/linux/stime.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/linux/stime.c 2014-03-17 16:49:44.000000000 +0100
- @@ -2,7 +2,7 @@
- #include <time.h>
- #include <sys/time.h>
-
- -int stime(time_t *t)
- +int stime(const time_t *t)
- {
- struct timeval tv = { .tv_sec = *t, .tv_usec = 0 };
- return settimeofday(&tv, (void *)0);
- diff -Nur musl-0.9.15/src/linux/x32/sysinfo.s musl-git/src/linux/x32/sysinfo.s
- --- musl-0.9.15/src/linux/x32/sysinfo.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/linux/x32/sysinfo.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.text
- +.global sysinfo
- +.type sysinfo,@function
- +sysinfo:
- + jmp __x32_sysinfo
- diff -Nur musl-0.9.15/src/locale/wcsxfrm.c musl-git/src/locale/wcsxfrm.c
- --- musl-0.9.15/src/locale/wcsxfrm.c 2014-01-03 21:12:17.000000000 +0100
- +++ musl-git/src/locale/wcsxfrm.c 2014-03-17 16:49:44.000000000 +0100
- @@ -6,10 +6,12 @@
- size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc)
- {
- size_t l = wcslen(src);
- - if (l >= n) {
- + if (l < n) {
- + wmemcpy(dest, src, l+1);
- + } else if (n) {
- wmemcpy(dest, src, n-1);
- dest[n-1] = 0;
- - } else wcscpy(dest, src);
- + }
- return l;
- }
-
- diff -Nur musl-0.9.15/src/math/i386/remainderf.s musl-git/src/math/i386/remainderf.s
- --- musl-0.9.15/src/math/i386/remainderf.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/math/i386/remainderf.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,6 +1,9 @@
- .global remainderf
- .type remainderf,@function
- remainderf:
- +.weak dremf
- +.type dremf,@function
- +dremf:
- flds 8(%esp)
- flds 4(%esp)
- 1: fprem1
- diff -Nur musl-0.9.15/src/math/i386/remainder.s musl-git/src/math/i386/remainder.s
- --- musl-0.9.15/src/math/i386/remainder.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/math/i386/remainder.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,6 +1,9 @@
- .global remainder
- .type remainder,@function
- remainder:
- +.weak drem
- +.type drem,@function
- +drem:
- fldl 12(%esp)
- fldl 4(%esp)
- 1: fprem1
- diff -Nur musl-0.9.15/src/math/x32/acosl.s musl-git/src/math/x32/acosl.s
- --- musl-0.9.15/src/math/x32/acosl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/acosl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,16 @@
- +# see ../i386/acos.s
- +
- +.global acosl
- +.type acosl,@function
- +acosl:
- + fldt 8(%esp)
- +1: fld %st(0)
- + fld1
- + fsub %st(0),%st(1)
- + fadd %st(2)
- + fmulp
- + fsqrt
- + fabs
- + fxch %st(1)
- + fpatan
- + ret
- diff -Nur musl-0.9.15/src/math/x32/asinl.s musl-git/src/math/x32/asinl.s
- --- musl-0.9.15/src/math/x32/asinl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/asinl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,12 @@
- +.global asinl
- +.type asinl,@function
- +asinl:
- + fldt 8(%esp)
- +1: fld %st(0)
- + fld1
- + fsub %st(0),%st(1)
- + fadd %st(2)
- + fmulp
- + fsqrt
- + fpatan
- + ret
- diff -Nur musl-0.9.15/src/math/x32/atan2l.s musl-git/src/math/x32/atan2l.s
- --- musl-0.9.15/src/math/x32/atan2l.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/atan2l.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global atan2l
- +.type atan2l,@function
- +atan2l:
- + fldt 8(%esp)
- + fldt 24(%esp)
- + fpatan
- + ret
- diff -Nur musl-0.9.15/src/math/x32/atanl.s musl-git/src/math/x32/atanl.s
- --- musl-0.9.15/src/math/x32/atanl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/atanl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global atanl
- +.type atanl,@function
- +atanl:
- + fldt 8(%esp)
- + fld1
- + fpatan
- + ret
- diff -Nur musl-0.9.15/src/math/x32/ceill.s musl-git/src/math/x32/ceill.s
- --- musl-0.9.15/src/math/x32/ceill.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/ceill.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +# see floorl.s
- diff -Nur musl-0.9.15/src/math/x32/exp2l.s musl-git/src/math/x32/exp2l.s
- --- musl-0.9.15/src/math/x32/exp2l.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/exp2l.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,90 @@
- +.global expm1l
- +.type expm1l,@function
- +expm1l:
- + fldt 8(%esp)
- + fldl2e
- + fmulp
- + movl $0xc2820000,-4(%esp)
- + flds -4(%esp)
- + fucomp %st(1)
- + fnstsw %ax
- + sahf
- + fld1
- + jb 1f
- + # x*log2e <= -65, return -1 without underflow
- + fstp %st(1)
- + fchs
- + ret
- +1: fld %st(1)
- + fabs
- + fucom %st(1)
- + fnstsw %ax
- + fstp %st(0)
- + fstp %st(0)
- + sahf
- + ja 1f
- + f2xm1
- + ret
- +1: push %rax
- + call 1f
- + pop %rax
- + fld1
- + fsubrp
- + ret
- +
- +.global exp2l
- +.type exp2l,@function
- +exp2l:
- + fldt 8(%esp)
- +1: fld %st(0)
- + sub $16,%esp
- + fstpt (%esp)
- + mov 8(%esp),%ax
- + and $0x7fff,%ax
- + cmp $0x3fff+13,%ax
- + jb 4f # |x| < 8192
- + cmp $0x3fff+15,%ax
- + jae 3f # |x| >= 32768
- + fsts (%esp)
- + cmpl $0xc67ff800,(%esp)
- + jb 2f # x > -16382
- + movl $0x5f000000,(%esp)
- + flds (%esp) # 0x1p63
- + fld %st(1)
- + fsub %st(1)
- + faddp
- + fucomp %st(1)
- + fnstsw
- + sahf
- + je 2f # x - 0x1p63 + 0x1p63 == x
- + movl $1,(%esp)
- + flds (%esp) # 0x1p-149
- + fdiv %st(1)
- + fstps (%esp) # raise underflow
- +2: fld1
- + fld %st(1)
- + frndint
- + fxch %st(2)
- + fsub %st(2) # st(0)=x-rint(x), st(1)=1, st(2)=rint(x)
- + f2xm1
- + faddp # 2^(x-rint(x))
- +1: fscale
- + fstp %st(1)
- + add $16,%esp
- + ret
- +3: xor %eax,%eax
- +4: cmp $0x3fff-64,%ax
- + fld1
- + jb 1b # |x| < 0x1p-64
- + fstpt (%esp)
- + fistl 8(%esp)
- + fildl 8(%esp)
- + fsubrp %st(1)
- + addl $0x3fff,8(%esp)
- + f2xm1
- + fld1
- + faddp # 2^(x-rint(x))
- + fldt (%esp) # 2^rint(x)
- + fmulp
- + add $16,%esp
- + ret
- diff -Nur musl-0.9.15/src/math/x32/expl.s musl-git/src/math/x32/expl.s
- --- musl-0.9.15/src/math/x32/expl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/expl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,101 @@
- +# exp(x) = 2^hi + 2^hi (2^lo - 1)
- +# where hi+lo = log2e*x with 128bit precision
- +# exact log2e*x calculation depends on nearest rounding mode
- +# using the exact multiplication method of Dekker and Veltkamp
- +
- +.global expl
- +.type expl,@function
- +expl:
- + fldt 8(%esp)
- +
- + # interesting case: 0x1p-32 <= |x| < 16384
- + # check if (exponent|0x8000) is in [0xbfff-32, 0xbfff+13]
- + mov 16(%esp), %ax
- + or $0x8000, %ax
- + sub $0xbfdf, %ax
- + cmp $45, %ax
- + jbe 2f
- + test %ax, %ax
- + fld1
- + js 1f
- + # if |x|>=0x1p14 or nan return 2^trunc(x)
- + fscale
- + fstp %st(1)
- + ret
- + # if |x|<0x1p-32 return 1+x
- +1: faddp
- + ret
- +
- + # should be 0x1.71547652b82fe178p0L == 0x3fff b8aa3b29 5c17f0bc
- + # it will be wrong on non-nearest rounding mode
- +2: fldl2e
- + sub $48, %esp
- + # hi = log2e_hi*x
- + # 2^hi = exp2l(hi)
- + fmul %st(1),%st
- + fld %st(0)
- + fstpt (%esp)
- + fstpt 16(%esp)
- + fstpt 32(%esp)
- + call exp2l
- + # if 2^hi == inf return 2^hi
- + fld %st(0)
- + fstpt (%esp)
- + cmpw $0x7fff, 8(%esp)
- + je 1f
- + fldt 32(%esp)
- + fldt 16(%esp)
- + # fpu stack: 2^hi x hi
- + # exact mult: x*log2e
- + fld %st(1)
- + # c = 0x1p32+1
- + movq $0x41f0000000100000,%rax
- + pushq %rax
- + fldl (%esp)
- + # xh = x - c*x + c*x
- + # xl = x - xh
- + fmulp
- + fld %st(2)
- + fsub %st(1), %st
- + faddp
- + fld %st(2)
- + fsub %st(1), %st
- + # yh = log2e_hi - c*log2e_hi + c*log2e_hi
- + movq $0x3ff7154765200000,%rax
- + pushq %rax
- + fldl (%esp)
- + # fpu stack: 2^hi x hi xh xl yh
- + # lo = hi - xh*yh + xl*yh
- + fld %st(2)
- + fmul %st(1), %st
- + fsubp %st, %st(4)
- + fmul %st(1), %st
- + faddp %st, %st(3)
- + # yl = log2e_hi - yh
- + movq $0x3de705fc2f000000,%rax
- + pushq %rax
- + fldl (%esp)
- + # fpu stack: 2^hi x lo xh xl yl
- + # lo += xh*yl + xl*yl
- + fmul %st, %st(2)
- + fmulp %st, %st(1)
- + fxch %st(2)
- + faddp
- + faddp
- + # log2e_lo
- + movq $0xbfbe,%rax
- + pushq %rax
- + movq $0x82f0025f2dc582ee,%rax
- + pushq %rax
- + fldt (%esp)
- + add $40,%esp
- + # fpu stack: 2^hi x lo log2e_lo
- + # lo += log2e_lo*x
- + # return 2^hi + 2^hi (2^lo - 1)
- + fmulp %st, %st(2)
- + faddp
- + f2xm1
- + fmul %st(1), %st
- + faddp
- +1: add $48, %esp
- + ret
- diff -Nur musl-0.9.15/src/math/x32/expm1l.s musl-git/src/math/x32/expm1l.s
- --- musl-0.9.15/src/math/x32/expm1l.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/expm1l.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +# see exp2l.s
- diff -Nur musl-0.9.15/src/math/x32/fabsf.s musl-git/src/math/x32/fabsf.s
- --- musl-0.9.15/src/math/x32/fabsf.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/fabsf.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global fabsf
- +.type fabsf,@function
- +fabsf:
- + mov $0x7fffffff,%eax
- + movq %rax,%xmm1
- + andps %xmm1,%xmm0
- + ret
- diff -Nur musl-0.9.15/src/math/x32/fabsl.s musl-git/src/math/x32/fabsl.s
- --- musl-0.9.15/src/math/x32/fabsl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/fabsl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,6 @@
- +.global fabsl
- +.type fabsl,@function
- +fabsl:
- + fldt 8(%esp)
- + fabs
- + ret
- diff -Nur musl-0.9.15/src/math/x32/fabs.s musl-git/src/math/x32/fabs.s
- --- musl-0.9.15/src/math/x32/fabs.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/fabs.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,9 @@
- +.global fabs
- +.type fabs,@function
- +fabs:
- + xor %eax,%eax
- + dec %rax
- + shr %rax
- + movq %rax,%xmm1
- + andpd %xmm1,%xmm0
- + ret
- diff -Nur musl-0.9.15/src/math/x32/floorl.s musl-git/src/math/x32/floorl.s
- --- musl-0.9.15/src/math/x32/floorl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/floorl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,27 @@
- +.global floorl
- +.type floorl,@function
- +floorl:
- + fldt 8(%esp)
- +1: mov $0x7,%al
- +1: fstcw 8(%esp)
- + mov 9(%esp),%ah
- + mov %al,9(%esp)
- + fldcw 8(%esp)
- + frndint
- + mov %ah,9(%esp)
- + fldcw 8(%esp)
- + ret
- +
- +.global ceill
- +.type ceill,@function
- +ceill:
- + fldt 8(%esp)
- + mov $0xb,%al
- + jmp 1b
- +
- +.global truncl
- +.type truncl,@function
- +truncl:
- + fldt 8(%esp)
- + mov $0xf,%al
- + jmp 1b
- diff -Nur musl-0.9.15/src/math/x32/fmodl.s musl-git/src/math/x32/fmodl.s
- --- musl-0.9.15/src/math/x32/fmodl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/fmodl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,11 @@
- +.global fmodl
- +.type fmodl,@function
- +fmodl:
- + fldt 24(%esp)
- + fldt 8(%esp)
- +1: fprem
- + fstsw %ax
- + sahf
- + jp 1b
- + fstp %st(1)
- + ret
- diff -Nur musl-0.9.15/src/math/x32/llrintf.s musl-git/src/math/x32/llrintf.s
- --- musl-0.9.15/src/math/x32/llrintf.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/llrintf.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global llrintf
- +.type llrintf,@function
- +llrintf:
- + cvtss2si %xmm0,%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/llrintl.s musl-git/src/math/x32/llrintl.s
- --- musl-0.9.15/src/math/x32/llrintl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/llrintl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global llrintl
- +.type llrintl,@function
- +llrintl:
- + fldt 8(%esp)
- + fistpll 8(%esp)
- + mov 8(%esp),%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/llrint.s musl-git/src/math/x32/llrint.s
- --- musl-0.9.15/src/math/x32/llrint.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/llrint.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global llrint
- +.type llrint,@function
- +llrint:
- + cvtsd2si %xmm0,%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/log10l.s musl-git/src/math/x32/log10l.s
- --- musl-0.9.15/src/math/x32/log10l.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/log10l.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global log10l
- +.type log10l,@function
- +log10l:
- + fldlg2
- + fldt 8(%esp)
- + fyl2x
- + ret
- diff -Nur musl-0.9.15/src/math/x32/log1pl.s musl-git/src/math/x32/log1pl.s
- --- musl-0.9.15/src/math/x32/log1pl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/log1pl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,15 @@
- +.global log1pl
- +.type log1pl,@function
- +log1pl:
- + mov 14(%esp),%eax
- + fldln2
- + and $0x7fffffff,%eax
- + fldt 8(%esp)
- + cmp $0x3ffd9400,%eax
- + ja 1f
- + fyl2xp1
- + ret
- +1: fld1
- + faddp
- + fyl2x
- + ret
- diff -Nur musl-0.9.15/src/math/x32/log2l.s musl-git/src/math/x32/log2l.s
- --- musl-0.9.15/src/math/x32/log2l.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/log2l.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global log2l
- +.type log2l,@function
- +log2l:
- + fld1
- + fldt 8(%esp)
- + fyl2x
- + ret
- diff -Nur musl-0.9.15/src/math/x32/logl.s musl-git/src/math/x32/logl.s
- --- musl-0.9.15/src/math/x32/logl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/logl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global logl
- +.type logl,@function
- +logl:
- + fldln2
- + fldt 8(%esp)
- + fyl2x
- + ret
- diff -Nur musl-0.9.15/src/math/x32/lrintf.s musl-git/src/math/x32/lrintf.s
- --- musl-0.9.15/src/math/x32/lrintf.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/lrintf.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global lrintf
- +.type lrintf,@function
- +lrintf:
- + cvtss2si %xmm0,%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/lrintl.s musl-git/src/math/x32/lrintl.s
- --- musl-0.9.15/src/math/x32/lrintl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/lrintl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,7 @@
- +.global lrintl
- +.type lrintl,@function
- +lrintl:
- + fldt 8(%esp)
- + fistpll 8(%esp)
- + mov 8(%esp),%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/lrint.s musl-git/src/math/x32/lrint.s
- --- musl-0.9.15/src/math/x32/lrint.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/lrint.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global lrint
- +.type lrint,@function
- +lrint:
- + cvtsd2si %xmm0,%rax
- + ret
- diff -Nur musl-0.9.15/src/math/x32/remainderl.s musl-git/src/math/x32/remainderl.s
- --- musl-0.9.15/src/math/x32/remainderl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/remainderl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,11 @@
- +.global remainderl
- +.type remainderl,@function
- +remainderl:
- + fldt 24(%esp)
- + fldt 8(%esp)
- +1: fprem1
- + fstsw %ax
- + sahf
- + jp 1b
- + fstp %st(1)
- + ret
- diff -Nur musl-0.9.15/src/math/x32/rintl.s musl-git/src/math/x32/rintl.s
- --- musl-0.9.15/src/math/x32/rintl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/rintl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,6 @@
- +.global rintl
- +.type rintl,@function
- +rintl:
- + fldt 8(%esp)
- + frndint
- + ret
- diff -Nur musl-0.9.15/src/math/x32/sqrtf.s musl-git/src/math/x32/sqrtf.s
- --- musl-0.9.15/src/math/x32/sqrtf.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/sqrtf.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,4 @@
- +.global sqrtf
- +.type sqrtf,@function
- +sqrtf: sqrtss %xmm0, %xmm0
- + ret
- diff -Nur musl-0.9.15/src/math/x32/sqrtl.s musl-git/src/math/x32/sqrtl.s
- --- musl-0.9.15/src/math/x32/sqrtl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/sqrtl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global sqrtl
- +.type sqrtl,@function
- +sqrtl: fldt 8(%esp)
- + fsqrt
- + ret
- diff -Nur musl-0.9.15/src/math/x32/sqrt.s musl-git/src/math/x32/sqrt.s
- --- musl-0.9.15/src/math/x32/sqrt.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/sqrt.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,4 @@
- +.global sqrt
- +.type sqrt,@function
- +sqrt: sqrtsd %xmm0, %xmm0
- + ret
- diff -Nur musl-0.9.15/src/math/x32/truncl.s musl-git/src/math/x32/truncl.s
- --- musl-0.9.15/src/math/x32/truncl.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/math/x32/truncl.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +# see floorl.s
- diff -Nur musl-0.9.15/src/misc/nftw.c musl-git/src/misc/nftw.c
- --- musl-0.9.15/src/misc/nftw.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/misc/nftw.c 2014-03-17 16:49:44.000000000 +0100
- @@ -46,8 +46,7 @@
- type = FTW_F;
- }
-
- - if ((flags & FTW_MOUNT) && h
- - && (st.st_dev != h->dev || st.st_ino != h->ino))
- + if ((flags & FTW_MOUNT) && h && st.st_dev != h->dev)
- return 0;
-
- new.chain = h;
- diff -Nur musl-0.9.15/src/misc/pty.c musl-git/src/misc/pty.c
- --- musl-0.9.15/src/misc/pty.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/misc/pty.c 2014-03-17 16:49:44.000000000 +0100
- @@ -26,7 +26,7 @@
- {
- int pty, err;
- if (!buf) len = 0;
- - if ((err = __syscall(SYS_ioctl, fd, TIOCGPTN, &pty))) return err;
- + if ((err = __syscall(SYS_ioctl, fd, TIOCGPTN, &pty))) return -err;
- if (snprintf(buf, len, "/dev/pts/%d", pty) >= len) return ERANGE;
- return 0;
- }
- diff -Nur musl-0.9.15/src/misc/syscall.c musl-git/src/misc/syscall.c
- --- musl-0.9.15/src/misc/syscall.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/misc/syscall.c 2014-03-18 22:16:18.000000000 +0100
- @@ -6,14 +6,14 @@
- long syscall(long n, ...)
- {
- va_list ap;
- - long a,b,c,d,e,f;
- + syscall_arg_t a,b,c,d,e,f;
- va_start(ap, n);
- - a=va_arg(ap, long);
- - b=va_arg(ap, long);
- - c=va_arg(ap, long);
- - d=va_arg(ap, long);
- - e=va_arg(ap, long);
- - f=va_arg(ap, long);
- + a=va_arg(ap, syscall_arg_t);
- + b=va_arg(ap, syscall_arg_t);
- + c=va_arg(ap, syscall_arg_t);
- + d=va_arg(ap, syscall_arg_t);
- + e=va_arg(ap, syscall_arg_t);
- + f=va_arg(ap, syscall_arg_t);
- va_end(ap);
- return __syscall_ret(__syscall(n,a,b,c,d,e,f));
- }
- diff -Nur musl-0.9.15/src/network/accept4.c musl-git/src/network/accept4.c
- --- musl-0.9.15/src/network/accept4.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/network/accept4.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,9 +1,20 @@
- #define _GNU_SOURCE
- #include <sys/socket.h>
- +#include <errno.h>
- +#include <fcntl.h>
- #include "syscall.h"
- #include "libc.h"
-
- int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg)
- {
- - return socketcall_cp(accept4, fd, addr, len, flg, 0, 0);
- + if (!flg) return accept(fd, addr, len);
- + int ret = socketcall_cp(accept4, fd, addr, len, flg, 0, 0);
- + if (ret>=0 || (errno != ENOSYS && errno != EINVAL)) return ret;
- + ret = accept(fd, addr, len);
- + if (ret<0) return ret;
- + if (flg & SOCK_CLOEXEC)
- + __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC);
- + if (flg & SOCK_NONBLOCK)
- + __syscall(SYS_fcntl, ret, F_SETFL, O_NONBLOCK);
- + return ret;
- }
- diff -Nur musl-0.9.15/src/network/inet_legacy.c musl-git/src/network/inet_legacy.c
- --- musl-0.9.15/src/network/inet_legacy.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/network/inet_legacy.c 2014-03-17 16:49:44.000000000 +0100
- @@ -16,9 +16,8 @@
- return 1;
- }
-
- -struct in_addr inet_makeaddr(int net, int host)
- +struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h)
- {
- - uint32_t n = net, h = host;
- if (n < 256) h |= n<<24;
- else if (n < 65536) h |= n<<16;
- else h |= n<<8;
- diff -Nur musl-0.9.15/src/network/proto.c musl-git/src/network/proto.c
- --- musl-0.9.15/src/network/proto.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/network/proto.c 2014-03-17 16:49:44.000000000 +0100
- @@ -4,7 +4,7 @@
- /* do we really need all these?? */
-
- static int idx;
- -static const unsigned char protos[][6] = {
- +static const unsigned char protos[][8] = {
- "\000ip",
- "\001icmp",
- "\002igmp",
- @@ -13,7 +13,9 @@
- "\014pup",
- "\021udp",
- "\026idp",
- - "\377raw"
- + "\051ipv6",
- + "\072icmpv6",
- + "\377raw",
- "\0\0"
- };
-
- diff -Nur musl-0.9.15/src/prng/random.c musl-git/src/prng/random.c
- --- musl-0.9.15/src/prng/random.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/prng/random.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,10 +1,3 @@
- -/*
- - * random.c - Copyright © 2011 Szabolcs Nagy
- - * Permission to use, copy, modify, and/or distribute this code
- - * for any purpose with or without fee is hereby granted.
- - * There is no warranty.
- -*/
- -
- #include <stdlib.h>
- #include <stdint.h>
- #include "libc.h"
- @@ -12,11 +5,7 @@
- /*
- this code uses the same lagged fibonacci generator as the
- original bsd random implementation except for the seeding
- -
- -different seeds produce different sequences with long period
- -(other libcs seed the state with a park-miller generator
- -when seed=0 some fail to produce good random sequence
- -others produce the same sequence as another seed)
- +which was broken in the original
- */
-
- static uint32_t init[] = {
- @@ -98,6 +87,7 @@
- n = 63;
- x = (uint32_t*)state + 1;
- __srandom(seed);
- + savestate();
- UNLOCK(lock);
- return old;
- }
- diff -Nur musl-0.9.15/src/process/posix_spawn.c musl-git/src/process/posix_spawn.c
- --- musl-0.9.15/src/process/posix_spawn.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/process/posix_spawn.c 2014-03-17 16:49:44.000000000 +0100
- @@ -166,7 +166,7 @@
-
- close(args.p[0]);
-
- - if (!ec) *res = pid;
- + if (!ec && res) *res = pid;
-
- pthread_sigmask(SIG_SETMASK, &args.oldmask, 0);
- pthread_setcancelstate(cs, 0);
- diff -Nur musl-0.9.15/src/process/x32/vfork.s musl-git/src/process/x32/vfork.s
- --- musl-0.9.15/src/process/x32/vfork.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/process/x32/vfork.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,12 @@
- +.global __vfork
- +.weak vfork
- +.type __vfork,@function
- +.type vfork,@function
- +__vfork:
- +vfork:
- + pop %rdx
- + mov $0x4000003a,%eax /* SYS_vfork */
- + syscall
- + push %rdx
- + mov %rax,%rdi
- + jmp __syscall_ret
- diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub musl-git/src/setjmp/mipsel-sf/longjmp.sub
- --- musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mipsel-sf/longjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../mips-sf/longjmp.s
- diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub musl-git/src/setjmp/mipsel-sf/setjmp.sub
- --- musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mipsel-sf/setjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../mips-sf/setjmp.s
- diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.s musl-git/src/setjmp/mips-sf/longjmp.s
- --- musl-0.9.15/src/setjmp/mips-sf/longjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mips-sf/longjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,25 @@
- +.set noreorder
- +
- +.global _longjmp
- +.global longjmp
- +.type _longjmp,@function
- +.type longjmp,@function
- +_longjmp:
- +longjmp:
- + move $2, $5
- + bne $2, $0, 1f
- + nop
- + addu $2, $2, 1
- +1: lw $ra, 0($4)
- + lw $sp, 4($4)
- + lw $16, 8($4)
- + lw $17, 12($4)
- + lw $18, 16($4)
- + lw $19, 20($4)
- + lw $20, 24($4)
- + lw $21, 28($4)
- + lw $22, 32($4)
- + lw $23, 36($4)
- + lw $30, 40($4)
- + jr $ra
- + lw $28, 44($4)
- diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.sub musl-git/src/setjmp/mips-sf/longjmp.sub
- --- musl-0.9.15/src/setjmp/mips-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mips-sf/longjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +longjmp.s
- diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.s musl-git/src/setjmp/mips-sf/setjmp.s
- --- musl-0.9.15/src/setjmp/mips-sf/setjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mips-sf/setjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,25 @@
- +.set noreorder
- +
- +.global __setjmp
- +.global _setjmp
- +.global setjmp
- +.type __setjmp,@function
- +.type _setjmp,@function
- +.type setjmp,@function
- +__setjmp:
- +_setjmp:
- +setjmp:
- + sw $ra, 0($4)
- + sw $sp, 4($4)
- + sw $16, 8($4)
- + sw $17, 12($4)
- + sw $18, 16($4)
- + sw $19, 20($4)
- + sw $20, 24($4)
- + sw $21, 28($4)
- + sw $22, 32($4)
- + sw $23, 36($4)
- + sw $30, 40($4)
- + sw $28, 44($4)
- + jr $ra
- + li $2, 0
- diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.sub musl-git/src/setjmp/mips-sf/setjmp.sub
- --- musl-0.9.15/src/setjmp/mips-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/mips-sf/setjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +setjmp.s
- diff -Nur musl-0.9.15/src/setjmp/sh/longjmp.s musl-git/src/setjmp/sh/longjmp.s
- --- musl-0.9.15/src/setjmp/sh/longjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh/longjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,26 @@
- +.global _longjmp
- +.global longjmp
- +.type _longjmp, @function
- +.type longjmp, @function
- +_longjmp:
- +longjmp:
- + mov.l @r4+, r8
- + mov.l @r4+, r9
- + mov.l @r4+, r10
- + mov.l @r4+, r11
- + mov.l @r4+, r12
- + mov.l @r4+, r13
- + mov.l @r4+, r14
- + mov.l @r4+, r15
- + lds.l @r4+, pr
- + fmov.s @r4+, fr12
- + fmov.s @r4+, fr13
- + fmov.s @r4+, fr14
- + fmov.s @r4+, fr15
- +
- + tst r5, r5
- + movt r0
- + add r5, r0
- +
- + rts
- + nop
- diff -Nur musl-0.9.15/src/setjmp/sh/setjmp.s musl-git/src/setjmp/sh/setjmp.s
- --- musl-0.9.15/src/setjmp/sh/setjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh/setjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,25 @@
- +.global __setjmp
- +.global _setjmp
- +.global setjmp
- +.type __setjmp, @function
- +.type _setjmp, @function
- +.type setjmp, @function
- +__setjmp:
- +_setjmp:
- +setjmp:
- + add #52, r4
- + fmov.s fr15, @-r4
- + fmov.s fr14, @-r4
- + fmov.s fr13, @-r4
- + fmov.s fr12, @-r4
- + sts.l pr, @-r4
- + mov.l r15 @-r4
- + mov.l r14, @-r4
- + mov.l r13, @-r4
- + mov.l r12, @-r4
- + mov.l r11, @-r4
- + mov.l r10, @-r4
- + mov.l r9, @-r4
- + mov.l r8, @-r4
- + rts
- + mov #0, r0
- diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub musl-git/src/setjmp/sheb-nofpu/longjmp.sub
- --- musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sheb-nofpu/longjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../sh-nofpu/longjmp.s
- diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub musl-git/src/setjmp/sheb-nofpu/setjmp.sub
- --- musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sheb-nofpu/setjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +../sh-nofpu/setjmp.s
- diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s musl-git/src/setjmp/sh-nofpu/longjmp.s
- --- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh-nofpu/longjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +.global _longjmp
- +.global longjmp
- +.type _longjmp, @function
- +.type longjmp, @function
- +_longjmp:
- +longjmp:
- + mov.l @r4+, r8
- + mov.l @r4+, r9
- + mov.l @r4+, r10
- + mov.l @r4+, r11
- + mov.l @r4+, r12
- + mov.l @r4+, r13
- + mov.l @r4+, r14
- + mov.l @r4+, r15
- + lds.l @r4+, pr
- +
- + tst r5, r5
- + movt r0
- + add r5, r0
- +
- + rts
- + nop
- diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub musl-git/src/setjmp/sh-nofpu/longjmp.sub
- --- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh-nofpu/longjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +longjmp.s
- diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s musl-git/src/setjmp/sh-nofpu/setjmp.s
- --- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh-nofpu/setjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,21 @@
- +.global __setjmp
- +.global _setjmp
- +.global setjmp
- +.type __setjmp, @function
- +.type _setjmp, @function
- +.type setjmp, @function
- +__setjmp:
- +_setjmp:
- +setjmp:
- + add #36, r4
- + sts.l pr, @-r4
- + mov.l r15 @-r4
- + mov.l r14, @-r4
- + mov.l r13, @-r4
- + mov.l r12, @-r4
- + mov.l r11, @-r4
- + mov.l r10, @-r4
- + mov.l r9, @-r4
- + mov.l r8, @-r4
- + rts
- + mov #0, r0
- diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub musl-git/src/setjmp/sh-nofpu/setjmp.sub
- --- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/sh-nofpu/setjmp.sub 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1 @@
- +setjmp.s
- diff -Nur musl-0.9.15/src/setjmp/x32/longjmp.s musl-git/src/setjmp/x32/longjmp.s
- --- musl-0.9.15/src/setjmp/x32/longjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/x32/longjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
- +.global _longjmp
- +.global longjmp
- +.type _longjmp,@function
- +.type longjmp,@function
- +_longjmp:
- +longjmp:
- + mov %rsi,%rax /* val will be longjmp return */
- + test %rax,%rax
- + jnz 1f
- + inc %rax /* if val==0, val=1 per longjmp semantics */
- +1:
- + mov (%rdi),%rbx /* rdi is the jmp_buf, restore regs from it */
- + mov 8(%rdi),%rbp
- + mov 16(%rdi),%r12
- + mov 24(%rdi),%r13
- + mov 32(%rdi),%r14
- + mov 40(%rdi),%r15
- + mov 48(%rdi),%rdx /* this ends up being the stack pointer */
- + mov %rdx,%rsp
- + mov 56(%rdi),%rdx /* this is the instruction pointer */
- + jmp *%rdx /* goto saved address without altering rsp */
- diff -Nur musl-0.9.15/src/setjmp/x32/setjmp.s musl-git/src/setjmp/x32/setjmp.s
- --- musl-0.9.15/src/setjmp/x32/setjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/setjmp/x32/setjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
- +.global __setjmp
- +.global _setjmp
- +.global setjmp
- +.type __setjmp,@function
- +.type _setjmp,@function
- +.type setjmp,@function
- +__setjmp:
- +_setjmp:
- +setjmp:
- + mov %rbx,(%rdi) /* rdi is jmp_buf, move registers onto it */
- + mov %rbp,8(%rdi)
- + mov %r12,16(%rdi)
- + mov %r13,24(%rdi)
- + mov %r14,32(%rdi)
- + mov %r15,40(%rdi)
- + lea 8(%rsp),%rdx /* this is our rsp WITHOUT current ret addr */
- + mov %rdx,48(%rdi)
- + mov (%rsp),%rdx /* save return addr ptr for new rip */
- + mov %rdx,56(%rdi)
- + xor %rax,%rax /* always return 0 */
- + ret
- diff -Nur musl-0.9.15/src/signal/sh/restore.s musl-git/src/signal/sh/restore.s
- --- musl-0.9.15/src/signal/sh/restore.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/signal/sh/restore.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,24 @@
- +.global __restore
- +.type __restore, @function
- +__restore:
- + mov #119, r3 !__NR_sigreturn
- + trapa #16
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- +
- +.global __restore_rt
- +.type __restore_rt, @function
- +__restore_rt:
- + mov #100, r3 !__NR_rt_sigreturn
- + add #73, r3
- + trapa #16
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- diff -Nur musl-0.9.15/src/signal/sh/sigsetjmp.s musl-git/src/signal/sh/sigsetjmp.s
- --- musl-0.9.15/src/signal/sh/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/signal/sh/sigsetjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,27 @@
- +.global sigsetjmp
- +.type sigsetjmp, @function
- +sigsetjmp:
- + mov.l r5, @(36,r4)
- + tst r5, r5
- + bf 2f
- +
- + sts.l pr, @-r15
- + mov.l r4, @-r15
- + mov r4, r6
- + add #40, r6
- + mov #0, r5
- + mov #2, r4
- + mov.l L1, r0
- + bsrf r0
- + nop
- +1: mov.l @r15+, r4
- + lds.l @r15+, pr
- +
- +2: mov.l L2, r0
- + braf r0
- + nop
- +3:
- +
- +.align 2
- +L1: .long pthread_sigmask@PLT-(1b-.)
- +L2: .long setjmp@PLT-(3b-.)
- diff -Nur musl-0.9.15/src/signal/sigandset.c musl-git/src/signal/sigandset.c
- --- musl-0.9.15/src/signal/sigandset.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/signal/sigandset.c 2014-03-17 16:49:44.000000000 +0100
- @@ -3,7 +3,7 @@
-
- #define SST_SIZE (_NSIG/8/sizeof(long))
-
- -int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right)
- +int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right)
- {
- unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
- for(; i < SST_SIZE; i++) d[i] = l[i] & r[i];
- diff -Nur musl-0.9.15/src/signal/sigorset.c musl-git/src/signal/sigorset.c
- --- musl-0.9.15/src/signal/sigorset.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/signal/sigorset.c 2014-03-17 16:49:44.000000000 +0100
- @@ -3,7 +3,7 @@
-
- #define SST_SIZE (_NSIG/8/sizeof(long))
-
- -int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right)
- +int sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right)
- {
- unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
- for(; i < SST_SIZE; i++) d[i] = l[i] | r[i];
- diff -Nur musl-0.9.15/src/signal/x32/restore.s musl-git/src/signal/x32/restore.s
- --- musl-0.9.15/src/signal/x32/restore.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/signal/x32/restore.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,8 @@
- +.global __restore_rt
- +.global __restore
- +.type __restore_rt,@function
- +.type __restore,@function
- +__restore_rt:
- +__restore:
- + movl $0x40000201, %eax /* SYS_rt_sigreturn */
- + syscall
- diff -Nur musl-0.9.15/src/signal/x32/sigsetjmp.s musl-git/src/signal/x32/sigsetjmp.s
- --- musl-0.9.15/src/signal/x32/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/signal/x32/sigsetjmp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,14 @@
- +/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
- +.global sigsetjmp
- +.type sigsetjmp,@function
- +sigsetjmp:
- + andl %esi,%esi
- + movq %rsi,64(%rdi)
- + jz 1f
- + pushq %rdi
- + leaq 72(%rdi),%rdx
- + xorl %esi,%esi
- + movl $2,%edi
- + call sigprocmask
- + popq %rdi
- +1: jmp setjmp
- diff -Nur musl-0.9.15/src/stdio/__fdopen.c musl-git/src/stdio/__fdopen.c
- --- musl-0.9.15/src/stdio/__fdopen.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/stdio/__fdopen.c 2014-03-17 16:49:44.000000000 +0100
- @@ -32,7 +32,9 @@
- /* Set append mode on fd if opened for append */
- if (*mode == 'a') {
- int flags = __syscall(SYS_fcntl, fd, F_GETFL);
- - __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
- + if (!(flags & O_APPEND))
- + __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND);
- + f->flags |= F_APP;
- }
-
- f->fd = fd;
- diff -Nur musl-0.9.15/src/stdio/ftell.c musl-git/src/stdio/ftell.c
- --- musl-0.9.15/src/stdio/ftell.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/stdio/ftell.c 2014-03-17 16:49:44.000000000 +0100
- @@ -4,7 +4,9 @@
-
- off_t __ftello_unlocked(FILE *f)
- {
- - off_t pos = f->seek(f, 0, SEEK_CUR);
- + off_t pos = f->seek(f, 0,
- + (f->flags & F_APP) && f->wpos > f->wbase
- + ? SEEK_END : SEEK_CUR);
- if (pos < 0) return pos;
-
- /* Adjust for data in buffer. */
- diff -Nur musl-0.9.15/src/stdio/vfprintf.c musl-git/src/stdio/vfprintf.c
- --- musl-0.9.15/src/stdio/vfprintf.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/stdio/vfprintf.c 2014-03-17 16:49:44.000000000 +0100
- @@ -207,7 +207,8 @@
-
- static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t)
- {
- - uint32_t big[(LDBL_MAX_EXP+LDBL_MANT_DIG)/9+1];
- + uint32_t big[(LDBL_MANT_DIG+28)/29 + 1 // mantissa expansion
- + + (LDBL_MAX_EXP+LDBL_MANT_DIG+28+8)/9]; // exponent expansion
- uint32_t *a, *d, *r, *z;
- int e2=0, e, i, j, l;
- char buf[9+LDBL_MANT_DIG/4], *s;
- @@ -313,7 +314,7 @@
- }
- while (e2<0) {
- uint32_t carry=0, *b;
- - int sh=MIN(9,-e2);
- + int sh=MIN(9,-e2), need=1+(p+LDBL_MANT_DIG/3+8)/9;
- for (d=a; d<z; d++) {
- uint32_t rm = *d & (1<<sh)-1;
- *d = (*d>>sh) + carry;
- @@ -323,7 +324,7 @@
- if (carry) *z++ = carry;
- /* Avoid (slow!) computation past requested precision */
- b = (t|32)=='f' ? r : a;
- - if (z-b > 2+p/9) z = b+2+p/9;
- + if (z-b > need) z = b+need;
- e2+=sh;
- }
-
- diff -Nur musl-0.9.15/src/stdio/vfscanf.c musl-git/src/stdio/vfscanf.c
- --- musl-0.9.15/src/stdio/vfscanf.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/stdio/vfscanf.c 2014-03-17 16:49:44.000000000 +0100
- @@ -328,3 +328,5 @@
- FUNLOCK(f);
- return matches;
- }
- +
- +weak_alias(vfscanf,__isoc99_vfscanf);
- diff -Nur musl-0.9.15/src/thread/arm/clone.s musl-git/src/thread/arm/clone.s
- --- musl-0.9.15/src/thread/arm/clone.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/arm/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,10 +1,7 @@
- .text
- .global __clone
- -.weak clone
- .type __clone,%function
- -.type clone,%function
- __clone:
- -clone:
- stmfd sp!,{r4,r5,r6,r7}
- mov r7,#120
- mov r6,r3
- diff -Nur musl-0.9.15/src/thread/cancel_dummy.c musl-git/src/thread/cancel_dummy.c
- --- musl-0.9.15/src/thread/cancel_dummy.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/cancel_dummy.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,6 +1,9 @@
- #include "pthread_impl.h"
- +#include "syscall.h"
-
- -static long sccp(long nr, long u, long v, long w, long x, long y, long z)
- +static long sccp(syscall_arg_t nr,
- + syscall_arg_t u, syscall_arg_t v, syscall_arg_t w,
- + syscall_arg_t x, syscall_arg_t y, syscall_arg_t z)
- {
- return (__syscall)(nr, u, v, w, x, y, z);
- }
- diff -Nur musl-0.9.15/src/thread/cancel_impl.c musl-git/src/thread/cancel_impl.c
- --- musl-0.9.15/src/thread/cancel_impl.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/cancel_impl.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,4 +1,5 @@
- #include "pthread_impl.h"
- +#include "syscall.h"
-
- void __cancel()
- {
- @@ -8,9 +9,13 @@
- pthread_exit(PTHREAD_CANCELED);
- }
-
- -long __syscall_cp_asm(volatile void *, long, long, long, long, long, long, long);
- +long __syscall_cp_asm(volatile void *, syscall_arg_t,
- + syscall_arg_t, syscall_arg_t, syscall_arg_t,
- + syscall_arg_t, syscall_arg_t, syscall_arg_t);
-
- -long (__syscall_cp)(long nr, long u, long v, long w, long x, long y, long z)
- +long (__syscall_cp)(syscall_arg_t nr,
- + syscall_arg_t u, syscall_arg_t v, syscall_arg_t w,
- + syscall_arg_t x, syscall_arg_t y, syscall_arg_t z)
- {
- pthread_t self;
- long r;
- diff -Nur musl-0.9.15/src/thread/clone.c musl-git/src/thread/clone.c
- --- musl-0.9.15/src/thread/clone.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/clone.c 2014-03-17 16:49:44.000000000 +0100
- @@ -1,10 +1,7 @@
- #include <errno.h>
- -#include "libc.h"
- +#include "pthread_impl.h"
-
- int __clone(int (*func)(void *), void *stack, int flags, void *arg, ...)
- {
- - errno = ENOSYS;
- - return -1;
- + return -ENOSYS;
- }
- -
- -weak_alias(__clone, clone);
- diff -Nur musl-0.9.15/src/thread/i386/clone.s musl-git/src/thread/i386/clone.s
- --- musl-0.9.15/src/thread/i386/clone.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/i386/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,10 +1,7 @@
- .text
- .global __clone
- -.weak clone
- .type __clone,@function
- -.type clone,@function
- __clone:
- -clone:
- push %ebp
- mov %esp,%ebp
- push %ebx
- diff -Nur musl-0.9.15/src/thread/microblaze/clone.s musl-git/src/thread/microblaze/clone.s
- --- musl-0.9.15/src/thread/microblaze/clone.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/microblaze/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,14 +1,11 @@
- .global __clone
- -.weak clone
- .type __clone,@function
- -.type clone,@function
-
- # r5, r6, r7, r8, r9, r10, stack
- # fn, st, fl, ar, pt, tl, ct
- # fl, st, __, pt, ct, tl
-
- __clone:
- -clone:
- andi r6, r6, -16
- addi r6, r6, -16
- swi r5, r6, 0
- @@ -23,7 +20,7 @@
- beqi r3, 1f
- rtsd r15, 8
- nop
- -
- +
- 1: lwi r3, r1, 0
- lwi r5, r1, 4
- brald r15, r3
- diff -Nur musl-0.9.15/src/thread/sh/clone.s musl-git/src/thread/sh/clone.s
- --- musl-0.9.15/src/thread/sh/clone.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/sh/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,47 @@
- +.text
- +.global __clone
- +.type __clone, @function
- +__clone:
- +! incoming: fn stack flags arg ptid tls ctid
- +! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15)
- +
- + mov #-16, r0
- + and r0, r5
- +
- + mov r4, r1 ! r1 = fn
- + mov r7, r2 ! r2 = arg
- +
- + mov #120, r3 ! r3 = __NR_clone
- + mov r6, r4 ! r4 = flags
- + !mov r5, r5 ! r5 = stack
- + mov.l @r15, r6 ! r6 = ptid
- + mov.l @(8,r15), r7 ! r7 = ctid
- + mov.l @(4,r15), r0 ! r0 = tls
- + trapa #21
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- +
- + cmp/eq #0, r0
- + bt 1f
- +
- + ! we are the parent, return
- + rts
- + nop
- +
- +1: ! we are the child, call fn(arg)
- + jsr @r1
- + mov r2, r4
- +
- + mov #1, r3 ! __NR_exit
- + mov r0, r4
- + trapa #17
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- diff -Nur musl-0.9.15/src/thread/sh/__set_thread_area.s musl-git/src/thread/sh/__set_thread_area.s
- --- musl-0.9.15/src/thread/sh/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/sh/__set_thread_area.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,5 @@
- +.global __set_thread_area
- +.type __set_thread_area, @function
- +__set_thread_area:
- + rts
- + ldc r4, gbr
- diff -Nur musl-0.9.15/src/thread/sh/syscall_cp.s musl-git/src/thread/sh/syscall_cp.s
- --- musl-0.9.15/src/thread/sh/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/sh/syscall_cp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,39 @@
- +.text
- +.global __syscall_cp_asm
- +.type __syscall_cp_asm, @function
- +__syscall_cp_asm:
- +
- +.global __cp_begin
- +__cp_begin:
- + mov.l @r4, r4
- + tst r4, r4
- + bt 2f
- +
- + mov.l L1, r0
- + braf r0
- + nop
- +1:
- +
- +.align 2
- +L1: .long __cancel@PLT-(1b-.)
- +
- +2: mov r5, r3
- + mov r6, r4
- + mov r7, r5
- + mov.l @r15, r6
- + mov.l @(4,r15), r7
- + mov.l @(8,r15), r0
- + mov.l @(12,r15), r1
- + trapa #22
- +
- +.global __cp_end
- +__cp_end:
- + ! work around hardware bug
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- +
- + rts
- + nop
- diff -Nur musl-0.9.15/src/thread/sh/__unmapself.s musl-git/src/thread/sh/__unmapself.s
- --- musl-0.9.15/src/thread/sh/__unmapself.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/sh/__unmapself.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,22 @@
- +.text
- +.global __unmapself
- +.type __unmapself, @function
- +__unmapself:
- + mov #91, r3 ! SYS_munmap
- + trapa #18
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- +
- + mov #1, r3 ! SYS_exit
- + mov #0, r4
- + trapa #17
- +
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- diff -Nur musl-0.9.15/src/thread/__wait.c musl-git/src/thread/__wait.c
- --- musl-0.9.15/src/thread/__wait.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/__wait.c 2014-03-17 16:49:44.000000000 +0100
- @@ -10,6 +10,6 @@
- }
- if (waiters) a_inc(waiters);
- while (*addr==val)
- - __syscall(SYS_futex, (long)addr, FUTEX_WAIT|priv, val, 0);
- + __syscall(SYS_futex, addr, FUTEX_WAIT|priv, val, 0);
- if (waiters) a_dec(waiters);
- }
- diff -Nur musl-0.9.15/src/thread/x32/clone.s musl-git/src/thread/x32/clone.s
- --- musl-0.9.15/src/thread/x32/clone.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/x32/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,25 @@
- +.text
- +.global __clone
- +.type __clone,@function
- +__clone:
- + movl $0x40000038,%eax /* SYS_clone */
- + mov %rdi,%r11
- + mov %rdx,%rdi
- + mov %r8,%rdx
- + mov %r9,%r8
- + mov 8(%rsp),%r10
- + mov %r11,%r9
- + and $-16,%rsi
- + sub $8,%rsi
- + mov %rcx,(%rsi)
- + syscall
- + test %eax,%eax
- + jnz 1f
- + xor %ebp,%ebp
- + pop %rdi
- + call *%r9
- + mov %eax,%edi
- + movl $0x4000003c,%eax /* SYS_exit */
- + syscall
- + hlt
- +1: ret
- diff -Nur musl-0.9.15/src/thread/x32/__set_thread_area.s musl-git/src/thread/x32/__set_thread_area.s
- --- musl-0.9.15/src/thread/x32/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/x32/__set_thread_area.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,10 @@
- +/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
- +.text
- +.global __set_thread_area
- +.type __set_thread_area,@function
- +__set_thread_area:
- + mov %rdi,%rsi /* shift for syscall */
- + movl $0x1002,%edi /* SET_FS register */
- + movl $0x4000009e,%eax /* set fs segment to */
- + syscall /* arch_prctl(SET_FS, arg)*/
- + ret
- diff -Nur musl-0.9.15/src/thread/x32/syscall_cp.s musl-git/src/thread/x32/syscall_cp.s
- --- musl-0.9.15/src/thread/x32/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/x32/syscall_cp.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,23 @@
- +.text
- +.global __syscall_cp_internal
- +.type __syscall_cp_internal,@function
- +__syscall_cp_internal:
- +
- +.global __cp_begin
- +__cp_begin:
- + mov (%rdi),%eax
- + test %eax,%eax
- + jnz __cancel
- + mov %rdi,%r11
- + mov %rsi,%rax
- + mov %rdx,%rdi
- + mov %rcx,%rsi
- + mov %r8,%rdx
- + mov %r9,%r10
- + mov 8(%rsp),%r8
- + mov 16(%rsp),%r9
- + mov %r11,8(%rsp)
- + syscall
- +.global __cp_end
- +__cp_end:
- + ret
- diff -Nur musl-0.9.15/src/thread/x32/__unmapself.s musl-git/src/thread/x32/__unmapself.s
- --- musl-0.9.15/src/thread/x32/__unmapself.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/thread/x32/__unmapself.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,10 @@
- +/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
- +.text
- +.global __unmapself
- +.type __unmapself,@function
- +__unmapself:
- + movl $0x4000000b,%eax /* SYS_munmap */
- + syscall /* munmap(arg2,arg3) */
- + xor %rdi,%rdi /* exit() args: always return success */
- + movl $0x4000003c,%eax /* SYS_exit */
- + syscall /* exit(0) */
- diff -Nur musl-0.9.15/src/thread/x86_64/clone.s musl-git/src/thread/x86_64/clone.s
- --- musl-0.9.15/src/thread/x86_64/clone.s 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/thread/x86_64/clone.s 2014-03-17 16:49:44.000000000 +0100
- @@ -1,10 +1,7 @@
- .text
- .global __clone
- -.weak clone
- .type __clone,@function
- -.type clone,@function
- __clone:
- -clone:
- xor %eax,%eax
- mov $56,%al
- mov %rdi,%r11
- diff -Nur musl-0.9.15/src/time/timer_delete.c musl-git/src/time/timer_delete.c
- --- musl-0.9.15/src/time/timer_delete.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/time/timer_delete.c 2014-03-17 16:49:44.000000000 +0100
- @@ -10,5 +10,5 @@
- __wake(&td->timer_id, 1, 1);
- return 0;
- }
- - return __syscall(SYS_timer_delete, (long)t);
- + return __syscall(SYS_timer_delete, t);
- }
- diff -Nur musl-0.9.15/src/time/timer_getoverrun.c musl-git/src/time/timer_getoverrun.c
- --- musl-0.9.15/src/time/timer_getoverrun.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/time/timer_getoverrun.c 2014-03-17 16:49:44.000000000 +0100
- @@ -8,5 +8,5 @@
- pthread_t td = (void *)((uintptr_t)t << 1);
- t = (void *)(uintptr_t)(td->timer_id & INT_MAX);
- }
- - return syscall(SYS_timer_getoverrun, (long)t);
- + return syscall(SYS_timer_getoverrun, t);
- }
- diff -Nur musl-0.9.15/src/time/timer_gettime.c musl-git/src/time/timer_gettime.c
- --- musl-0.9.15/src/time/timer_gettime.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/time/timer_gettime.c 2014-03-17 16:49:44.000000000 +0100
- @@ -8,5 +8,5 @@
- pthread_t td = (void *)((uintptr_t)t << 1);
- t = (void *)(uintptr_t)(td->timer_id & INT_MAX);
- }
- - return syscall(SYS_timer_gettime, (long)t, val);
- + return syscall(SYS_timer_gettime, t, val);
- }
- diff -Nur musl-0.9.15/src/time/timer_settime.c musl-git/src/time/timer_settime.c
- --- musl-0.9.15/src/time/timer_settime.c 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/src/time/timer_settime.c 2014-03-17 16:49:44.000000000 +0100
- @@ -8,5 +8,5 @@
- pthread_t td = (void *)((uintptr_t)t << 1);
- t = (void *)(uintptr_t)(td->timer_id & INT_MAX);
- }
- - return syscall(SYS_timer_settime, (long)t, flags, val, old);
- + return syscall(SYS_timer_settime, t, flags, val, old);
- }
- diff -Nur musl-0.9.15/src/unistd/sh/pipe.s musl-git/src/unistd/sh/pipe.s
- --- musl-0.9.15/src/unistd/sh/pipe.s 1970-01-01 01:00:00.000000000 +0100
- +++ musl-git/src/unistd/sh/pipe.s 2014-03-17 16:49:44.000000000 +0100
- @@ -0,0 +1,27 @@
- +.global pipe
- +.type pipe, @function
- +pipe:
- + mov #42, r3
- + trapa #17
- +
- + ! work around hardware bug
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- + or r0, r0
- +
- + cmp/pz r0
- + bt 1f
- +
- + mov.l L1, r1
- + braf r1
- + mov r0, r4
- +
- +1: mov.l r0, @(0,r4)
- + mov.l r1, @(4,r4)
- + rts
- + mov #0, r0
- +
- +.align 2
- +L1: .long __syscall_ret@PLT-(1b-.)
- diff -Nur musl-0.9.15/tools/install.sh musl-git/tools/install.sh
- --- musl-0.9.15/tools/install.sh 2014-01-03 21:12:18.000000000 +0100
- +++ musl-git/tools/install.sh 2014-03-17 16:49:44.000000000 +0100
- @@ -51,6 +51,7 @@
- ln -s "$1" "$tmp"
- else
- cat < "$1" > "$tmp"
- +chmod "$mode" "$tmp"
- fi
-
- mv -f "$tmp" "$2"
- @@ -60,6 +61,4 @@
- exit 1
- }
-
- -test "$symlink" || chmod "$mode" "$2"
- -
- exit 0
|