socket_illumos_amd64.go 228 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226
  1. // Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/socket/socket_illumos_amd64.go -pkgname socket', DO NOT EDIT.
  2. package socket
  3. import (
  4. "math"
  5. "reflect"
  6. "sync/atomic"
  7. "unsafe"
  8. )
  9. var _ = math.Pi
  10. var _ reflect.Kind
  11. var _ atomic.Value
  12. var _ unsafe.Pointer
  13. const (
  14. AF_802 = 18 // socket.h:296:1:
  15. AF_APPLETALK = 16 // socket.h:294:1:
  16. AF_CCITT = 10 // socket.h:288:1:
  17. AF_CHAOS = 5 // socket.h:283:1:
  18. AF_DATAKIT = 9 // socket.h:287:1:
  19. AF_DECnet = 12 // socket.h:290:1:
  20. AF_DLI = 13 // socket.h:291:1:
  21. AF_ECMA = 8 // socket.h:286:1:
  22. AF_FILE = 1 // socket.h:279:1:
  23. AF_GOSIP = 22 // socket.h:300:1:
  24. AF_HYLINK = 15 // socket.h:293:1:
  25. AF_IMPLINK = 3 // socket.h:281:1:
  26. AF_INET = 2 // socket.h:280:1:
  27. AF_INET6 = 26 // socket.h:304:1:
  28. AF_INET_OFFLOAD = 30 // socket.h:308:1:
  29. AF_IPX = 23 // socket.h:301:1:
  30. AF_KEY = 27 // socket.h:305:1:
  31. AF_LAT = 14 // socket.h:292:1:
  32. AF_LINK = 25 // socket.h:303:1:
  33. AF_LOCAL = 1 // socket.h:278:1:
  34. AF_LX_NETLINK = 33 // socket.h:311:1:
  35. AF_MAX = 33 // socket.h:313:1:
  36. AF_NBS = 7 // socket.h:285:1:
  37. AF_NCA = 28 // socket.h:306:1:
  38. AF_NIT = 17 // socket.h:295:1:
  39. AF_NS = 6 // socket.h:284:1:
  40. AF_OSI = 19 // socket.h:297:1:
  41. AF_OSINET = 21 // socket.h:299:1:
  42. AF_PACKET = 32 // socket.h:310:1:
  43. AF_POLICY = 29 // socket.h:307:1:
  44. AF_PUP = 4 // socket.h:282:1:
  45. AF_ROUTE = 24 // socket.h:302:1:
  46. AF_SNA = 11 // socket.h:289:1:
  47. AF_TRILL = 31 // socket.h:309:1:
  48. AF_UNIX = 1 // socket.h:277:1:
  49. AF_UNSPEC = 0 // socket.h:276:1:
  50. AF_X25 = 20 // socket.h:298:1:
  51. CANBSIZ = 256 // param.h:91:1:
  52. CDLIMIT = 2048 // param.h:164:1:
  53. CLOCKS_PER_SEC = 1000000 // time_iso.h:78:1:
  54. CLOCK_HIGHRES = 4 // time_impl.h:126:1:
  55. CLOCK_MONOTONIC = 4 // time_impl.h:124:1:
  56. CLOCK_PROCESS_CPUTIME_ID = 5 // time_impl.h:125:1:
  57. CLOCK_PROF = 2 // time_impl.h:127:1:
  58. CLOCK_REALTIME = 3 // time_impl.h:123:1:
  59. CLOCK_THREAD_CPUTIME_ID = 2 // time_impl.h:122:1:
  60. CLOCK_VIRTUAL = 1 // time_impl.h:121:1:
  61. CMASK = 022 // param.h:163:1:
  62. DEFAULT_JUMPPID = 0 // param.h:120:1:
  63. DEFAULT_MAXPID = 30000 // param.h:119:1:
  64. DEV_BSHIFT = 9 // param.h:251:1:
  65. DEV_BSIZE = 512 // param.h:250:1:
  66. DST_AUST = 2 // time.h:115:1:
  67. DST_AUSTALT = 10 // time.h:123:1:
  68. DST_CAN = 6 // time.h:119:1:
  69. DST_EET = 5 // time.h:118:1:
  70. DST_GB = 7 // time.h:120:1:
  71. DST_MET = 4 // time.h:117:1:
  72. DST_NONE = 0 // time.h:113:1:
  73. DST_RUM = 8 // time.h:121:1:
  74. DST_TUR = 9 // time.h:122:1:
  75. DST_USA = 1 // time.h:114:1:
  76. DST_WET = 3 // time.h:116:1:
  77. FD_SETSIZE = 65536 // select.h:88:1:
  78. FILF_AUTO = 0x2 // socket.h:232:1:
  79. FILF_BYPASS = 0x4 // socket.h:233:1:
  80. FILF_PROG = 0x1 // socket.h:231:1:
  81. FILNAME_MAX = 32 // socket.h:221:1:
  82. FIL_ATTACH = 0x1 // socket.h:217:1:
  83. FIL_DETACH = 0x2 // socket.h:218:1:
  84. FIL_LIST = 0x3 // socket.h:219:1:
  85. FSCALE = 256 // param.h:304:1:
  86. FSHIFT = 8 // param.h:303:1:
  87. GID_NETADM = 65 // param.h:100:1:
  88. GID_NOBODY = 60001 // param.h:95:1:
  89. GID_UNKNOWN = 96 // param.h:97:1:
  90. IMPLINK_HIGHEXPER = 158 // in.h:284:1:
  91. IMPLINK_IP = 155 // in.h:282:1:
  92. IMPLINK_LOWEXPER = 156 // in.h:283:1:
  93. INADDR_6TO4RRANYCAST = 0xc0586301 // in.h:392:1:
  94. INADDR_ALLHOSTS_GROUP = 0xe0000001 // in.h:372:1:
  95. INADDR_ALLRPTS_GROUP = 0xe0000016 // in.h:374:1:
  96. INADDR_ALLRTRS_GROUP = 0xe0000002 // in.h:373:1:
  97. INADDR_ANY = 0x00000000 // in.h:366:1:
  98. INADDR_BROADCAST = 0xffffffff // in.h:368:1:
  99. INADDR_LOOPBACK = 0x7F000001 // in.h:367:1:
  100. INADDR_MAX_LOCAL_GROUP = 0xe00000ff // in.h:375:1:
  101. INADDR_NONE = 0xffffffff // in.h:369:1:
  102. INADDR_UNSPEC_GROUP = 0xe0000000 // in.h:371:1:
  103. INET6_ADDRSTRLEN = 46 // in.h:1212:1:
  104. INET_ADDRSTRLEN = 16 // in.h:1210:1:
  105. IN_AUTOCONF_MASK = 0xffff0000 // in.h:379:1:
  106. IN_AUTOCONF_NET = 0xa9fe0000 // in.h:378:1:
  107. IN_CLASSA_HOST = 0x00ffffff // in.h:332:1:
  108. IN_CLASSA_MAX = 128 // in.h:333:1:
  109. IN_CLASSA_NET = 0xff000000 // in.h:330:1:
  110. IN_CLASSA_NSHIFT = 24 // in.h:331:1:
  111. IN_CLASSB_HOST = 0x0000ffff // in.h:338:1:
  112. IN_CLASSB_MAX = 65536 // in.h:339:1:
  113. IN_CLASSB_NET = 0xffff0000 // in.h:336:1:
  114. IN_CLASSB_NSHIFT = 16 // in.h:337:1:
  115. IN_CLASSC_HOST = 0x000000ff // in.h:344:1:
  116. IN_CLASSC_NET = 0xffffff00 // in.h:342:1:
  117. IN_CLASSC_NSHIFT = 8 // in.h:343:1:
  118. IN_CLASSD_HOST = 0x0fffffff // in.h:349:1:
  119. IN_CLASSD_NET = 0xf0000000 // in.h:347:1:
  120. IN_CLASSD_NSHIFT = 28 // in.h:348:1:
  121. IN_CLASSE_NET = 0xffffffff // in.h:352:1:
  122. IN_LOOPBACKNET = 127 // in.h:395:1:
  123. IN_PRIVATE12_MASK = 0xfff00000 // in.h:383:1:
  124. IN_PRIVATE12_NET = 0xac100000 // in.h:382:1:
  125. IN_PRIVATE16_MASK = 0xffff0000 // in.h:385:1:
  126. IN_PRIVATE16_NET = 0xc0a80000 // in.h:384:1:
  127. IN_PRIVATE8_MASK = 0xff000000 // in.h:381:1:
  128. IN_PRIVATE8_NET = 0x0a000000 // in.h:380:1:
  129. IPPORT_BIFFUDP = 512 // in.h:250:1:
  130. IPPORT_BOOTPC = 68 // in.h:214:1:
  131. IPPORT_BOOTPS = 67 // in.h:213:1:
  132. IPPORT_CHARGEN = 19 // in.h:199:1:
  133. IPPORT_CMDSERVER = 514 // in.h:243:1:
  134. IPPORT_DAYTIME = 13 // in.h:197:1:
  135. IPPORT_DHCPV6C = 546 // in.h:260:1:
  136. IPPORT_DHCPV6S = 547 // in.h:261:1:
  137. IPPORT_DISCARD = 9 // in.h:195:1:
  138. IPPORT_DOMAIN = 53 // in.h:206:1:
  139. IPPORT_ECHO = 7 // in.h:194:1:
  140. IPPORT_EFSSERVER = 520 // in.h:245:1:
  141. IPPORT_EXECSERVER = 512 // in.h:241:1:
  142. IPPORT_FINGER = 79 // in.h:217:1:
  143. IPPORT_FTP = 21 // in.h:200:1:
  144. IPPORT_HTTP = 80 // in.h:218:1:
  145. IPPORT_HTTP_ALT = 8080 // in.h:219:1:
  146. IPPORT_IKE = 500 // in.h:235:1:
  147. IPPORT_IKE_NATT = 4500 // in.h:236:1:
  148. IPPORT_LDAP = 389 // in.h:226:1:
  149. IPPORT_LOGINSERVER = 513 // in.h:242:1:
  150. IPPORT_MDNS = 5353 // in.h:207:1:
  151. IPPORT_MIP = 434 // in.h:228:1:
  152. IPPORT_MTP = 57 // in.h:208:1:
  153. IPPORT_NAMESERVER = 42 // in.h:204:1:
  154. IPPORT_NETBIOS_DGM = 138 // in.h:224:1:
  155. IPPORT_NETBIOS_NS = 137 // in.h:223:1:
  156. IPPORT_NETBIOS_SSN = 139 // in.h:225:1:
  157. IPPORT_NETSTAT = 15 // in.h:198:1:
  158. IPPORT_NTP = 123 // in.h:222:1:
  159. IPPORT_PRINTER = 515 // in.h:244:1:
  160. IPPORT_RESERVED = 1024 // in.h:271:1:
  161. IPPORT_RIPNG = 521 // in.h:255:1:
  162. IPPORT_RJE = 77 // in.h:216:1:
  163. IPPORT_ROUTESERVER = 520 // in.h:254:1:
  164. IPPORT_SLP = 427 // in.h:227:1:
  165. IPPORT_SMB = 445 // in.h:229:1:
  166. IPPORT_SMTP = 25 // in.h:202:1:
  167. IPPORT_SOCKS = 1080 // in.h:263:1:
  168. IPPORT_SUPDUP = 95 // in.h:221:1:
  169. IPPORT_SYSLOG = 514 // in.h:252:1:
  170. IPPORT_SYSTAT = 11 // in.h:196:1:
  171. IPPORT_TALK = 517 // in.h:253:1:
  172. IPPORT_TELNET = 23 // in.h:201:1:
  173. IPPORT_TFTP = 69 // in.h:215:1:
  174. IPPORT_TIMESERVER = 37 // in.h:203:1:
  175. IPPORT_TTYLINK = 87 // in.h:220:1:
  176. IPPORT_USERRESERVED = 5000 // in.h:272:1:
  177. IPPORT_VXLAN = 4789 // in.h:230:1:
  178. IPPORT_WHOIS = 43 // in.h:205:1:
  179. IPPORT_WHOSERVER = 513 // in.h:251:1:
  180. IPPROTO_AH = 51 // in.h:169:1:
  181. IPPROTO_DSTOPTS = 60 // in.h:172:1:
  182. IPPROTO_EGP = 8 // in.h:160:1:
  183. IPPROTO_ENCAP = 4 // in.h:158:1:
  184. IPPROTO_EON = 80 // in.h:175:1:
  185. IPPROTO_ESP = 50 // in.h:168:1:
  186. IPPROTO_FRAGMENT = 44 // in.h:166:1:
  187. IPPROTO_GGP = 3 // in.h:157:1:
  188. IPPROTO_HELLO = 63 // in.h:173:1:
  189. IPPROTO_HOPOPTS = 0 // in.h:154:1:
  190. IPPROTO_ICMP = 1 // in.h:155:1:
  191. IPPROTO_ICMPV6 = 58 // in.h:170:1:
  192. IPPROTO_IDP = 22 // in.h:163:1:
  193. IPPROTO_IGMP = 2 // in.h:156:1:
  194. IPPROTO_IP = 0 // in.h:153:1:
  195. IPPROTO_IPV6 = 41 // in.h:164:1:
  196. IPPROTO_MAX = 256 // in.h:182:1:
  197. IPPROTO_ND = 77 // in.h:174:1:
  198. IPPROTO_NONE = 59 // in.h:171:1:
  199. IPPROTO_OSPF = 89 // in.h:176:1:
  200. IPPROTO_PIM = 103 // in.h:177:1:
  201. IPPROTO_PUP = 12 // in.h:161:1:
  202. IPPROTO_RAW = 255 // in.h:181:1:
  203. IPPROTO_ROUTING = 43 // in.h:165:1:
  204. IPPROTO_RSVP = 46 // in.h:167:1:
  205. IPPROTO_SCTP = 132 // in.h:178:1:
  206. IPPROTO_TCP = 6 // in.h:159:1:
  207. IPPROTO_UDP = 17 // in.h:162:1:
  208. IPSEC_PREF_NEVER = 0x01 // in.h:941:1:
  209. IPSEC_PREF_REQUIRED = 0x02 // in.h:942:1:
  210. IPSEC_PREF_UNIQUE = 0x04 // in.h:943:1:
  211. IPV6_ADD_MEMBERSHIP = 0x9 // in.h:1224:1:
  212. IPV6_BOUND_IF = 0x41 // in.h:1307:1:
  213. IPV6_CHECKSUM = 0x18 // in.h:1257:1:
  214. IPV6_DONTFRAG = 0x21 // in.h:1260:1:
  215. IPV6_DROP_MEMBERSHIP = 0xa // in.h:1226:1:
  216. IPV6_DSTOPTS = 0xf // in.h:1234:1:
  217. IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 // in.h:447:1:
  218. IPV6_FLOWINFO_TCLASS = 0x0000f00f // in.h:448:1:
  219. IPV6_HOPLIMIT = 0xc // in.h:1231:1:
  220. IPV6_HOPOPTS = 0xe // in.h:1233:1:
  221. IPV6_JOIN_GROUP = 0x9 // in.h:1202:1:
  222. IPV6_LEAVE_GROUP = 0xa // in.h:1204:1:
  223. IPV6_MULTICAST_HOPS = 0x7 // in.h:1196:1:
  224. IPV6_MULTICAST_IF = 0x6 // in.h:1193:1:
  225. IPV6_MULTICAST_LOOP = 0x8 // in.h:1199:1:
  226. IPV6_NEXTHOP = 0xd // in.h:1232:1:
  227. IPV6_PAD1_OPT = 0 // in.h:1314:1:
  228. IPV6_PATHMTU = 0x25 // in.h:1264:1:
  229. IPV6_PKTINFO = 0xb // in.h:1229:1:
  230. IPV6_PREFER_SRC_CGA = 0x00000020 // in.h:1289:1:
  231. IPV6_PREFER_SRC_CGADEFAULT = 16 // in.h:1296:1:
  232. IPV6_PREFER_SRC_CGAMASK = 48 // in.h:1295:1:
  233. IPV6_PREFER_SRC_COA = 0x00000002 // in.h:1285:1:
  234. IPV6_PREFER_SRC_DEFAULT = 21 // in.h:1301:1:
  235. IPV6_PREFER_SRC_HOME = 0x00000001 // in.h:1284:1:
  236. IPV6_PREFER_SRC_MASK = 63 // in.h:1298:1:
  237. IPV6_PREFER_SRC_MIPDEFAULT = 1 // in.h:1292:1:
  238. IPV6_PREFER_SRC_MIPMASK = 3 // in.h:1291:1:
  239. IPV6_PREFER_SRC_NONCGA = 0x00000010 // in.h:1288:1:
  240. IPV6_PREFER_SRC_PUBLIC = 0x00000004 // in.h:1286:1:
  241. IPV6_PREFER_SRC_TMP = 0x00000008 // in.h:1287:1:
  242. IPV6_PREFER_SRC_TMPDEFAULT = 4 // in.h:1294:1:
  243. IPV6_PREFER_SRC_TMPMASK = 12 // in.h:1293:1:
  244. IPV6_RECVDSTOPTS = 0x28 // in.h:1271:1:
  245. IPV6_RECVHOPLIMIT = 0x13 // in.h:1240:1:
  246. IPV6_RECVHOPOPTS = 0x14 // in.h:1241:1:
  247. IPV6_RECVPATHMTU = 0x24 // in.h:1263:1:
  248. IPV6_RECVPKTINFO = 0x12 // in.h:1239:1:
  249. IPV6_RECVRTHDR = 0x16 // in.h:1249:1:
  250. IPV6_RECVRTHDRDSTOPTS = 0x17 // in.h:1255:1:
  251. IPV6_RECVTCLASS = 0x19 // in.h:1258:1:
  252. IPV6_RTHDR = 0x10 // in.h:1236:1:
  253. IPV6_RTHDRDSTOPTS = 0x11 // in.h:1237:1:
  254. IPV6_RTHDR_TYPE_0 = 0 // in.h:1152:1:
  255. IPV6_SEC_OPT = 0x22 // in.h:1261:1:
  256. IPV6_SRC_PREFERENCES = 0x23 // in.h:1262:1:
  257. IPV6_TCLASS = 0x26 // in.h:1265:1:
  258. IPV6_UNICAST_HOPS = 0x5 // in.h:1190:1:
  259. IPV6_UNSPEC_SRC = 0x42 // in.h:1308:1:
  260. IPV6_USE_MIN_MTU = 0x20 // in.h:1259:1:
  261. IPV6_V6ONLY = 0x27 // in.h:1266:1:
  262. IP_ADD_MEMBERSHIP = 0x13 // in.h:921:1:
  263. IP_ADD_SOURCE_MEMBERSHIP = 0x17 // in.h:925:1:
  264. IP_BLOCK_SOURCE = 0x15 // in.h:923:1:
  265. IP_BOUND_IF = 0x41 // in.h:976:1:
  266. IP_BROADCAST = 0x106 // in.h:994:1:
  267. IP_BROADCAST_TTL = 0x43 // in.h:978:1:
  268. IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:1009:1:
  269. IP_DEFAULT_MULTICAST_TTL = 1 // in.h:1008:1:
  270. IP_DHCPINIT_IF = 0x45 // in.h:980:1:
  271. IP_DONTFRAG = 0x1b // in.h:934:1:
  272. IP_DONTROUTE = 0x105 // in.h:990:1:
  273. IP_DROP_MEMBERSHIP = 0x14 // in.h:922:1:
  274. IP_DROP_SOURCE_MEMBERSHIP = 0x18 // in.h:926:1:
  275. IP_HDRINCL = 2 // in.h:899:1:
  276. IP_MULTICAST_IF = 0x10 // in.h:918:1:
  277. IP_MULTICAST_LOOP = 0x12 // in.h:920:1:
  278. IP_MULTICAST_TTL = 0x11 // in.h:919:1:
  279. IP_NEXTHOP = 0x19 // in.h:927:1:
  280. IP_OPTIONS = 1 // in.h:896:1:
  281. IP_PKTINFO = 0x1a // in.h:932:1:
  282. IP_RECVDSTADDR = 0x7 // in.h:911:1:
  283. IP_RECVIF = 0x9 // in.h:913:1:
  284. IP_RECVOPTS = 0x5 // in.h:909:1:
  285. IP_RECVPKTINFO = 0x1a // in.h:933:1:
  286. IP_RECVRETOPTS = 0x6 // in.h:910:1:
  287. IP_RECVSLLA = 0xa // in.h:914:1:
  288. IP_RECVTOS = 0xc // in.h:916:1:
  289. IP_RECVTTL = 0xb // in.h:915:1:
  290. IP_RETOPTS = 0x8 // in.h:912:1:
  291. IP_REUSEADDR = 0x104 // in.h:986:1:
  292. IP_SEC_OPT = 0x22 // in.h:940:1:
  293. IP_TOS = 3 // in.h:902:1:
  294. IP_TTL = 4 // in.h:906:1:
  295. IP_UNBLOCK_SOURCE = 0x16 // in.h:924:1:
  296. IP_UNSPEC_SRC = 0x42 // in.h:977:1:
  297. ITIMER_PROF = 2 // time.h:201:1:
  298. ITIMER_REAL = 0 // time.h:199:1:
  299. ITIMER_REALPROF = 3 // time.h:204:1:
  300. ITIMER_VIRTUAL = 1 // time.h:200:1:
  301. LINUX_SLL_BROADCAST = 1 // socket_impl.h:122:1:
  302. LINUX_SLL_HOST = 0 // socket_impl.h:121:1:
  303. LINUX_SLL_MULTICAST = 2 // socket_impl.h:123:1:
  304. LINUX_SLL_OTHERHOST = 3 // socket_impl.h:124:1:
  305. LINUX_SLL_OUTGOING = 4 // socket_impl.h:125:1:
  306. MAXBSIZE = 8192 // param.h:249:1:
  307. MAXFRAG = 8 // param.h:252:1:
  308. MAXLINK = 32767 // param.h:126:1:
  309. MAXLINKNAMELEN = 32 // param.h:209:1:
  310. MAXNAMELEN = 256 // param.h:202:1:
  311. MAXOFFSET_T = 0x7fffffffffffffff // param.h:258:1:
  312. MAXOFF_T = 0x7fffffffffffffff // param.h:257:1:
  313. MAXPATHLEN = 1024 // param.h:199:1:
  314. MAXPROJID = 2147483647 // param.h:125:1:
  315. MAXSYMLINKS = 20 // param.h:201:1:
  316. MAXUID = 2147483647 // param.h:123:1:
  317. MAX_CANON = 256 // param.h:89:1:
  318. MAX_INPUT = 512 // param.h:86:1:
  319. MCAST_BLOCK_SOURCE = 0x2b // in.h:1278:1:
  320. MCAST_EXCLUDE = 2 // in.h:1122:1:
  321. MCAST_INCLUDE = 1 // in.h:1121:1:
  322. MCAST_JOIN_GROUP = 0x29 // in.h:1276:1:
  323. MCAST_JOIN_SOURCE_GROUP = 0x2d // in.h:1280:1:
  324. MCAST_LEAVE_GROUP = 0x2a // in.h:1277:1:
  325. MCAST_LEAVE_SOURCE_GROUP = 0x2e // in.h:1281:1:
  326. MCAST_UNBLOCK_SOURCE = 0x2c // in.h:1279:1:
  327. MICROSEC = 1000000 // time.h:246:1:
  328. MILLISEC = 1000 // time.h:245:1:
  329. MINEPHUID = 0x80000000 // param.h:128:1:
  330. MSG_CTRUNC = 0x10 // socket.h:429:1:
  331. MSG_DONTROUTE = 0x4 // socket.h:427:1:
  332. MSG_DONTWAIT = 0x80 // socket.h:432:1:
  333. MSG_DUPCTRL = 0x800 // socket.h:435:1:
  334. MSG_EOR = 0x8 // socket.h:428:1:
  335. MSG_MAXIOVLEN = 16 // socket.h:440:1:
  336. MSG_NOSIGNAL = 0x200 // socket.h:434:1:
  337. MSG_NOTIFICATION = 0x100 // socket.h:433:1:
  338. MSG_OOB = 0x1 // socket.h:425:1:
  339. MSG_PEEK = 0x2 // socket.h:426:1:
  340. MSG_TRUNC = 0x20 // socket.h:430:1:
  341. MSG_WAITALL = 0x40 // socket.h:431:1:
  342. MSG_XPG4_2 = 0x8000 // socket.h:437:1:
  343. NADDR = 13 // param.h:212:1:
  344. NANOSEC = 1000000000 // time.h:247:1:
  345. NBBY = 8 // select.h:103:1:
  346. NBPS = 0x20000 // param.h:165:1:
  347. NBPSCTR = 512 // param.h:166:1:
  348. NCARGS = 2097152 // param.h:294:1:
  349. NCARGS32 = 0x100000 // param.h:291:1:
  350. NCARGS64 = 0x200000 // param.h:292:1:
  351. NC_APPLETALK = "appletalk" // netconfig.h:108:1:
  352. NC_BROADCAST = 02 // netconfig.h:85:1:
  353. NC_CCITT = "ccitt" // netconfig.h:102:1:
  354. NC_CHAOS = "chaos" // netconfig.h:97:1:
  355. NC_DATAKIT = "datakit" // netconfig.h:101:1:
  356. NC_DECNET = "decnet" // netconfig.h:104:1:
  357. NC_DLI = "dli" // netconfig.h:105:1:
  358. NC_ECMA = "ecma" // netconfig.h:100:1:
  359. NC_GOSIP = "gosip" // netconfig.h:114:1:
  360. NC_HYLINK = "hylink" // netconfig.h:107:1:
  361. NC_IBTF = "ibtf" // netconfig.h:138:1:
  362. NC_ICMP = "icmp" // netconfig.h:132:1:
  363. NC_IEEE802 = "ieee802" // netconfig.h:110:1:
  364. NC_IMPLINK = "implink" // netconfig.h:95:1:
  365. NC_INET = "inet" // netconfig.h:93:1:
  366. NC_INET6 = "inet6" // netconfig.h:94:1:
  367. NC_KDAPL = "kdapl" // netconfig.h:139:1:
  368. NC_KVIPL = "kvipl" // netconfig.h:137:1:
  369. NC_LAT = "lat" // netconfig.h:106:1:
  370. NC_LOOPBACK = "loopback" // netconfig.h:92:1:
  371. NC_NBS = "nbs" // netconfig.h:99:1:
  372. NC_NIT = "nit" // netconfig.h:109:1:
  373. NC_NOFLAG = 00 // netconfig.h:83:1:
  374. NC_NOPROTO = "-" // netconfig.h:129:1:
  375. NC_NOPROTOFMLY = "-" // netconfig.h:91:1:
  376. NC_NS = "ns" // netconfig.h:98:1:
  377. NC_OSI = "osi" // netconfig.h:111:1:
  378. NC_OSINET = "osinet" // netconfig.h:113:1:
  379. NC_PUP = "pup" // netconfig.h:96:1:
  380. NC_RDMA = "rdma" // netconfig.h:123:1:
  381. NC_SNA = "sna" // netconfig.h:103:1:
  382. NC_TCP = "tcp" // netconfig.h:130:1:
  383. NC_TPI_CLTS = 1 // netconfig.h:65:1:
  384. NC_TPI_COTS = 2 // netconfig.h:66:1:
  385. NC_TPI_COTS_ORD = 3 // netconfig.h:67:1:
  386. NC_TPI_RAW = 4 // netconfig.h:68:1:
  387. NC_TPI_RDMA = 5 // netconfig.h:77:1:
  388. NC_UDP = "udp" // netconfig.h:131:1:
  389. NC_VISIBLE = 01 // netconfig.h:84:1:
  390. NC_X25 = "x25" // netconfig.h:112:1:
  391. NETCONFIG = "/etc/netconfig" // netconfig.h:41:1:
  392. NETPATH = "NETPATH" // netconfig.h:42:1:
  393. NGROUPS_MAX_DEFAULT = 16 // param.h:148:1:
  394. NGROUPS_OLDMAX = 32 // param.h:143:1:
  395. NGROUPS_UMAX = 1024 // param.h:142:1:
  396. NGROUPS_UMIN = 0 // param.h:141:1:
  397. NMOUNT = 40 // param.h:130:1:
  398. NOFILE = 20 // param.h:132:1:
  399. NZERO = 20 // param.h:153:1:
  400. PF_802 = 18 // socket.h:338:1:
  401. PF_APPLETALK = 16 // socket.h:336:1:
  402. PF_CCITT = 10 // socket.h:330:1:
  403. PF_CHAOS = 5 // socket.h:325:1:
  404. PF_DATAKIT = 9 // socket.h:329:1:
  405. PF_DECnet = 12 // socket.h:332:1:
  406. PF_DLI = 13 // socket.h:333:1:
  407. PF_ECMA = 8 // socket.h:328:1:
  408. PF_FILE = 1 // socket.h:321:1:
  409. PF_GOSIP = 22 // socket.h:342:1:
  410. PF_HYLINK = 15 // socket.h:335:1:
  411. PF_IMPLINK = 3 // socket.h:323:1:
  412. PF_INET = 2 // socket.h:322:1:
  413. PF_INET6 = 26 // socket.h:346:1:
  414. PF_INET_OFFLOAD = 30 // socket.h:350:1:
  415. PF_IPX = 23 // socket.h:343:1:
  416. PF_KEY = 27 // socket.h:347:1:
  417. PF_LAT = 14 // socket.h:334:1:
  418. PF_LINK = 25 // socket.h:345:1:
  419. PF_LOCAL = 1 // socket.h:320:1:
  420. PF_LX_NETLINK = 33 // socket.h:353:1:
  421. PF_MAX = 33 // socket.h:355:1:
  422. PF_NBS = 7 // socket.h:327:1:
  423. PF_NCA = 28 // socket.h:348:1:
  424. PF_NIT = 17 // socket.h:337:1:
  425. PF_NS = 6 // socket.h:326:1:
  426. PF_OSI = 19 // socket.h:339:1:
  427. PF_OSINET = 21 // socket.h:341:1:
  428. PF_PACKET = 32 // socket.h:352:1:
  429. PF_POLICY = 29 // socket.h:349:1:
  430. PF_PUP = 4 // socket.h:324:1:
  431. PF_ROUTE = 24 // socket.h:344:1:
  432. PF_SNA = 11 // socket.h:331:1:
  433. PF_TRILL = 31 // socket.h:351:1:
  434. PF_UNIX = 1 // socket.h:319:1:
  435. PF_UNSPEC = 0 // socket.h:318:1:
  436. PF_X25 = 20 // socket.h:340:1:
  437. PIPE_BUF = 5120 // param.h:221:1:
  438. PIPE_MAX = 5120 // param.h:225:1:
  439. POLLERR = 0x0008 // poll.h:74:1:
  440. POLLET = 0x2000 // poll.h:84:1:
  441. POLLHUP = 0x0010 // poll.h:75:1:
  442. POLLIN = 0x0001 // poll.h:59:1:
  443. POLLNORM = 64 // poll.h:68:1:
  444. POLLNVAL = 0x0020 // poll.h:76:1:
  445. POLLONESHOT = 0x1000 // poll.h:83:1:
  446. POLLOUT = 0x0004 // poll.h:61:1:
  447. POLLPRI = 0x0002 // poll.h:60:1:
  448. POLLRDBAND = 0x0080 // poll.h:64:1:
  449. POLLRDHUP = 0x4000 // poll.h:66:1:
  450. POLLRDNORM = 0x0040 // poll.h:62:1:
  451. POLLREMOVE = 0x0800 // poll.h:82:1:
  452. POLLWRBAND = 0x0100 // poll.h:65:1:
  453. POLLWRNORM = 4 // poll.h:63:1:
  454. PREMOTE = 39 // param.h:185:1:
  455. PROTO_SDP = 257 // in.h:185:1:
  456. P_MYID = -1 // types.h:632:1:
  457. REG_LABEL_BP = 2 // machtypes.h:44:1:
  458. REG_LABEL_MAX = 8 // machtypes.h:51:1:
  459. REG_LABEL_PC = 0 // machtypes.h:42:1:
  460. REG_LABEL_R12 = 4 // machtypes.h:47:1:
  461. REG_LABEL_R13 = 5 // machtypes.h:48:1:
  462. REG_LABEL_R14 = 6 // machtypes.h:49:1:
  463. REG_LABEL_R15 = 7 // machtypes.h:50:1:
  464. REG_LABEL_RBX = 3 // machtypes.h:46:1:
  465. REG_LABEL_SP = 1 // machtypes.h:43:1:
  466. SCM_RIGHTS = 0x1010 // socket.h:197:1:
  467. SCM_TIMESTAMP = 4115 // socket.h:201:1:
  468. SCM_UCRED = 0x1012 // socket.h:199:1:
  469. SCTRSHFT = 9 // param.h:168:1:
  470. SEC = 1 // time.h:244:1:
  471. SHUT_RD = 0 // socket.h:458:1:
  472. SHUT_RDWR = 2 // socket.h:460:1:
  473. SHUT_WR = 1 // socket.h:459:1:
  474. SOCK_CLOEXEC = 0x080000 // socket.h:127:1:
  475. SOCK_DGRAM = 1 // socket.h:113:1:
  476. SOCK_NDELAY = 0x200000 // socket.h:129:1:
  477. SOCK_NONBLOCK = 0x100000 // socket.h:128:1:
  478. SOCK_RAW = 4 // socket.h:114:1:
  479. SOCK_RDM = 5 // socket.h:120:1:
  480. SOCK_SEQPACKET = 6 // socket.h:121:1:
  481. SOCK_STREAM = 2 // socket.h:112:1:
  482. SOCK_TYPE_MASK = 0xffff // socket.h:122:1:
  483. SOL_FILTER = 0xfffc // socket.h:267:1:
  484. SOL_PACKET = 0xfffd // socket.h:266:1:
  485. SOL_ROUTE = 0xfffe // socket.h:264:1:
  486. SOL_SOCKET = 0xffff // socket.h:262:1:
  487. SOMAXCONN = 128 // socket.h:360:1:
  488. SO_ACCEPTCONN = 0x0002 // socket.h:135:1:
  489. SO_ALLZONES = 0x1014 // socket.h:202:1:
  490. SO_ANON_MLP = 0x100a // socket.h:191:1:
  491. SO_ATTACH_FILTER = 0x40000001 // socket.h:157:1:
  492. SO_BROADCAST = 0x0020 // socket.h:139:1:
  493. SO_DEBUG = 0x0001 // socket.h:134:1:
  494. SO_DETACH_FILTER = 0x40000002 // socket.h:158:1:
  495. SO_DGRAM_ERRIND = 0x0200 // socket.h:143:1:
  496. SO_DOMAIN = 0x100c // socket.h:193:1:
  497. SO_DONTLINGER = -129 // socket.h:177:1:
  498. SO_DONTROUTE = 0x0010 // socket.h:138:1:
  499. SO_ERROR = 0x1007 // socket.h:188:1:
  500. SO_EXCLBIND = 0x1015 // socket.h:203:1:
  501. SO_KEEPALIVE = 0x0008 // socket.h:137:1:
  502. SO_LINGER = 0x0080 // socket.h:141:1:
  503. SO_MAC_EXEMPT = 0x100b // socket.h:192:1:
  504. SO_MAC_IMPLICIT = 0x1016 // socket.h:204:1:
  505. SO_OOBINLINE = 0x0100 // socket.h:142:1:
  506. SO_PROTOTYPE = 0x1009 // socket.h:190:1:
  507. SO_RCVBUF = 0x1002 // socket.h:183:1:
  508. SO_RCVLOWAT = 0x1004 // socket.h:185:1:
  509. SO_RCVPSH = 0x100d // socket.h:194:1:
  510. SO_RCVTIMEO = 0x1006 // socket.h:187:1:
  511. SO_RECVUCRED = 0x0400 // socket.h:144:1:
  512. SO_REUSEADDR = 0x0004 // socket.h:136:1:
  513. SO_SECATTR = 0x1011 // socket.h:198:1:
  514. SO_SNDBUF = 0x1001 // socket.h:182:1:
  515. SO_SNDLOWAT = 0x1003 // socket.h:184:1:
  516. SO_SNDTIMEO = 0x1005 // socket.h:186:1:
  517. SO_TIMESTAMP = 0x1013 // socket.h:200:1:
  518. SO_TYPE = 0x1008 // socket.h:189:1:
  519. SO_USELOOPBACK = 0x0040 // socket.h:140:1:
  520. SO_VRRP = 0x1017 // socket.h:205:1:
  521. SYSNAME = 9 // param.h:184:1:
  522. TIMER_ABSTIME = 0x1 // time_impl.h:134:1:
  523. TIMER_RELTIME = 0x0 // time_impl.h:133:1:
  524. TIME_UTC = 0x1 // time.h:306:1:
  525. TYPICALMAXPATHLEN = 64 // param.h:200:1:
  526. UBSIZE = 512 // param.h:167:1:
  527. UID_DLADM = 15 // param.h:98:1:
  528. UID_NETADM = 16 // param.h:99:1:
  529. UID_NOACCESS = 60002 // param.h:101:1:
  530. UID_NOBODY = 60001 // param.h:94:1:
  531. UID_UNKNOWN = 96 // param.h:96:1:
  532. UIOA_ALLOC = 0x0001 // uio.h:194:1:
  533. UIOA_CLR = -16 // uio.h:199:1:
  534. UIOA_ENABLED = 0x0004 // uio.h:196:1:
  535. UIOA_FINI = 0x0008 // uio.h:197:1:
  536. UIOA_INIT = 0x0002 // uio.h:195:1:
  537. UIOA_IOV_MAX = 16 // uio.h:112:1:
  538. UIOA_POLL = 0x0010 // uio.h:201:1:
  539. UIO_ASYNC = 0x0002 // uio.h:237:1:
  540. UIO_COPY_CACHED = 0x0001 // uio.h:235:1:
  541. UIO_COPY_DEFAULT = 0x0000 // uio.h:234:1:
  542. UIO_XUIO = 0x0004 // uio.h:238:1:
  543. X_ACL_ACE_ENABLED = 0x2 // unistd.h:349:1:
  544. X_ACL_ACLENT_ENABLED = 0x1 // unistd.h:348:1:
  545. X_ALIGNMENT_REQUIRED = 1 // isa_defs.h:262:1:
  546. X_BIT_FIELDS_LTOH = 0 // isa_defs.h:245:1:
  547. X_BOOL_ALIGNMENT = 1 // isa_defs.h:248:1:
  548. X_CASE_INSENSITIVE = 0x2 // unistd.h:342:1:
  549. X_CASE_SENSITIVE = 0x1 // unistd.h:341:1:
  550. X_CHAR_ALIGNMENT = 1 // isa_defs.h:249:1:
  551. X_CHAR_IS_SIGNED = 0 // isa_defs.h:247:1:
  552. X_CLOCKID_T = 0 // types.h:568:1:
  553. X_CLOCK_T = 0 // types.h:563:1:
  554. X_COND_MAGIC = 0x4356 // types.h:426:1:
  555. X_CS_LFS64_CFLAGS = 72 // unistd.h:61:1:
  556. X_CS_LFS64_LDFLAGS = 73 // unistd.h:62:1:
  557. X_CS_LFS64_LIBS = 74 // unistd.h:63:1:
  558. X_CS_LFS64_LINTFLAGS = 75 // unistd.h:64:1:
  559. X_CS_LFS_CFLAGS = 68 // unistd.h:56:1:
  560. X_CS_LFS_LDFLAGS = 69 // unistd.h:57:1:
  561. X_CS_LFS_LIBS = 70 // unistd.h:58:1:
  562. X_CS_LFS_LINTFLAGS = 71 // unistd.h:59:1:
  563. X_CS_PATH = 65 // unistd.h:50:1:
  564. X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 800 // unistd.h:85:1:
  565. X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 801 // unistd.h:86:1:
  566. X_CS_POSIX_V6_ILP32_OFF32_LIBS = 802 // unistd.h:87:1:
  567. X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 803 // unistd.h:88:1:
  568. X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 804 // unistd.h:89:1:
  569. X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 805 // unistd.h:90:1:
  570. X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 806 // unistd.h:91:1:
  571. X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 807 // unistd.h:92:1:
  572. X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 808 // unistd.h:93:1:
  573. X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 809 // unistd.h:94:1:
  574. X_CS_POSIX_V6_LP64_OFF64_LIBS = 810 // unistd.h:95:1:
  575. X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 811 // unistd.h:96:1:
  576. X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 812 // unistd.h:97:1:
  577. X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 813 // unistd.h:98:1:
  578. X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 814 // unistd.h:99:1:
  579. X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 815 // unistd.h:100:1:
  580. X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 816 // unistd.h:101:1:
  581. X_CS_XBS5_ILP32_OFF32_CFLAGS = 700 // unistd.h:67:1:
  582. X_CS_XBS5_ILP32_OFF32_LDFLAGS = 701 // unistd.h:68:1:
  583. X_CS_XBS5_ILP32_OFF32_LIBS = 702 // unistd.h:69:1:
  584. X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 703 // unistd.h:70:1:
  585. X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 705 // unistd.h:71:1:
  586. X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 706 // unistd.h:72:1:
  587. X_CS_XBS5_ILP32_OFFBIG_LIBS = 707 // unistd.h:73:1:
  588. X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 708 // unistd.h:74:1:
  589. X_CS_XBS5_LP64_OFF64_CFLAGS = 709 // unistd.h:75:1:
  590. X_CS_XBS5_LP64_OFF64_LDFLAGS = 710 // unistd.h:76:1:
  591. X_CS_XBS5_LP64_OFF64_LIBS = 711 // unistd.h:77:1:
  592. X_CS_XBS5_LP64_OFF64_LINTFLAGS = 712 // unistd.h:78:1:
  593. X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 713 // unistd.h:79:1:
  594. X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 714 // unistd.h:80:1:
  595. X_CS_XBS5_LPBIG_OFFBIG_LIBS = 715 // unistd.h:81:1:
  596. X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 716 // unistd.h:82:1:
  597. X_DMA_USES_PHYSADDR = 0 // isa_defs.h:281:1:
  598. X_DONT_USE_1275_GENERIC_NAMES = 0 // isa_defs.h:287:1:
  599. X_DOUBLE_ALIGNMENT = 8 // isa_defs.h:256:1:
  600. X_DOUBLE_COMPLEX_ALIGNMENT = 8 // isa_defs.h:257:1:
  601. X_DTRACE_VERSION = 1 // feature_tests.h:490:1:
  602. X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
  603. X_FIRMWARE_NEEDS_FDISK = 0 // isa_defs.h:282:1:
  604. X_FLOAT_ALIGNMENT = 4 // isa_defs.h:252:1:
  605. X_FLOAT_COMPLEX_ALIGNMENT = 4 // isa_defs.h:253:1:
  606. X_HAVE_CPUID_INSN = 0 // isa_defs.h:288:1:
  607. X_IEEE_754 = 0 // isa_defs.h:246:1:
  608. X_INT64_TYPE = 0 // int_types.h:82:1:
  609. X_INT_ALIGNMENT = 4 // isa_defs.h:251:1:
  610. X_IN_ADDR_T = 0 // byteorder.h:78:1:
  611. X_IN_PORT_T = 0 // byteorder.h:73:1:
  612. X_IPADDR_T = 0 // in.h:98:1:
  613. X_ISO_CPP_14882_1998 = 0 // feature_tests.h:466:1:
  614. X_ISO_C_9899_1999 = 0 // feature_tests.h:472:1:
  615. X_ISO_C_9899_2011 = 0 // feature_tests.h:478:1:
  616. X_ISO_TIME_ISO_H = 0 // time_iso.h:46:1:
  617. X_LARGEFILE64_SOURCE = 1 // feature_tests.h:231:1:
  618. X_LARGEFILE_SOURCE = 1 // feature_tests.h:235:1:
  619. X_LITTLE_ENDIAN = 0 // isa_defs.h:242:1:
  620. X_LOCALE_T = 0 // time.h:291:1:
  621. X_LONGLONG_TYPE = 0 // feature_tests.h:412:1:
  622. X_LONG_ALIGNMENT = 8 // isa_defs.h:254:1:
  623. X_LONG_DOUBLE_ALIGNMENT = 16 // isa_defs.h:258:1:
  624. X_LONG_DOUBLE_COMPLEX_ALIGNMENT = 16 // isa_defs.h:259:1:
  625. X_LONG_LONG_ALIGNMENT = 8 // isa_defs.h:255:1:
  626. X_LONG_LONG_ALIGNMENT_32 = 4 // isa_defs.h:268:1:
  627. X_LONG_LONG_LTOH = 0 // isa_defs.h:244:1:
  628. X_LP64 = 1 // <predefined>:286:1:
  629. X_MAX_ALIGNMENT = 16 // isa_defs.h:261:1:
  630. X_MULTI_DATAMODEL = 0 // isa_defs.h:279:1:
  631. X_MUTEX_MAGIC = 0x4d58 // types.h:424:1:
  632. X_NBBY = 8 // select.h:100:1:
  633. X_NETINET_IN_H = 0 // in.h:33:1:
  634. X_NET_IF_DL_H = 0 // if_dl.h:39:1:
  635. X_NORETURN_KYWD = 0 // feature_tests.h:448:1:
  636. X_OFF_T = 0 // types.h:142:1:
  637. X_OLD_IPV6_RECVDSTOPTS = 0x15 // in.h:1247:1:
  638. X_PC_2_SYMLINKS = 19 // unistd.h:309:1:
  639. X_PC_ACCESS_FILTERING = 25 // unistd.h:315:1:
  640. X_PC_ACL_ENABLED = 20 // unistd.h:310:1:
  641. X_PC_ALLOC_SIZE_MIN = 13 // unistd.h:303:1:
  642. X_PC_ASYNC_IO = 10 // unistd.h:299:1:
  643. X_PC_CASE_BEHAVIOR = 22 // unistd.h:312:1:
  644. X_PC_CHOWN_RESTRICTED = 9 // unistd.h:297:1:
  645. X_PC_FILESIZEBITS = 67 // unistd.h:325:1:
  646. X_PC_LAST = 101 // unistd.h:336:1:
  647. X_PC_LINK_MAX = 1 // unistd.h:289:1:
  648. X_PC_MAX_CANON = 2 // unistd.h:290:1:
  649. X_PC_MAX_INPUT = 3 // unistd.h:291:1:
  650. X_PC_MIN_HOLE_SIZE = 21 // unistd.h:311:1:
  651. X_PC_NAME_MAX = 4 // unistd.h:292:1:
  652. X_PC_NO_TRUNC = 7 // unistd.h:295:1:
  653. X_PC_PATH_MAX = 5 // unistd.h:293:1:
  654. X_PC_PIPE_BUF = 6 // unistd.h:294:1:
  655. X_PC_PRIO_IO = 11 // unistd.h:300:1:
  656. X_PC_REC_INCR_XFER_SIZE = 14 // unistd.h:304:1:
  657. X_PC_REC_MAX_XFER_SIZE = 15 // unistd.h:305:1:
  658. X_PC_REC_MIN_XFER_SIZE = 16 // unistd.h:306:1:
  659. X_PC_REC_XFER_ALIGN = 17 // unistd.h:307:1:
  660. X_PC_SATTR_ENABLED = 23 // unistd.h:313:1:
  661. X_PC_SATTR_EXISTS = 24 // unistd.h:314:1:
  662. X_PC_SYMLINK_MAX = 18 // unistd.h:308:1:
  663. X_PC_SYNC_IO = 12 // unistd.h:301:1:
  664. X_PC_TIMESTAMP_RESOLUTION = 26 // unistd.h:317:1:
  665. X_PC_VDISABLE = 8 // unistd.h:296:1:
  666. X_PC_XATTR_ENABLED = 100 // unistd.h:330:1:
  667. X_PC_XATTR_EXISTS = 101 // unistd.h:331:1:
  668. X_POINTER_ALIGNMENT = 8 // isa_defs.h:260:1:
  669. X_POSIX2_CHAR_TERM = 1 // unistd.h:391:1:
  670. X_POSIX2_C_BIND = 1 // unistd.h:401:1:
  671. X_POSIX2_C_DEV = 1 // unistd.h:402:1:
  672. X_POSIX2_C_VERSION = 199209 // unistd.h:376:1:
  673. X_POSIX2_FORT_RUN = 1 // unistd.h:403:1:
  674. X_POSIX2_LOCALEDEF = 1 // unistd.h:404:1:
  675. X_POSIX2_SW_DEV = 1 // unistd.h:405:1:
  676. X_POSIX2_UPE = 1 // unistd.h:406:1:
  677. X_POSIX2_VERSION = 199209 // unistd.h:363:1:
  678. X_POSIX_REGEXP = 1 // unistd.h:410:1:
  679. X_POSIX_SHELL = 1 // unistd.h:411:1:
  680. X_POSIX_VDISABLE = 0 // param.h:70:1:
  681. X_POSIX_VERSION = 199506 // unistd.h:355:1:
  682. X_PSM_MODULES = 0 // isa_defs.h:284:1:
  683. X_PTRDIFF_T = 0 // types.h:112:1:
  684. X_RESTRICT_KYWD = 0 // feature_tests.h:435:1:
  685. X_RTC_CONFIG = 0 // isa_defs.h:285:1:
  686. X_RWL_MAGIC = 0x5257 // types.h:427:1:
  687. X_SA_FAMILY_T = 0 // socket_impl.h:42:1:
  688. X_SC_2_CHAR_TERM = 66 // unistd.h:175:1:
  689. X_SC_2_C_BIND = 45 // unistd.h:153:1:
  690. X_SC_2_C_DEV = 46 // unistd.h:154:1:
  691. X_SC_2_C_VERSION = 47 // unistd.h:155:1:
  692. X_SC_2_FORT_DEV = 48 // unistd.h:156:1:
  693. X_SC_2_FORT_RUN = 49 // unistd.h:157:1:
  694. X_SC_2_LOCALEDEF = 50 // unistd.h:158:1:
  695. X_SC_2_PBS = 724 // unistd.h:246:1:
  696. X_SC_2_PBS_ACCOUNTING = 725 // unistd.h:247:1:
  697. X_SC_2_PBS_CHECKPOINT = 726 // unistd.h:248:1:
  698. X_SC_2_PBS_LOCATE = 728 // unistd.h:249:1:
  699. X_SC_2_PBS_MESSAGE = 729 // unistd.h:250:1:
  700. X_SC_2_PBS_TRACK = 730 // unistd.h:251:1:
  701. X_SC_2_SW_DEV = 51 // unistd.h:159:1:
  702. X_SC_2_UPE = 52 // unistd.h:160:1:
  703. X_SC_2_VERSION = 53 // unistd.h:161:1:
  704. X_SC_ADVISORY_INFO = 731 // unistd.h:252:1:
  705. X_SC_AIO_LISTIO_MAX = 18 // unistd.h:125:1:
  706. X_SC_AIO_MAX = 19 // unistd.h:126:1:
  707. X_SC_AIO_PRIO_DELTA_MAX = 20 // unistd.h:127:1:
  708. X_SC_ARG_MAX = 1 // unistd.h:106:1:
  709. X_SC_ASYNCHRONOUS_IO = 21 // unistd.h:128:1:
  710. X_SC_ATEXIT_MAX = 76 // unistd.h:179:1:
  711. X_SC_AVPHYS_PAGES = 501 // unistd.h:190:1:
  712. X_SC_BARRIERS = 732 // unistd.h:253:1:
  713. X_SC_BC_BASE_MAX = 54 // unistd.h:162:1:
  714. X_SC_BC_DIM_MAX = 55 // unistd.h:163:1:
  715. X_SC_BC_SCALE_MAX = 56 // unistd.h:164:1:
  716. X_SC_BC_STRING_MAX = 57 // unistd.h:165:1:
  717. X_SC_CHILD_MAX = 2 // unistd.h:107:1:
  718. X_SC_CLK_TCK = 3 // unistd.h:108:1:
  719. X_SC_CLOCK_SELECTION = 733 // unistd.h:254:1:
  720. X_SC_COHER_BLKSZ = 503 // unistd.h:196:1:
  721. X_SC_COLL_WEIGHTS_MAX = 58 // unistd.h:166:1:
  722. X_SC_CPUID_MAX = 517 // unistd.h:211:1:
  723. X_SC_CPUTIME = 734 // unistd.h:255:1:
  724. X_SC_DCACHE_ASSOC = 513 // unistd.h:206:1:
  725. X_SC_DCACHE_BLKSZ = 510 // unistd.h:203:1:
  726. X_SC_DCACHE_LINESZ = 508 // unistd.h:201:1:
  727. X_SC_DCACHE_SZ = 506 // unistd.h:199:1:
  728. X_SC_DCACHE_TBLKSZ = 511 // unistd.h:204:1:
  729. X_SC_DELAYTIMER_MAX = 22 // unistd.h:129:1:
  730. X_SC_EPHID_MAX = 518 // unistd.h:212:1:
  731. X_SC_EXPR_NEST_MAX = 59 // unistd.h:167:1:
  732. X_SC_FSYNC = 23 // unistd.h:130:1:
  733. X_SC_GETGR_R_SIZE_MAX = 569 // unistd.h:220:1:
  734. X_SC_GETPW_R_SIZE_MAX = 570 // unistd.h:221:1:
  735. X_SC_HOST_NAME_MAX = 735 // unistd.h:256:1:
  736. X_SC_ICACHE_ASSOC = 512 // unistd.h:205:1:
  737. X_SC_ICACHE_BLKSZ = 509 // unistd.h:202:1:
  738. X_SC_ICACHE_LINESZ = 507 // unistd.h:200:1:
  739. X_SC_ICACHE_SZ = 505 // unistd.h:198:1:
  740. X_SC_IOV_MAX = 77 // unistd.h:180:1:
  741. X_SC_IPV6 = 762 // unistd.h:283:1:
  742. X_SC_JOB_CONTROL = 6 // unistd.h:111:1:
  743. X_SC_LINE_MAX = 60 // unistd.h:168:1:
  744. X_SC_LOGIN_NAME_MAX = 571 // unistd.h:222:1:
  745. X_SC_LOGNAME_MAX = 10 // unistd.h:116:1:
  746. X_SC_MAPPED_FILES = 24 // unistd.h:131:1:
  747. X_SC_MAXPID = 514 // unistd.h:208:1:
  748. X_SC_MEMLOCK = 25 // unistd.h:132:1:
  749. X_SC_MEMLOCK_RANGE = 26 // unistd.h:133:1:
  750. X_SC_MEMORY_PROTECTION = 27 // unistd.h:134:1:
  751. X_SC_MESSAGE_PASSING = 28 // unistd.h:135:1:
  752. X_SC_MONOTONIC_CLOCK = 736 // unistd.h:257:1:
  753. X_SC_MQ_OPEN_MAX = 29 // unistd.h:136:1:
  754. X_SC_MQ_PRIO_MAX = 30 // unistd.h:137:1:
  755. X_SC_NGROUPS_MAX = 4 // unistd.h:109:1:
  756. X_SC_NPROCESSORS_CONF = 14 // unistd.h:120:1:
  757. X_SC_NPROCESSORS_MAX = 516 // unistd.h:210:1:
  758. X_SC_NPROCESSORS_ONLN = 15 // unistd.h:121:1:
  759. X_SC_OPEN_MAX = 5 // unistd.h:110:1:
  760. X_SC_PAGESIZE = 11 // unistd.h:117:1:
  761. X_SC_PAGE_SIZE = 11 // unistd.h:182:1:
  762. X_SC_PASS_MAX = 9 // unistd.h:115:1:
  763. X_SC_PHYS_PAGES = 500 // unistd.h:189:1:
  764. X_SC_PRIORITIZED_IO = 31 // unistd.h:138:1:
  765. X_SC_PRIORITY_SCHEDULING = 32 // unistd.h:139:1:
  766. X_SC_RAW_SOCKETS = 763 // unistd.h:284:1:
  767. X_SC_READER_WRITER_LOCKS = 737 // unistd.h:258:1:
  768. X_SC_REALTIME_SIGNALS = 33 // unistd.h:140:1:
  769. X_SC_REGEXP = 738 // unistd.h:259:1:
  770. X_SC_RE_DUP_MAX = 61 // unistd.h:169:1:
  771. X_SC_RTSIG_MAX = 34 // unistd.h:141:1:
  772. X_SC_SAVED_IDS = 7 // unistd.h:112:1:
  773. X_SC_SEMAPHORES = 35 // unistd.h:142:1:
  774. X_SC_SEM_NSEMS_MAX = 36 // unistd.h:143:1:
  775. X_SC_SEM_VALUE_MAX = 37 // unistd.h:144:1:
  776. X_SC_SHARED_MEMORY_OBJECTS = 38 // unistd.h:145:1:
  777. X_SC_SHELL = 739 // unistd.h:260:1:
  778. X_SC_SIGQUEUE_MAX = 39 // unistd.h:146:1:
  779. X_SC_SIGRT_MAX = 41 // unistd.h:148:1:
  780. X_SC_SIGRT_MIN = 40 // unistd.h:147:1:
  781. X_SC_SPAWN = 740 // unistd.h:261:1:
  782. X_SC_SPIN_LOCKS = 741 // unistd.h:262:1:
  783. X_SC_SPLIT_CACHE = 504 // unistd.h:197:1:
  784. X_SC_SPORADIC_SERVER = 742 // unistd.h:263:1:
  785. X_SC_SS_REPL_MAX = 743 // unistd.h:264:1:
  786. X_SC_STACK_PROT = 515 // unistd.h:209:1:
  787. X_SC_STREAM_MAX = 16 // unistd.h:122:1:
  788. X_SC_SYMLOOP_MAX = 744 // unistd.h:265:1:
  789. X_SC_SYNCHRONIZED_IO = 42 // unistd.h:149:1:
  790. X_SC_THREADS = 576 // unistd.h:227:1:
  791. X_SC_THREAD_ATTR_STACKADDR = 577 // unistd.h:228:1:
  792. X_SC_THREAD_ATTR_STACKSIZE = 578 // unistd.h:229:1:
  793. X_SC_THREAD_CPUTIME = 745 // unistd.h:266:1:
  794. X_SC_THREAD_DESTRUCTOR_ITERATIONS = 568 // unistd.h:219:1:
  795. X_SC_THREAD_KEYS_MAX = 572 // unistd.h:223:1:
  796. X_SC_THREAD_PRIORITY_SCHEDULING = 579 // unistd.h:230:1:
  797. X_SC_THREAD_PRIO_INHERIT = 580 // unistd.h:231:1:
  798. X_SC_THREAD_PRIO_PROTECT = 581 // unistd.h:232:1:
  799. X_SC_THREAD_PROCESS_SHARED = 582 // unistd.h:233:1:
  800. X_SC_THREAD_SAFE_FUNCTIONS = 583 // unistd.h:234:1:
  801. X_SC_THREAD_SPORADIC_SERVER = 746 // unistd.h:267:1:
  802. X_SC_THREAD_STACK_MIN = 573 // unistd.h:224:1:
  803. X_SC_THREAD_THREADS_MAX = 574 // unistd.h:225:1:
  804. X_SC_TIMEOUTS = 747 // unistd.h:268:1:
  805. X_SC_TIMERS = 43 // unistd.h:150:1:
  806. X_SC_TIMER_MAX = 44 // unistd.h:151:1:
  807. X_SC_TRACE = 748 // unistd.h:269:1:
  808. X_SC_TRACE_EVENT_FILTER = 749 // unistd.h:270:1:
  809. X_SC_TRACE_EVENT_NAME_MAX = 750 // unistd.h:271:1:
  810. X_SC_TRACE_INHERIT = 751 // unistd.h:272:1:
  811. X_SC_TRACE_LOG = 752 // unistd.h:273:1:
  812. X_SC_TRACE_NAME_MAX = 753 // unistd.h:274:1:
  813. X_SC_TRACE_SYS_MAX = 754 // unistd.h:275:1:
  814. X_SC_TRACE_USER_EVENT_MAX = 755 // unistd.h:276:1:
  815. X_SC_TTY_NAME_MAX = 575 // unistd.h:226:1:
  816. X_SC_TYPED_MEMORY_OBJECTS = 756 // unistd.h:277:1:
  817. X_SC_TZNAME_MAX = 17 // unistd.h:123:1:
  818. X_SC_T_IOV_MAX = 79 // unistd.h:186:1:
  819. X_SC_UADDR_MAX = 519 // unistd.h:213:1:
  820. X_SC_V6_ILP32_OFF32 = 757 // unistd.h:278:1:
  821. X_SC_V6_ILP32_OFFBIG = 758 // unistd.h:279:1:
  822. X_SC_V6_LP64_OFF64 = 759 // unistd.h:280:1:
  823. X_SC_V6_LPBIG_OFFBIG = 760 // unistd.h:281:1:
  824. X_SC_VERSION = 8 // unistd.h:113:1:
  825. X_SC_XBS5_ILP32_OFF32 = 720 // unistd.h:240:1:
  826. X_SC_XBS5_ILP32_OFFBIG = 721 // unistd.h:241:1:
  827. X_SC_XBS5_LP64_OFF64 = 722 // unistd.h:242:1:
  828. X_SC_XBS5_LPBIG_OFFBIG = 723 // unistd.h:243:1:
  829. X_SC_XOPEN_CRYPT = 62 // unistd.h:170:1:
  830. X_SC_XOPEN_ENH_I18N = 63 // unistd.h:171:1:
  831. X_SC_XOPEN_LEGACY = 717 // unistd.h:237:1:
  832. X_SC_XOPEN_REALTIME = 718 // unistd.h:238:1:
  833. X_SC_XOPEN_REALTIME_THREADS = 719 // unistd.h:239:1:
  834. X_SC_XOPEN_SHM = 64 // unistd.h:172:1:
  835. X_SC_XOPEN_STREAMS = 761 // unistd.h:282:1:
  836. X_SC_XOPEN_UNIX = 78 // unistd.h:181:1:
  837. X_SC_XOPEN_VERSION = 12 // unistd.h:118:1:
  838. X_SC_XOPEN_XCU_VERSION = 67 // unistd.h:176:1:
  839. X_SEMA_MAGIC = 0x534d // types.h:425:1:
  840. X_SHORT_ALIGNMENT = 2 // isa_defs.h:250:1:
  841. X_SIGEVENT = 0 // time.h:132:1:
  842. X_SIGSET_T = 0 // select.h:73:1:
  843. X_SIGVAL = 0 // time.h:124:1:
  844. X_SIZE_T = 0 // types.h:540:1:
  845. X_SOCKLEN_T = 0 // in.h:48:1:
  846. X_SOFT_HOSTID = 0 // isa_defs.h:286:1:
  847. X_SSIZE_T = 0 // types.h:549:1:
  848. X_SS_MAXSIZE = 256 // socket_impl.h:70:1:
  849. X_STACK_GROWS_DOWNWARD = 0 // isa_defs.h:243:1:
  850. X_STDC_C11 = 0 // feature_tests.h:165:1:
  851. X_STDC_C99 = 0 // feature_tests.h:169:1:
  852. X_SUNOS_VTOC_16 = 0 // isa_defs.h:280:1:
  853. X_SUSECONDS_T = 0 // types.h:343:1:
  854. X_SYS_BYTEORDER_H = 0 // byteorder.h:41:1:
  855. X_SYS_CCOMPILE_H = 0 // ccompile.h:32:1:
  856. X_SYS_CRED_H = 0 // cred.h:35:1:
  857. X_SYS_FEATURE_TESTS_H = 0 // feature_tests.h:41:1:
  858. X_SYS_INT_TYPES_H = 0 // int_types.h:30:1:
  859. X_SYS_ISA_DEFS_H = 0 // isa_defs.h:30:1:
  860. X_SYS_MACHTYPES_H = 0 // machtypes.h:27:1:
  861. X_SYS_NETCONFIG_H = 0 // netconfig.h:35:1:
  862. X_SYS_NULL_H = 0 // null.h:17:1:
  863. X_SYS_PARAM_H = 0 // param.h:41:1:
  864. X_SYS_POLL_H = 0 // poll.h:38:1:
  865. X_SYS_SELECT_H = 0 // select.h:45:1:
  866. X_SYS_SOCKET_H = 0 // socket.h:47:1:
  867. X_SYS_SOCKET_IMPL_H = 0 // socket_impl.h:35:1:
  868. X_SYS_TIME_H = 0 // time.h:27:1:
  869. X_SYS_TIME_IMPL_H = 0 // time_impl.h:38:1:
  870. X_SYS_TYPES_H = 0 // types.h:35:1:
  871. X_SYS_UIO_H = 0 // uio.h:45:1:
  872. X_SYS_UNISTD_H = 0 // unistd.h:40:1:
  873. X_SYS_UN_H = 0 // un.h:39:1:
  874. X_TIMER_T = 0 // types.h:573:1:
  875. X_TIME_H = 0 // time.h:37:1:
  876. X_TIME_T = 0 // types.h:558:1:
  877. X_TTY_BUFSIZ = 2048 // param.h:75:1:
  878. X_UID_T = 0 // types.h:400:1:
  879. X_XOPEN_ENH_I18N = 1 // unistd.h:389:1:
  880. X_XOPEN_REALTIME = 1 // unistd.h:388:1:
  881. X_XOPEN_SHM = 1 // unistd.h:390:1:
  882. X_XOPEN_STREAMS = 1 // unistd.h:412:1:
  883. X_XOPEN_UNIX = 0 // unistd.h:382:1:
  884. X_XOPEN_VERSION = 3 // feature_tests.h:392:1:
  885. X_XOPEN_XCU_VERSION = 4 // unistd.h:385:1:
  886. X_XOPEN_XPG3 = 0 // unistd.h:380:1:
  887. X_XOPEN_XPG4 = 0 // unistd.h:381:1:
  888. Sun = 1 // <predefined>:172:1:
  889. Unix = 1 // <predefined>:175:1:
  890. )
  891. // used for block sizes
  892. // The boolean_t type has had a varied amount of exposure over the years in
  893. // terms of how its enumeration constants have been exposed. In particular, it
  894. // originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the
  895. // B_TRUE and B_FALSE with an underscore. This check never included the
  896. // question of if we were in a strict ANSI C environment or whether extensions
  897. // were defined.
  898. //
  899. // Compilers such as clang started defaulting to always including an
  900. // XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__.
  901. // This would lead most software that had used the non-underscore versions to
  902. // need it. As such, we have adjusted the non-strict XOPEN environment to retain
  903. // its old behavior so as to minimize namespace pollution; however, we instead
  904. // include both variants of the definitions in the generally visible version
  905. // allowing software written in either world to hopefully end up in a good
  906. // place.
  907. //
  908. // This isn't perfect, but should hopefully minimize the pain for folks actually
  909. // trying to build software.
  910. const ( /* types.h:215:1: */
  911. B_FALSE = 0
  912. B_TRUE = 1
  913. X_B_FALSE = 0
  914. X_B_TRUE = 1
  915. )
  916. // uio extensions
  917. //
  918. // PSARC 2009/478: Copy Reduction Interfaces
  919. const ( /* uio.h:146:1: */
  920. UIOTYPE_ASYNCIO = 0
  921. UIOTYPE_ZEROCOPY = 1
  922. UIOTYPE_PEEKSIZE = 2
  923. )
  924. // I/O direction.
  925. const ( /* uio.h:220:1: */
  926. UIO_READ = 0
  927. UIO_WRITE = 1
  928. )
  929. // Segment flag values.
  930. const ( /* uio.h:93:1: */
  931. UIO_USERSPACE = 0
  932. UIO_SYSSPACE = 1
  933. UIO_USERISPACE = 2
  934. )
  935. type Ptrdiff_t = int64 /* <builtin>:3:26 */
  936. type Size_t = uint64 /* <builtin>:9:23 */
  937. type Wchar_t = int32 /* <builtin>:15:24 */
  938. type X__int128_t = struct {
  939. Flo int64
  940. Fhi int64
  941. } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
  942. type X__uint128_t = struct {
  943. Flo uint64
  944. Fhi uint64
  945. } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
  946. type X__builtin_va_list = uintptr /* <builtin>:46:14 */
  947. type X__float128 = float64 /* <builtin>:47:21 */
  948. // CDDL HEADER START
  949. //
  950. // The contents of this file are subject to the terms of the
  951. // Common Development and Distribution License (the "License").
  952. // You may not use this file except in compliance with the License.
  953. //
  954. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  955. // or http://www.opensolaris.org/os/licensing.
  956. // See the License for the specific language governing permissions
  957. // and limitations under the License.
  958. //
  959. // When distributing Covered Code, include this CDDL HEADER in each
  960. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  961. // If applicable, add the following below this CDDL HEADER, with the
  962. // fields enclosed by brackets "[]" replaced with your own identifying
  963. // information: Portions Copyright [yyyy] [name of copyright owner]
  964. //
  965. // CDDL HEADER END
  966. // Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  967. // Copyright 2015, Joyent, Inc. All rights reserved.
  968. // Copyright 2022 Garrett D'Amore
  969. //
  970. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  971. // All Rights Reserved
  972. // University Copyright- Copyright (c) 1982, 1986, 1988
  973. // The Regents of the University of California
  974. // All Rights Reserved
  975. //
  976. // University Acknowledgment- Portions of this document are derived from
  977. // software developed by the University of California, Berkeley, and its
  978. // contributors.
  979. // Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
  980. // Copyright (c) 2014, Joyent, Inc. All rights reserved.
  981. // CDDL HEADER START
  982. //
  983. // The contents of this file are subject to the terms of the
  984. // Common Development and Distribution License (the "License").
  985. // You may not use this file except in compliance with the License.
  986. //
  987. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  988. // or http://www.opensolaris.org/os/licensing.
  989. // See the License for the specific language governing permissions
  990. // and limitations under the License.
  991. //
  992. // When distributing Covered Code, include this CDDL HEADER in each
  993. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  994. // If applicable, add the following below this CDDL HEADER, with the
  995. // fields enclosed by brackets "[]" replaced with your own identifying
  996. // information: Portions Copyright [yyyy] [name of copyright owner]
  997. //
  998. // CDDL HEADER END
  999. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  1000. // All Rights Reserved
  1001. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  1002. // Use is subject to license terms.
  1003. //
  1004. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  1005. // Copyright 2016 Joyent, Inc.
  1006. // Copyright 2021 Oxide Computer Company
  1007. // DO NOT EDIT THIS FILE.
  1008. //
  1009. // It has been auto-edited by fixincludes from:
  1010. //
  1011. // "/usr/include/sys/feature_tests.h"
  1012. //
  1013. // This had to be done to correct non-standard usages in the
  1014. // original, manufacturer supplied header file.
  1015. // CDDL HEADER START
  1016. //
  1017. // The contents of this file are subject to the terms of the
  1018. // Common Development and Distribution License (the "License").
  1019. // You may not use this file except in compliance with the License.
  1020. //
  1021. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1022. // or http://www.opensolaris.org/os/licensing.
  1023. // See the License for the specific language governing permissions
  1024. // and limitations under the License.
  1025. //
  1026. // When distributing Covered Code, include this CDDL HEADER in each
  1027. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1028. // If applicable, add the following below this CDDL HEADER, with the
  1029. // fields enclosed by brackets "[]" replaced with your own identifying
  1030. // information: Portions Copyright [yyyy] [name of copyright owner]
  1031. //
  1032. // CDDL HEADER END
  1033. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  1034. // Copyright 2016 Joyent, Inc.
  1035. // Copyright 2022 Oxide Computer Company
  1036. //
  1037. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  1038. // Use is subject to license terms.
  1039. // CDDL HEADER START
  1040. //
  1041. // The contents of this file are subject to the terms of the
  1042. // Common Development and Distribution License, Version 1.0 only
  1043. // (the "License"). You may not use this file except in compliance
  1044. // with the License.
  1045. //
  1046. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1047. // or http://www.opensolaris.org/os/licensing.
  1048. // See the License for the specific language governing permissions
  1049. // and limitations under the License.
  1050. //
  1051. // When distributing Covered Code, include this CDDL HEADER in each
  1052. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1053. // If applicable, add the following below this CDDL HEADER, with the
  1054. // fields enclosed by brackets "[]" replaced with your own identifying
  1055. // information: Portions Copyright [yyyy] [name of copyright owner]
  1056. //
  1057. // CDDL HEADER END
  1058. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  1059. // Use is subject to license terms.
  1060. // Copyright 2015 EveryCity Ltd. All rights reserved.
  1061. // Copyright 2019 Joyent, Inc.
  1062. // This file contains definitions designed to enable different compilers
  1063. // to be used harmoniously on Solaris systems.
  1064. // Allow for version tests for compiler bugs and features.
  1065. // analogous to lint's PRINTFLIKEn
  1066. // Handle the kernel printf routines that can take '%b' too
  1067. // This one's pretty obvious -- the function never returns
  1068. // The function is 'extern inline' and expects GNU C89 behaviour, not C99
  1069. // behaviour.
  1070. //
  1071. // Should only be used on 'extern inline' definitions for GCC.
  1072. // The function has control flow such that it may return multiple times (in
  1073. // the manner of setjmp or vfork)
  1074. // This is an appropriate label for functions that do not
  1075. // modify their arguments, e.g. strlen()
  1076. // This is a stronger form of __pure__. Can be used for functions
  1077. // that do not modify their arguments and don't depend on global
  1078. // memory.
  1079. // This attribute, attached to a variable, means that the variable is meant to
  1080. // be possibly unused. GCC will not produce a warning for this variable.
  1081. // Shorthand versions for readability
  1082. // In release build, disable warnings about variables
  1083. // which are used only for debugging.
  1084. // CDDL HEADER START
  1085. //
  1086. // The contents of this file are subject to the terms of the
  1087. // Common Development and Distribution License (the "License").
  1088. // You may not use this file except in compliance with the License.
  1089. //
  1090. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1091. // or http://www.opensolaris.org/os/licensing.
  1092. // See the License for the specific language governing permissions
  1093. // and limitations under the License.
  1094. //
  1095. //
  1096. // When distributing Covered Code, include this CDDL HEADER in each
  1097. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1098. // If applicable, add the following below this CDDL HEADER, with the
  1099. // fields enclosed by brackets "[]" replaced with your own identifying
  1100. // information: Portions Copyright [yyyy] [name of copyright owner]
  1101. //
  1102. // CDDL HEADER END
  1103. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  1104. // Use is subject to license terms.
  1105. // Copyright 2016 Joyent, Inc.
  1106. // This header file serves to group a set of well known defines and to
  1107. // set these for each instruction set architecture. These defines may
  1108. // be divided into two groups; characteristics of the processor and
  1109. // implementation choices for Solaris on a processor.
  1110. //
  1111. // Processor Characteristics:
  1112. //
  1113. // _LITTLE_ENDIAN / _BIG_ENDIAN:
  1114. // The natural byte order of the processor. A pointer to an int points
  1115. // to the least/most significant byte of that int.
  1116. //
  1117. // _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
  1118. // The processor specific direction of stack growth. A push onto the
  1119. // stack increases/decreases the stack pointer, so it stores data at
  1120. // successively higher/lower addresses. (Stackless machines ignored
  1121. // without regrets).
  1122. //
  1123. // _LONG_LONG_HTOL / _LONG_LONG_LTOH:
  1124. // A pointer to a long long points to the most/least significant long
  1125. // within that long long.
  1126. //
  1127. // _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
  1128. // The C compiler assigns bit fields from the high/low to the low/high end
  1129. // of an int (most to least significant vs. least to most significant).
  1130. //
  1131. // _IEEE_754:
  1132. // The processor (or supported implementations of the processor)
  1133. // supports the ieee-754 floating point standard. No other floating
  1134. // point standards are supported (or significant). Any other supported
  1135. // floating point formats are expected to be cased on the ISA processor
  1136. // symbol.
  1137. //
  1138. // _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
  1139. // The C Compiler implements objects of type `char' as `unsigned' or
  1140. // `signed' respectively. This is really an implementation choice of
  1141. // the compiler writer, but it is specified in the ABI and tends to
  1142. // be uniform across compilers for an instruction set architecture.
  1143. // Hence, it has the properties of a processor characteristic.
  1144. //
  1145. // _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
  1146. // _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
  1147. // _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
  1148. // The ABI defines alignment requirements of each of the primitive
  1149. // object types. Some, if not all, may be hardware requirements as
  1150. // well. The values are expressed in "byte-alignment" units.
  1151. //
  1152. // _MAX_ALIGNMENT:
  1153. // The most stringent alignment requirement as specified by the ABI.
  1154. // Equal to the maximum of all the above _XXX_ALIGNMENT values.
  1155. //
  1156. // _MAX_ALIGNMENT_TYPE:
  1157. // The name of the C type that has the value descried in _MAX_ALIGNMENT.
  1158. //
  1159. // _ALIGNMENT_REQUIRED:
  1160. // True or false (1 or 0) whether or not the hardware requires the ABI
  1161. // alignment.
  1162. //
  1163. // _LONG_LONG_ALIGNMENT_32
  1164. // The 32-bit ABI supported by a 64-bit kernel may have different
  1165. // alignment requirements for primitive object types. The value of this
  1166. // identifier is expressed in "byte-alignment" units.
  1167. //
  1168. // _HAVE_CPUID_INSN
  1169. // This indicates that the architecture supports the 'cpuid'
  1170. // instruction as defined by Intel. (Intel allows other vendors
  1171. // to extend the instruction for their own purposes.)
  1172. //
  1173. //
  1174. // Implementation Choices:
  1175. //
  1176. // _ILP32 / _LP64:
  1177. // This specifies the compiler data type implementation as specified in
  1178. // the relevant ABI. The choice between these is strongly influenced
  1179. // by the underlying hardware, but is not absolutely tied to it.
  1180. // Currently only two data type models are supported:
  1181. //
  1182. // _ILP32:
  1183. // Int/Long/Pointer are 32 bits. This is the historical UNIX
  1184. // and Solaris implementation. Due to its historical standing,
  1185. // this is the default case.
  1186. //
  1187. // _LP64:
  1188. // Long/Pointer are 64 bits, Int is 32 bits. This is the chosen
  1189. // implementation for 64-bit ABIs such as SPARC V9.
  1190. //
  1191. // _I32LPx:
  1192. // A compilation environment where 'int' is 32-bit, and
  1193. // longs and pointers are simply the same size.
  1194. //
  1195. // In all cases, Char is 8 bits and Short is 16 bits.
  1196. //
  1197. // _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
  1198. // This specifies the form of the disk VTOC (or label):
  1199. //
  1200. // _SUNOS_VTOC_8:
  1201. // This is a VTOC form which is upwardly compatible with the
  1202. // SunOS 4.x disk label and allows 8 partitions per disk.
  1203. //
  1204. // _SUNOS_VTOC_16:
  1205. // In this format the incore vtoc image matches the ondisk
  1206. // version. It allows 16 slices per disk, and is not
  1207. // compatible with the SunOS 4.x disk label.
  1208. //
  1209. // Note that these are not the only two VTOC forms possible and
  1210. // additional forms may be added. One possible form would be the
  1211. // SVr4 VTOC form. The symbol for that is reserved now, although
  1212. // it is not implemented.
  1213. //
  1214. // _SVR4_VTOC_16:
  1215. // This VTOC form is compatible with the System V Release 4
  1216. // VTOC (as implemented on the SVr4 Intel and 3b ports) with
  1217. // 16 partitions per disk.
  1218. //
  1219. //
  1220. // _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
  1221. // This describes the type of addresses used by system DMA:
  1222. //
  1223. // _DMA_USES_PHYSADDR:
  1224. // This type of DMA, used in the x86 implementation,
  1225. // requires physical addresses for DMA buffers. The 24-bit
  1226. // addresses used by some legacy boards is the source of the
  1227. // "low-memory" (<16MB) requirement for some devices using DMA.
  1228. //
  1229. // _DMA_USES_VIRTADDR:
  1230. // This method of DMA allows the use of virtual addresses for
  1231. // DMA transfers.
  1232. //
  1233. // _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
  1234. // This indicates the presence/absence of an fdisk table.
  1235. //
  1236. // _FIRMWARE_NEEDS_FDISK
  1237. // The fdisk table is required by system firmware. If present,
  1238. // it allows a disk to be subdivided into multiple fdisk
  1239. // partitions, each of which is equivalent to a separate,
  1240. // virtual disk. This enables the co-existence of multiple
  1241. // operating systems on a shared hard disk.
  1242. //
  1243. // _NO_FDISK_PRESENT
  1244. // If the fdisk table is absent, it is assumed that the entire
  1245. // media is allocated for a single operating system.
  1246. //
  1247. // _HAVE_TEM_FIRMWARE
  1248. // Defined if this architecture has the (fallback) option of
  1249. // using prom_* calls for doing I/O if a suitable kernel driver
  1250. // is not available to do it.
  1251. //
  1252. // _DONT_USE_1275_GENERIC_NAMES
  1253. // Controls whether or not device tree node names should
  1254. // comply with the IEEE 1275 "Generic Names" Recommended
  1255. // Practice. With _DONT_USE_GENERIC_NAMES, device-specific
  1256. // names identifying the particular device will be used.
  1257. //
  1258. // __i386_COMPAT
  1259. // This indicates whether the i386 ABI is supported as a *non-native*
  1260. // mode for the platform. When this symbol is defined:
  1261. // - 32-bit xstat-style system calls are enabled
  1262. // - 32-bit xmknod-style system calls are enabled
  1263. // - 32-bit system calls use i386 sizes -and- alignments
  1264. //
  1265. // Note that this is NOT defined for the i386 native environment!
  1266. //
  1267. // __x86
  1268. // This is ONLY a synonym for defined(__i386) || defined(__amd64)
  1269. // which is useful only insofar as these two architectures share
  1270. // common attributes. Analogous to __sparc.
  1271. //
  1272. // _PSM_MODULES
  1273. // This indicates whether or not the implementation uses PSM
  1274. // modules for processor support, reading /etc/mach from inside
  1275. // the kernel to extract a list.
  1276. //
  1277. // _RTC_CONFIG
  1278. // This indicates whether or not the implementation uses /etc/rtc_config
  1279. // to configure the real-time clock in the kernel.
  1280. //
  1281. // _UNIX_KRTLD
  1282. // This indicates that the implementation uses a dynamically
  1283. // linked unix + krtld to form the core kernel image at boot
  1284. // time, or (in the absence of this symbol) a prelinked kernel image.
  1285. //
  1286. // _OBP
  1287. // This indicates the firmware interface is OBP.
  1288. //
  1289. // _SOFT_HOSTID
  1290. // This indicates that the implementation obtains the hostid
  1291. // from the file /etc/hostid, rather than from hardware.
  1292. // The following set of definitions characterize Solaris on AMD's
  1293. // 64-bit systems.
  1294. // Define the appropriate "processor characteristics"
  1295. // Different alignment constraints for the i386 ABI in compatibility mode
  1296. // Define the appropriate "implementation choices".
  1297. // The feature test macro __i386 is generic for all processors implementing
  1298. // the Intel 386 instruction set or a superset of it. Specifically, this
  1299. // includes all members of the 386, 486, and Pentium family of processors.
  1300. // Values of _POSIX_C_SOURCE
  1301. //
  1302. // undefined not a POSIX compilation
  1303. // 1 POSIX.1-1990 compilation
  1304. // 2 POSIX.2-1992 compilation
  1305. // 199309L POSIX.1b-1993 compilation (Real Time)
  1306. // 199506L POSIX.1c-1995 compilation (POSIX Threads)
  1307. // 200112L POSIX.1-2001 compilation (Austin Group Revision)
  1308. // 200809L POSIX.1-2008 compilation
  1309. // The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
  1310. // and _STDC_C99 are Sun implementation specific macros created in order to
  1311. // compress common standards specified feature test macros for easier reading.
  1312. // These macros should not be used by the application developer as
  1313. // unexpected results may occur. Instead, the user should reference
  1314. // standards(7) for correct usage of the standards feature test macros.
  1315. //
  1316. // __XOPEN_OR_POSIX Used in cases where a symbol is defined by both
  1317. // X/Open or POSIX or in the negative, when neither
  1318. // X/Open or POSIX defines a symbol.
  1319. //
  1320. // _STRICT_STDC __STDC__ is specified by the C Standards and defined
  1321. // by the compiler. For Sun compilers the value of
  1322. // __STDC__ is either 1, 0, or not defined based on the
  1323. // compilation mode (see cc(1)). When the value of
  1324. // __STDC__ is 1 and in the absence of any other feature
  1325. // test macros, the namespace available to the application
  1326. // is limited to only those symbols defined by the C
  1327. // Standard. _STRICT_STDC provides a more readable means
  1328. // of identifying symbols defined by the standard, or in
  1329. // the negative, symbols that are extensions to the C
  1330. // Standard. See additional comments for GNU C differences.
  1331. //
  1332. // _STDC_C99 __STDC_VERSION__ is specified by the C standards and
  1333. // defined by the compiler and indicates the version of
  1334. // the C standard. A value of 199901L indicates a
  1335. // compiler that complies with ISO/IEC 9899:1999, other-
  1336. // wise known as the C99 standard.
  1337. //
  1338. // _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__
  1339. // is 201112L indicating a compiler that compiles with
  1340. // ISO/IEC 9899:2011, otherwise known as the C11 standard.
  1341. //
  1342. // _STRICT_SYMBOLS Used in cases where symbol visibility is restricted
  1343. // by the standards, and the user has not explicitly
  1344. // relaxed the strictness via __EXTENSIONS__.
  1345. // ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
  1346. // 99899:2011 specify the following predefined macro name:
  1347. //
  1348. // __STDC__ The integer constant 1, intended to indicate a conforming
  1349. // implementation.
  1350. //
  1351. // Furthermore, a strictly conforming program shall use only those features
  1352. // of the language and library specified in these standards. A conforming
  1353. // implementation shall accept any strictly conforming program.
  1354. //
  1355. // Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
  1356. // strictly conforming environments and __STDC__ to 0 for environments that
  1357. // use ANSI C semantics but allow extensions to the C standard. For non-ANSI
  1358. // C semantics, Sun's C compiler does not define __STDC__.
  1359. //
  1360. // The GNU C project interpretation is that __STDC__ should always be defined
  1361. // to 1 for compilation modes that accept ANSI C syntax regardless of whether
  1362. // or not extensions to the C standard are used. Violations of conforming
  1363. // behavior are conditionally flagged as warnings via the use of the
  1364. // -pedantic option. In addition to defining __STDC__ to 1, the GNU C
  1365. // compiler also defines __STRICT_ANSI__ as a means of specifying strictly
  1366. // conforming environments using the -ansi or -std=<standard> options.
  1367. //
  1368. // In the absence of any other compiler options, Sun and GNU set the value
  1369. // of __STDC__ as follows when using the following options:
  1370. //
  1371. // Value of __STDC__ __STRICT_ANSI__
  1372. //
  1373. // cc -Xa (default) 0 undefined
  1374. // cc -Xt (transitional) 0 undefined
  1375. // cc -Xc (strictly conforming) 1 undefined
  1376. // cc -Xs (K&R C) undefined undefined
  1377. //
  1378. // gcc (default) 1 undefined
  1379. // gcc -ansi, -std={c89, c99,...) 1 defined
  1380. // gcc -traditional (K&R) undefined undefined
  1381. //
  1382. // The default compilation modes for Sun C compilers versus GNU C compilers
  1383. // results in a differing value for __STDC__ which results in a more
  1384. // restricted namespace when using Sun compilers. To allow both GNU and Sun
  1385. // interpretations to peacefully co-exist, we use the following Sun
  1386. // implementation _STRICT_STDC_ macro:
  1387. // Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
  1388. // Use strict symbol visibility.
  1389. // This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are
  1390. // governed by POSIX, but have not been governed by ISO C. One can go two ways
  1391. // on what should happen if an application actively includes (not transitively)
  1392. // a header that isn't part of the ISO C spec, we opt to say that if someone has
  1393. // gone out of there way then they're doing it for a reason and that is an act
  1394. // of non-compliance and therefore it's not up to us to hide away every symbol.
  1395. //
  1396. // In general, prefer using _STRICT_SYMBOLS, but this is here in particular for
  1397. // cases where in the past we have only used a POSIX related check and we don't
  1398. // wish to make something stricter. Often applications are relying on the
  1399. // ability to, or more realistically unwittingly, have _STRICT_STDC declared and
  1400. // still use these interfaces.
  1401. // Large file interfaces:
  1402. //
  1403. // _LARGEFILE_SOURCE
  1404. // 1 large file-related additions to POSIX
  1405. // interfaces requested (fseeko, etc.)
  1406. // _LARGEFILE64_SOURCE
  1407. // 1 transitional large-file-related interfaces
  1408. // requested (seek64, stat64, etc.)
  1409. //
  1410. // The corresponding announcement macros are respectively:
  1411. // _LFS_LARGEFILE
  1412. // _LFS64_LARGEFILE
  1413. // (These are set in <unistd.h>.)
  1414. //
  1415. // Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
  1416. // well.
  1417. //
  1418. // The large file interfaces are made visible regardless of the initial values
  1419. // of the feature test macros under certain circumstances:
  1420. // - If no explicit standards-conforming environment is requested (neither
  1421. // of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
  1422. // __STDC__ does not imply standards conformance).
  1423. // - Extended system interfaces are explicitly requested (__EXTENSIONS__
  1424. // is defined).
  1425. // - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
  1426. // defined). (Note that this dependency is an artifact of the current
  1427. // kernel implementation and may change in future releases.)
  1428. // Large file compilation environment control:
  1429. //
  1430. // The setting of _FILE_OFFSET_BITS controls the size of various file-related
  1431. // types and governs the mapping between file-related source function symbol
  1432. // names and the corresponding binary entry points.
  1433. //
  1434. // In the 32-bit environment, the default value is 32; if not set, set it to
  1435. // the default here, to simplify tests in other headers.
  1436. //
  1437. // In the 64-bit compilation environment, the only value allowed is 64.
  1438. // Use of _XOPEN_SOURCE
  1439. //
  1440. // The following X/Open specifications are supported:
  1441. //
  1442. // X/Open Portability Guide, Issue 3 (XPG3)
  1443. // X/Open CAE Specification, Issue 4 (XPG4)
  1444. // X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
  1445. // X/Open CAE Specification, Issue 5 (XPG5)
  1446. // Open Group Technical Standard, Issue 6 (XPG6), also referred to as
  1447. // IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
  1448. // Open Group Technical Standard, Issue 7 (XPG7), also referred to as
  1449. // IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
  1450. //
  1451. // XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
  1452. // XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
  1453. // Version 2 (SUSv2)
  1454. // XPG6 is the result of a merge of the X/Open and POSIX specifications
  1455. // and as such is also referred to as IEEE Std. 1003.1-2001 in
  1456. // addition to UNIX 03 and SUSv3.
  1457. // XPG7 is also referred to as UNIX 08 and SUSv4.
  1458. //
  1459. // When writing a conforming X/Open application, as per the specification
  1460. // requirements, the appropriate feature test macros must be defined at
  1461. // compile time. These are as follows. For more info, see standards(7).
  1462. //
  1463. // Feature Test Macro Specification
  1464. // ------------------------------------------------ -------------
  1465. // _XOPEN_SOURCE XPG3
  1466. // _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
  1467. // _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
  1468. // _XOPEN_SOURCE = 500 XPG5
  1469. // _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6
  1470. // _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7
  1471. //
  1472. // In order to simplify the guards within the headers, the following
  1473. // implementation private test macros have been created. Applications
  1474. // must NOT use these private test macros as unexpected results will
  1475. // occur.
  1476. //
  1477. // Note that in general, the use of these private macros is cumulative.
  1478. // For example, the use of _XPG3 with no other restrictions on the X/Open
  1479. // namespace will make the symbols visible for XPG3 through XPG6
  1480. // compilation environments. The use of _XPG4_2 with no other X/Open
  1481. // namespace restrictions indicates that the symbols were introduced in
  1482. // XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
  1483. // environments, but not for XPG3 or XPG4 compilation environments.
  1484. //
  1485. // _XPG3 X/Open Portability Guide, Issue 3 (XPG3)
  1486. // _XPG4 X/Open CAE Specification, Issue 4 (XPG4)
  1487. // _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
  1488. // _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
  1489. // _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
  1490. // _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
  1491. // X/Open Portability Guide, Issue 3
  1492. // _XOPEN_VERSION is defined by the X/Open specifications and is not
  1493. // normally defined by the application, except in the case of an XPG4
  1494. // application. On the implementation side, _XOPEN_VERSION defined with
  1495. // the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
  1496. // with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
  1497. // _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
  1498. // application and with a value of 600 indicates an XPG6 (UNIX 03)
  1499. // application and with a value of 700 indicates an XPG7 (UNIX 08).
  1500. // The appropriate version is determined by the use of the
  1501. // feature test macros described earlier. The value of _XOPEN_VERSION
  1502. // defaults to 3 otherwise indicating support for XPG3 applications.
  1503. // ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
  1504. // conforming environments. ISO 9899:1999 says it does.
  1505. //
  1506. // The presence of _LONGLONG_TYPE says "long long exists" which is therefore
  1507. // defined in all but strictly conforming environments that disallow it.
  1508. // The following macro defines a value for the ISO C99 restrict
  1509. // keyword so that _RESTRICT_KYWD resolves to "restrict" if
  1510. // an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
  1511. // if any other compiler is used. This allows for the use of single
  1512. // prototype declarations regardless of compiler version.
  1513. // The following macro defines a value for the ISO C11 _Noreturn
  1514. // keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
  1515. // an ISO C11 compiler is used and "" (null string) if any other
  1516. // compiler is used. This allows for the use of single prototype
  1517. // declarations regardless of compiler version.
  1518. // ISO/IEC 9899:2011 Annex K
  1519. // The following macro indicates header support for the ANSI C++
  1520. // standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882.
  1521. // The following macro indicates header support for the C99 standard,
  1522. // ISO/IEC 9899:1999, Programming Languages - C.
  1523. // The following macro indicates header support for the C11 standard,
  1524. // ISO/IEC 9899:2011, Programming Languages - C.
  1525. // The following macro indicates header support for the C11 standard,
  1526. // ISO/IEC 9899:2011 Annex K, Programming Languages - C.
  1527. // The following macro indicates header support for DTrace. The value is an
  1528. // integer that corresponds to the major version number for DTrace.
  1529. // CDDL HEADER START
  1530. //
  1531. // The contents of this file are subject to the terms of the
  1532. // Common Development and Distribution License (the "License").
  1533. // You may not use this file except in compliance with the License.
  1534. //
  1535. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1536. // or http://www.opensolaris.org/os/licensing.
  1537. // See the License for the specific language governing permissions
  1538. // and limitations under the License.
  1539. //
  1540. //
  1541. // When distributing Covered Code, include this CDDL HEADER in each
  1542. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1543. // If applicable, add the following below this CDDL HEADER, with the
  1544. // fields enclosed by brackets "[]" replaced with your own identifying
  1545. // information: Portions Copyright [yyyy] [name of copyright owner]
  1546. //
  1547. // CDDL HEADER END
  1548. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  1549. // Use is subject to license terms.
  1550. // Copyright 2016 Joyent, Inc.
  1551. // Machine dependent definitions moved to <sys/machtypes.h>.
  1552. // CDDL HEADER START
  1553. //
  1554. // The contents of this file are subject to the terms of the
  1555. // Common Development and Distribution License (the "License").
  1556. // You may not use this file except in compliance with the License.
  1557. //
  1558. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1559. // or http://www.opensolaris.org/os/licensing.
  1560. // See the License for the specific language governing permissions
  1561. // and limitations under the License.
  1562. //
  1563. // When distributing Covered Code, include this CDDL HEADER in each
  1564. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1565. // If applicable, add the following below this CDDL HEADER, with the
  1566. // fields enclosed by brackets "[]" replaced with your own identifying
  1567. // information: Portions Copyright [yyyy] [name of copyright owner]
  1568. //
  1569. // CDDL HEADER END
  1570. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  1571. // Use is subject to license terms.
  1572. // Machine dependent types:
  1573. //
  1574. // intel ia32 Version
  1575. type X_label_t = struct{ Fval [8]int64 } /* machtypes.h:59:9 */
  1576. // CDDL HEADER START
  1577. //
  1578. // The contents of this file are subject to the terms of the
  1579. // Common Development and Distribution License (the "License").
  1580. // You may not use this file except in compliance with the License.
  1581. //
  1582. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1583. // or http://www.opensolaris.org/os/licensing.
  1584. // See the License for the specific language governing permissions
  1585. // and limitations under the License.
  1586. //
  1587. // When distributing Covered Code, include this CDDL HEADER in each
  1588. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1589. // If applicable, add the following below this CDDL HEADER, with the
  1590. // fields enclosed by brackets "[]" replaced with your own identifying
  1591. // information: Portions Copyright [yyyy] [name of copyright owner]
  1592. //
  1593. // CDDL HEADER END
  1594. // Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  1595. // Copyright 2015, Joyent, Inc. All rights reserved.
  1596. // Copyright 2022 Garrett D'Amore
  1597. //
  1598. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  1599. // All Rights Reserved
  1600. // University Copyright- Copyright (c) 1982, 1986, 1988
  1601. // The Regents of the University of California
  1602. // All Rights Reserved
  1603. //
  1604. // University Acknowledgment- Portions of this document are derived from
  1605. // software developed by the University of California, Berkeley, and its
  1606. // contributors.
  1607. // Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
  1608. // Copyright (c) 2014, Joyent, Inc. All rights reserved.
  1609. // CDDL HEADER START
  1610. //
  1611. // The contents of this file are subject to the terms of the
  1612. // Common Development and Distribution License (the "License").
  1613. // You may not use this file except in compliance with the License.
  1614. //
  1615. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1616. // or http://www.opensolaris.org/os/licensing.
  1617. // See the License for the specific language governing permissions
  1618. // and limitations under the License.
  1619. //
  1620. // When distributing Covered Code, include this CDDL HEADER in each
  1621. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1622. // If applicable, add the following below this CDDL HEADER, with the
  1623. // fields enclosed by brackets "[]" replaced with your own identifying
  1624. // information: Portions Copyright [yyyy] [name of copyright owner]
  1625. //
  1626. // CDDL HEADER END
  1627. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  1628. // All Rights Reserved
  1629. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  1630. // Use is subject to license terms.
  1631. //
  1632. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  1633. // Copyright 2016 Joyent, Inc.
  1634. // Copyright 2021 Oxide Computer Company
  1635. // DO NOT EDIT THIS FILE.
  1636. //
  1637. // It has been auto-edited by fixincludes from:
  1638. //
  1639. // "/usr/include/sys/feature_tests.h"
  1640. //
  1641. // This had to be done to correct non-standard usages in the
  1642. // original, manufacturer supplied header file.
  1643. // CDDL HEADER START
  1644. //
  1645. // The contents of this file are subject to the terms of the
  1646. // Common Development and Distribution License (the "License").
  1647. // You may not use this file except in compliance with the License.
  1648. //
  1649. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1650. // or http://www.opensolaris.org/os/licensing.
  1651. // See the License for the specific language governing permissions
  1652. // and limitations under the License.
  1653. //
  1654. // When distributing Covered Code, include this CDDL HEADER in each
  1655. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1656. // If applicable, add the following below this CDDL HEADER, with the
  1657. // fields enclosed by brackets "[]" replaced with your own identifying
  1658. // information: Portions Copyright [yyyy] [name of copyright owner]
  1659. //
  1660. // CDDL HEADER END
  1661. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  1662. // Copyright 2016 Joyent, Inc.
  1663. // Copyright 2022 Oxide Computer Company
  1664. //
  1665. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  1666. // Use is subject to license terms.
  1667. // CDDL HEADER START
  1668. //
  1669. // The contents of this file are subject to the terms of the
  1670. // Common Development and Distribution License, Version 1.0 only
  1671. // (the "License"). You may not use this file except in compliance
  1672. // with the License.
  1673. //
  1674. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1675. // or http://www.opensolaris.org/os/licensing.
  1676. // See the License for the specific language governing permissions
  1677. // and limitations under the License.
  1678. //
  1679. // When distributing Covered Code, include this CDDL HEADER in each
  1680. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1681. // If applicable, add the following below this CDDL HEADER, with the
  1682. // fields enclosed by brackets "[]" replaced with your own identifying
  1683. // information: Portions Copyright [yyyy] [name of copyright owner]
  1684. //
  1685. // CDDL HEADER END
  1686. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  1687. // Use is subject to license terms.
  1688. // Copyright 2015 EveryCity Ltd. All rights reserved.
  1689. // Copyright 2019 Joyent, Inc.
  1690. // This file contains definitions designed to enable different compilers
  1691. // to be used harmoniously on Solaris systems.
  1692. // Allow for version tests for compiler bugs and features.
  1693. // analogous to lint's PRINTFLIKEn
  1694. // Handle the kernel printf routines that can take '%b' too
  1695. // This one's pretty obvious -- the function never returns
  1696. // The function is 'extern inline' and expects GNU C89 behaviour, not C99
  1697. // behaviour.
  1698. //
  1699. // Should only be used on 'extern inline' definitions for GCC.
  1700. // The function has control flow such that it may return multiple times (in
  1701. // the manner of setjmp or vfork)
  1702. // This is an appropriate label for functions that do not
  1703. // modify their arguments, e.g. strlen()
  1704. // This is a stronger form of __pure__. Can be used for functions
  1705. // that do not modify their arguments and don't depend on global
  1706. // memory.
  1707. // This attribute, attached to a variable, means that the variable is meant to
  1708. // be possibly unused. GCC will not produce a warning for this variable.
  1709. // Shorthand versions for readability
  1710. // In release build, disable warnings about variables
  1711. // which are used only for debugging.
  1712. // CDDL HEADER START
  1713. //
  1714. // The contents of this file are subject to the terms of the
  1715. // Common Development and Distribution License (the "License").
  1716. // You may not use this file except in compliance with the License.
  1717. //
  1718. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1719. // or http://www.opensolaris.org/os/licensing.
  1720. // See the License for the specific language governing permissions
  1721. // and limitations under the License.
  1722. //
  1723. //
  1724. // When distributing Covered Code, include this CDDL HEADER in each
  1725. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1726. // If applicable, add the following below this CDDL HEADER, with the
  1727. // fields enclosed by brackets "[]" replaced with your own identifying
  1728. // information: Portions Copyright [yyyy] [name of copyright owner]
  1729. //
  1730. // CDDL HEADER END
  1731. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  1732. // Use is subject to license terms.
  1733. // Copyright 2016 Joyent, Inc.
  1734. // This header file serves to group a set of well known defines and to
  1735. // set these for each instruction set architecture. These defines may
  1736. // be divided into two groups; characteristics of the processor and
  1737. // implementation choices for Solaris on a processor.
  1738. //
  1739. // Processor Characteristics:
  1740. //
  1741. // _LITTLE_ENDIAN / _BIG_ENDIAN:
  1742. // The natural byte order of the processor. A pointer to an int points
  1743. // to the least/most significant byte of that int.
  1744. //
  1745. // _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
  1746. // The processor specific direction of stack growth. A push onto the
  1747. // stack increases/decreases the stack pointer, so it stores data at
  1748. // successively higher/lower addresses. (Stackless machines ignored
  1749. // without regrets).
  1750. //
  1751. // _LONG_LONG_HTOL / _LONG_LONG_LTOH:
  1752. // A pointer to a long long points to the most/least significant long
  1753. // within that long long.
  1754. //
  1755. // _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
  1756. // The C compiler assigns bit fields from the high/low to the low/high end
  1757. // of an int (most to least significant vs. least to most significant).
  1758. //
  1759. // _IEEE_754:
  1760. // The processor (or supported implementations of the processor)
  1761. // supports the ieee-754 floating point standard. No other floating
  1762. // point standards are supported (or significant). Any other supported
  1763. // floating point formats are expected to be cased on the ISA processor
  1764. // symbol.
  1765. //
  1766. // _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
  1767. // The C Compiler implements objects of type `char' as `unsigned' or
  1768. // `signed' respectively. This is really an implementation choice of
  1769. // the compiler writer, but it is specified in the ABI and tends to
  1770. // be uniform across compilers for an instruction set architecture.
  1771. // Hence, it has the properties of a processor characteristic.
  1772. //
  1773. // _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
  1774. // _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
  1775. // _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
  1776. // The ABI defines alignment requirements of each of the primitive
  1777. // object types. Some, if not all, may be hardware requirements as
  1778. // well. The values are expressed in "byte-alignment" units.
  1779. //
  1780. // _MAX_ALIGNMENT:
  1781. // The most stringent alignment requirement as specified by the ABI.
  1782. // Equal to the maximum of all the above _XXX_ALIGNMENT values.
  1783. //
  1784. // _MAX_ALIGNMENT_TYPE:
  1785. // The name of the C type that has the value descried in _MAX_ALIGNMENT.
  1786. //
  1787. // _ALIGNMENT_REQUIRED:
  1788. // True or false (1 or 0) whether or not the hardware requires the ABI
  1789. // alignment.
  1790. //
  1791. // _LONG_LONG_ALIGNMENT_32
  1792. // The 32-bit ABI supported by a 64-bit kernel may have different
  1793. // alignment requirements for primitive object types. The value of this
  1794. // identifier is expressed in "byte-alignment" units.
  1795. //
  1796. // _HAVE_CPUID_INSN
  1797. // This indicates that the architecture supports the 'cpuid'
  1798. // instruction as defined by Intel. (Intel allows other vendors
  1799. // to extend the instruction for their own purposes.)
  1800. //
  1801. //
  1802. // Implementation Choices:
  1803. //
  1804. // _ILP32 / _LP64:
  1805. // This specifies the compiler data type implementation as specified in
  1806. // the relevant ABI. The choice between these is strongly influenced
  1807. // by the underlying hardware, but is not absolutely tied to it.
  1808. // Currently only two data type models are supported:
  1809. //
  1810. // _ILP32:
  1811. // Int/Long/Pointer are 32 bits. This is the historical UNIX
  1812. // and Solaris implementation. Due to its historical standing,
  1813. // this is the default case.
  1814. //
  1815. // _LP64:
  1816. // Long/Pointer are 64 bits, Int is 32 bits. This is the chosen
  1817. // implementation for 64-bit ABIs such as SPARC V9.
  1818. //
  1819. // _I32LPx:
  1820. // A compilation environment where 'int' is 32-bit, and
  1821. // longs and pointers are simply the same size.
  1822. //
  1823. // In all cases, Char is 8 bits and Short is 16 bits.
  1824. //
  1825. // _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
  1826. // This specifies the form of the disk VTOC (or label):
  1827. //
  1828. // _SUNOS_VTOC_8:
  1829. // This is a VTOC form which is upwardly compatible with the
  1830. // SunOS 4.x disk label and allows 8 partitions per disk.
  1831. //
  1832. // _SUNOS_VTOC_16:
  1833. // In this format the incore vtoc image matches the ondisk
  1834. // version. It allows 16 slices per disk, and is not
  1835. // compatible with the SunOS 4.x disk label.
  1836. //
  1837. // Note that these are not the only two VTOC forms possible and
  1838. // additional forms may be added. One possible form would be the
  1839. // SVr4 VTOC form. The symbol for that is reserved now, although
  1840. // it is not implemented.
  1841. //
  1842. // _SVR4_VTOC_16:
  1843. // This VTOC form is compatible with the System V Release 4
  1844. // VTOC (as implemented on the SVr4 Intel and 3b ports) with
  1845. // 16 partitions per disk.
  1846. //
  1847. //
  1848. // _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
  1849. // This describes the type of addresses used by system DMA:
  1850. //
  1851. // _DMA_USES_PHYSADDR:
  1852. // This type of DMA, used in the x86 implementation,
  1853. // requires physical addresses for DMA buffers. The 24-bit
  1854. // addresses used by some legacy boards is the source of the
  1855. // "low-memory" (<16MB) requirement for some devices using DMA.
  1856. //
  1857. // _DMA_USES_VIRTADDR:
  1858. // This method of DMA allows the use of virtual addresses for
  1859. // DMA transfers.
  1860. //
  1861. // _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
  1862. // This indicates the presence/absence of an fdisk table.
  1863. //
  1864. // _FIRMWARE_NEEDS_FDISK
  1865. // The fdisk table is required by system firmware. If present,
  1866. // it allows a disk to be subdivided into multiple fdisk
  1867. // partitions, each of which is equivalent to a separate,
  1868. // virtual disk. This enables the co-existence of multiple
  1869. // operating systems on a shared hard disk.
  1870. //
  1871. // _NO_FDISK_PRESENT
  1872. // If the fdisk table is absent, it is assumed that the entire
  1873. // media is allocated for a single operating system.
  1874. //
  1875. // _HAVE_TEM_FIRMWARE
  1876. // Defined if this architecture has the (fallback) option of
  1877. // using prom_* calls for doing I/O if a suitable kernel driver
  1878. // is not available to do it.
  1879. //
  1880. // _DONT_USE_1275_GENERIC_NAMES
  1881. // Controls whether or not device tree node names should
  1882. // comply with the IEEE 1275 "Generic Names" Recommended
  1883. // Practice. With _DONT_USE_GENERIC_NAMES, device-specific
  1884. // names identifying the particular device will be used.
  1885. //
  1886. // __i386_COMPAT
  1887. // This indicates whether the i386 ABI is supported as a *non-native*
  1888. // mode for the platform. When this symbol is defined:
  1889. // - 32-bit xstat-style system calls are enabled
  1890. // - 32-bit xmknod-style system calls are enabled
  1891. // - 32-bit system calls use i386 sizes -and- alignments
  1892. //
  1893. // Note that this is NOT defined for the i386 native environment!
  1894. //
  1895. // __x86
  1896. // This is ONLY a synonym for defined(__i386) || defined(__amd64)
  1897. // which is useful only insofar as these two architectures share
  1898. // common attributes. Analogous to __sparc.
  1899. //
  1900. // _PSM_MODULES
  1901. // This indicates whether or not the implementation uses PSM
  1902. // modules for processor support, reading /etc/mach from inside
  1903. // the kernel to extract a list.
  1904. //
  1905. // _RTC_CONFIG
  1906. // This indicates whether or not the implementation uses /etc/rtc_config
  1907. // to configure the real-time clock in the kernel.
  1908. //
  1909. // _UNIX_KRTLD
  1910. // This indicates that the implementation uses a dynamically
  1911. // linked unix + krtld to form the core kernel image at boot
  1912. // time, or (in the absence of this symbol) a prelinked kernel image.
  1913. //
  1914. // _OBP
  1915. // This indicates the firmware interface is OBP.
  1916. //
  1917. // _SOFT_HOSTID
  1918. // This indicates that the implementation obtains the hostid
  1919. // from the file /etc/hostid, rather than from hardware.
  1920. // The following set of definitions characterize Solaris on AMD's
  1921. // 64-bit systems.
  1922. // Define the appropriate "processor characteristics"
  1923. // Different alignment constraints for the i386 ABI in compatibility mode
  1924. // Define the appropriate "implementation choices".
  1925. // The feature test macro __i386 is generic for all processors implementing
  1926. // the Intel 386 instruction set or a superset of it. Specifically, this
  1927. // includes all members of the 386, 486, and Pentium family of processors.
  1928. // Values of _POSIX_C_SOURCE
  1929. //
  1930. // undefined not a POSIX compilation
  1931. // 1 POSIX.1-1990 compilation
  1932. // 2 POSIX.2-1992 compilation
  1933. // 199309L POSIX.1b-1993 compilation (Real Time)
  1934. // 199506L POSIX.1c-1995 compilation (POSIX Threads)
  1935. // 200112L POSIX.1-2001 compilation (Austin Group Revision)
  1936. // 200809L POSIX.1-2008 compilation
  1937. // The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
  1938. // and _STDC_C99 are Sun implementation specific macros created in order to
  1939. // compress common standards specified feature test macros for easier reading.
  1940. // These macros should not be used by the application developer as
  1941. // unexpected results may occur. Instead, the user should reference
  1942. // standards(7) for correct usage of the standards feature test macros.
  1943. //
  1944. // __XOPEN_OR_POSIX Used in cases where a symbol is defined by both
  1945. // X/Open or POSIX or in the negative, when neither
  1946. // X/Open or POSIX defines a symbol.
  1947. //
  1948. // _STRICT_STDC __STDC__ is specified by the C Standards and defined
  1949. // by the compiler. For Sun compilers the value of
  1950. // __STDC__ is either 1, 0, or not defined based on the
  1951. // compilation mode (see cc(1)). When the value of
  1952. // __STDC__ is 1 and in the absence of any other feature
  1953. // test macros, the namespace available to the application
  1954. // is limited to only those symbols defined by the C
  1955. // Standard. _STRICT_STDC provides a more readable means
  1956. // of identifying symbols defined by the standard, or in
  1957. // the negative, symbols that are extensions to the C
  1958. // Standard. See additional comments for GNU C differences.
  1959. //
  1960. // _STDC_C99 __STDC_VERSION__ is specified by the C standards and
  1961. // defined by the compiler and indicates the version of
  1962. // the C standard. A value of 199901L indicates a
  1963. // compiler that complies with ISO/IEC 9899:1999, other-
  1964. // wise known as the C99 standard.
  1965. //
  1966. // _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__
  1967. // is 201112L indicating a compiler that compiles with
  1968. // ISO/IEC 9899:2011, otherwise known as the C11 standard.
  1969. //
  1970. // _STRICT_SYMBOLS Used in cases where symbol visibility is restricted
  1971. // by the standards, and the user has not explicitly
  1972. // relaxed the strictness via __EXTENSIONS__.
  1973. // ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
  1974. // 99899:2011 specify the following predefined macro name:
  1975. //
  1976. // __STDC__ The integer constant 1, intended to indicate a conforming
  1977. // implementation.
  1978. //
  1979. // Furthermore, a strictly conforming program shall use only those features
  1980. // of the language and library specified in these standards. A conforming
  1981. // implementation shall accept any strictly conforming program.
  1982. //
  1983. // Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
  1984. // strictly conforming environments and __STDC__ to 0 for environments that
  1985. // use ANSI C semantics but allow extensions to the C standard. For non-ANSI
  1986. // C semantics, Sun's C compiler does not define __STDC__.
  1987. //
  1988. // The GNU C project interpretation is that __STDC__ should always be defined
  1989. // to 1 for compilation modes that accept ANSI C syntax regardless of whether
  1990. // or not extensions to the C standard are used. Violations of conforming
  1991. // behavior are conditionally flagged as warnings via the use of the
  1992. // -pedantic option. In addition to defining __STDC__ to 1, the GNU C
  1993. // compiler also defines __STRICT_ANSI__ as a means of specifying strictly
  1994. // conforming environments using the -ansi or -std=<standard> options.
  1995. //
  1996. // In the absence of any other compiler options, Sun and GNU set the value
  1997. // of __STDC__ as follows when using the following options:
  1998. //
  1999. // Value of __STDC__ __STRICT_ANSI__
  2000. //
  2001. // cc -Xa (default) 0 undefined
  2002. // cc -Xt (transitional) 0 undefined
  2003. // cc -Xc (strictly conforming) 1 undefined
  2004. // cc -Xs (K&R C) undefined undefined
  2005. //
  2006. // gcc (default) 1 undefined
  2007. // gcc -ansi, -std={c89, c99,...) 1 defined
  2008. // gcc -traditional (K&R) undefined undefined
  2009. //
  2010. // The default compilation modes for Sun C compilers versus GNU C compilers
  2011. // results in a differing value for __STDC__ which results in a more
  2012. // restricted namespace when using Sun compilers. To allow both GNU and Sun
  2013. // interpretations to peacefully co-exist, we use the following Sun
  2014. // implementation _STRICT_STDC_ macro:
  2015. // Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
  2016. // Use strict symbol visibility.
  2017. // This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are
  2018. // governed by POSIX, but have not been governed by ISO C. One can go two ways
  2019. // on what should happen if an application actively includes (not transitively)
  2020. // a header that isn't part of the ISO C spec, we opt to say that if someone has
  2021. // gone out of there way then they're doing it for a reason and that is an act
  2022. // of non-compliance and therefore it's not up to us to hide away every symbol.
  2023. //
  2024. // In general, prefer using _STRICT_SYMBOLS, but this is here in particular for
  2025. // cases where in the past we have only used a POSIX related check and we don't
  2026. // wish to make something stricter. Often applications are relying on the
  2027. // ability to, or more realistically unwittingly, have _STRICT_STDC declared and
  2028. // still use these interfaces.
  2029. // Large file interfaces:
  2030. //
  2031. // _LARGEFILE_SOURCE
  2032. // 1 large file-related additions to POSIX
  2033. // interfaces requested (fseeko, etc.)
  2034. // _LARGEFILE64_SOURCE
  2035. // 1 transitional large-file-related interfaces
  2036. // requested (seek64, stat64, etc.)
  2037. //
  2038. // The corresponding announcement macros are respectively:
  2039. // _LFS_LARGEFILE
  2040. // _LFS64_LARGEFILE
  2041. // (These are set in <unistd.h>.)
  2042. //
  2043. // Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
  2044. // well.
  2045. //
  2046. // The large file interfaces are made visible regardless of the initial values
  2047. // of the feature test macros under certain circumstances:
  2048. // - If no explicit standards-conforming environment is requested (neither
  2049. // of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
  2050. // __STDC__ does not imply standards conformance).
  2051. // - Extended system interfaces are explicitly requested (__EXTENSIONS__
  2052. // is defined).
  2053. // - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
  2054. // defined). (Note that this dependency is an artifact of the current
  2055. // kernel implementation and may change in future releases.)
  2056. // Large file compilation environment control:
  2057. //
  2058. // The setting of _FILE_OFFSET_BITS controls the size of various file-related
  2059. // types and governs the mapping between file-related source function symbol
  2060. // names and the corresponding binary entry points.
  2061. //
  2062. // In the 32-bit environment, the default value is 32; if not set, set it to
  2063. // the default here, to simplify tests in other headers.
  2064. //
  2065. // In the 64-bit compilation environment, the only value allowed is 64.
  2066. // Use of _XOPEN_SOURCE
  2067. //
  2068. // The following X/Open specifications are supported:
  2069. //
  2070. // X/Open Portability Guide, Issue 3 (XPG3)
  2071. // X/Open CAE Specification, Issue 4 (XPG4)
  2072. // X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
  2073. // X/Open CAE Specification, Issue 5 (XPG5)
  2074. // Open Group Technical Standard, Issue 6 (XPG6), also referred to as
  2075. // IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
  2076. // Open Group Technical Standard, Issue 7 (XPG7), also referred to as
  2077. // IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
  2078. //
  2079. // XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
  2080. // XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
  2081. // Version 2 (SUSv2)
  2082. // XPG6 is the result of a merge of the X/Open and POSIX specifications
  2083. // and as such is also referred to as IEEE Std. 1003.1-2001 in
  2084. // addition to UNIX 03 and SUSv3.
  2085. // XPG7 is also referred to as UNIX 08 and SUSv4.
  2086. //
  2087. // When writing a conforming X/Open application, as per the specification
  2088. // requirements, the appropriate feature test macros must be defined at
  2089. // compile time. These are as follows. For more info, see standards(7).
  2090. //
  2091. // Feature Test Macro Specification
  2092. // ------------------------------------------------ -------------
  2093. // _XOPEN_SOURCE XPG3
  2094. // _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
  2095. // _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
  2096. // _XOPEN_SOURCE = 500 XPG5
  2097. // _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6
  2098. // _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7
  2099. //
  2100. // In order to simplify the guards within the headers, the following
  2101. // implementation private test macros have been created. Applications
  2102. // must NOT use these private test macros as unexpected results will
  2103. // occur.
  2104. //
  2105. // Note that in general, the use of these private macros is cumulative.
  2106. // For example, the use of _XPG3 with no other restrictions on the X/Open
  2107. // namespace will make the symbols visible for XPG3 through XPG6
  2108. // compilation environments. The use of _XPG4_2 with no other X/Open
  2109. // namespace restrictions indicates that the symbols were introduced in
  2110. // XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
  2111. // environments, but not for XPG3 or XPG4 compilation environments.
  2112. //
  2113. // _XPG3 X/Open Portability Guide, Issue 3 (XPG3)
  2114. // _XPG4 X/Open CAE Specification, Issue 4 (XPG4)
  2115. // _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
  2116. // _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
  2117. // _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
  2118. // _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
  2119. // X/Open Portability Guide, Issue 3
  2120. // _XOPEN_VERSION is defined by the X/Open specifications and is not
  2121. // normally defined by the application, except in the case of an XPG4
  2122. // application. On the implementation side, _XOPEN_VERSION defined with
  2123. // the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
  2124. // with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
  2125. // _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
  2126. // application and with a value of 600 indicates an XPG6 (UNIX 03)
  2127. // application and with a value of 700 indicates an XPG7 (UNIX 08).
  2128. // The appropriate version is determined by the use of the
  2129. // feature test macros described earlier. The value of _XOPEN_VERSION
  2130. // defaults to 3 otherwise indicating support for XPG3 applications.
  2131. // ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
  2132. // conforming environments. ISO 9899:1999 says it does.
  2133. //
  2134. // The presence of _LONGLONG_TYPE says "long long exists" which is therefore
  2135. // defined in all but strictly conforming environments that disallow it.
  2136. // The following macro defines a value for the ISO C99 restrict
  2137. // keyword so that _RESTRICT_KYWD resolves to "restrict" if
  2138. // an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
  2139. // if any other compiler is used. This allows for the use of single
  2140. // prototype declarations regardless of compiler version.
  2141. // The following macro defines a value for the ISO C11 _Noreturn
  2142. // keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
  2143. // an ISO C11 compiler is used and "" (null string) if any other
  2144. // compiler is used. This allows for the use of single prototype
  2145. // declarations regardless of compiler version.
  2146. // ISO/IEC 9899:2011 Annex K
  2147. // The following macro indicates header support for the ANSI C++
  2148. // standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882.
  2149. // The following macro indicates header support for the C99 standard,
  2150. // ISO/IEC 9899:1999, Programming Languages - C.
  2151. // The following macro indicates header support for the C11 standard,
  2152. // ISO/IEC 9899:2011, Programming Languages - C.
  2153. // The following macro indicates header support for the C11 standard,
  2154. // ISO/IEC 9899:2011 Annex K, Programming Languages - C.
  2155. // The following macro indicates header support for DTrace. The value is an
  2156. // integer that corresponds to the major version number for DTrace.
  2157. // CDDL HEADER START
  2158. //
  2159. // The contents of this file are subject to the terms of the
  2160. // Common Development and Distribution License (the "License").
  2161. // You may not use this file except in compliance with the License.
  2162. //
  2163. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2164. // or http://www.opensolaris.org/os/licensing.
  2165. // See the License for the specific language governing permissions
  2166. // and limitations under the License.
  2167. //
  2168. //
  2169. // When distributing Covered Code, include this CDDL HEADER in each
  2170. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2171. // If applicable, add the following below this CDDL HEADER, with the
  2172. // fields enclosed by brackets "[]" replaced with your own identifying
  2173. // information: Portions Copyright [yyyy] [name of copyright owner]
  2174. //
  2175. // CDDL HEADER END
  2176. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  2177. // Use is subject to license terms.
  2178. // Copyright 2016 Joyent, Inc.
  2179. // Machine dependent definitions moved to <sys/machtypes.h>.
  2180. // CDDL HEADER START
  2181. //
  2182. // The contents of this file are subject to the terms of the
  2183. // Common Development and Distribution License (the "License").
  2184. // You may not use this file except in compliance with the License.
  2185. //
  2186. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2187. // or http://www.opensolaris.org/os/licensing.
  2188. // See the License for the specific language governing permissions
  2189. // and limitations under the License.
  2190. //
  2191. // When distributing Covered Code, include this CDDL HEADER in each
  2192. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2193. // If applicable, add the following below this CDDL HEADER, with the
  2194. // fields enclosed by brackets "[]" replaced with your own identifying
  2195. // information: Portions Copyright [yyyy] [name of copyright owner]
  2196. //
  2197. // CDDL HEADER END
  2198. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  2199. // Use is subject to license terms.
  2200. // Machine dependent types:
  2201. //
  2202. // intel ia32 Version
  2203. type Label_t = X_label_t /* machtypes.h:59:54 */
  2204. type Lock_t = uint8 /* machtypes.h:63:23 */ // lock work for busy wait
  2205. // Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
  2206. // committee's working draft for the revision of the current ISO C standard,
  2207. // ISO/IEC 9899:1990 Programming language - C. These are not currently
  2208. // required by any standard but constitute a useful, general purpose set
  2209. // of type definitions which is namespace clean with respect to all standards.
  2210. // CDDL HEADER START
  2211. //
  2212. // The contents of this file are subject to the terms of the
  2213. // Common Development and Distribution License, Version 1.0 only
  2214. // (the "License"). You may not use this file except in compliance
  2215. // with the License.
  2216. //
  2217. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2218. // or http://www.opensolaris.org/os/licensing.
  2219. // See the License for the specific language governing permissions
  2220. // and limitations under the License.
  2221. //
  2222. // When distributing Covered Code, include this CDDL HEADER in each
  2223. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2224. // If applicable, add the following below this CDDL HEADER, with the
  2225. // fields enclosed by brackets "[]" replaced with your own identifying
  2226. // information: Portions Copyright [yyyy] [name of copyright owner]
  2227. //
  2228. // CDDL HEADER END
  2229. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2230. //
  2231. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  2232. // Use is subject to license terms.
  2233. // This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
  2234. // of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
  2235. // Programming language - C.
  2236. //
  2237. // Programs/Modules should not directly include this file. Access to the
  2238. // types defined in this file should be through the inclusion of one of the
  2239. // following files:
  2240. //
  2241. // <sys/types.h> Provides only the "_t" types defined in this
  2242. // file which is a subset of the contents of
  2243. // <inttypes.h>. (This can be appropriate for
  2244. // all programs/modules except those claiming
  2245. // ANSI-C conformance.)
  2246. //
  2247. // <sys/inttypes.h> Provides the Kernel and Driver appropriate
  2248. // components of <inttypes.h>.
  2249. //
  2250. // <inttypes.h> For use by applications.
  2251. //
  2252. // See these files for more details.
  2253. // DO NOT EDIT THIS FILE.
  2254. //
  2255. // It has been auto-edited by fixincludes from:
  2256. //
  2257. // "/usr/include/sys/feature_tests.h"
  2258. //
  2259. // This had to be done to correct non-standard usages in the
  2260. // original, manufacturer supplied header file.
  2261. // CDDL HEADER START
  2262. //
  2263. // The contents of this file are subject to the terms of the
  2264. // Common Development and Distribution License (the "License").
  2265. // You may not use this file except in compliance with the License.
  2266. //
  2267. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2268. // or http://www.opensolaris.org/os/licensing.
  2269. // See the License for the specific language governing permissions
  2270. // and limitations under the License.
  2271. //
  2272. // When distributing Covered Code, include this CDDL HEADER in each
  2273. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2274. // If applicable, add the following below this CDDL HEADER, with the
  2275. // fields enclosed by brackets "[]" replaced with your own identifying
  2276. // information: Portions Copyright [yyyy] [name of copyright owner]
  2277. //
  2278. // CDDL HEADER END
  2279. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2280. // Copyright 2016 Joyent, Inc.
  2281. // Copyright 2022 Oxide Computer Company
  2282. //
  2283. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2284. // Use is subject to license terms.
  2285. // Basic / Extended integer types
  2286. //
  2287. // The following defines the basic fixed-size integer types.
  2288. //
  2289. // Implementations are free to typedef them to Standard C integer types or
  2290. // extensions that they support. If an implementation does not support one
  2291. // of the particular integer data types below, then it should not define the
  2292. // typedefs and macros corresponding to that data type. Note that int8_t
  2293. // is not defined in -Xs mode on ISAs for which the ABI specifies "char"
  2294. // as an unsigned entity because there is no way to define an eight bit
  2295. // signed integral.
  2296. type Int8_t = int8 /* int_types.h:75:16 */
  2297. type Int16_t = int16 /* int_types.h:79:17 */
  2298. type Int32_t = int32 /* int_types.h:80:15 */
  2299. type Int64_t = int64 /* int_types.h:83:16 */
  2300. type Uint8_t = uint8 /* int_types.h:91:24 */
  2301. type Uint16_t = uint16 /* int_types.h:92:25 */
  2302. type Uint32_t = uint32 /* int_types.h:93:23 */
  2303. type Uint64_t = uint64 /* int_types.h:95:24 */
  2304. // intmax_t and uintmax_t are to be the longest (in number of bits) signed
  2305. // and unsigned integer types supported by the implementation.
  2306. type Intmax_t = int64 /* int_types.h:107:19 */
  2307. type Uintmax_t = uint64 /* int_types.h:108:19 */
  2308. // intptr_t and uintptr_t are signed and unsigned integer types large enough
  2309. // to hold any data pointer; that is, data pointers can be assigned into or
  2310. // from these integer types without losing precision.
  2311. type Intptr_t = int64 /* int_types.h:120:16 */
  2312. type Uintptr_t = uint64 /* int_types.h:121:24 */
  2313. // The following define the fastest integer types that can hold the
  2314. // specified number of bits.
  2315. type Int_fast8_t = int8 /* int_types.h:132:16 */
  2316. type Int_fast16_t = int32 /* int_types.h:136:15 */
  2317. type Int_fast32_t = int32 /* int_types.h:137:15 */
  2318. type Int_fast64_t = int64 /* int_types.h:139:16 */
  2319. type Uint_fast8_t = uint8 /* int_types.h:146:24 */
  2320. type Uint_fast16_t = uint32 /* int_types.h:147:23 */
  2321. type Uint_fast32_t = uint32 /* int_types.h:148:23 */
  2322. type Uint_fast64_t = uint64 /* int_types.h:150:24 */
  2323. // The following define the smallest integer types that can hold the
  2324. // specified number of bits.
  2325. type Int_least8_t = int8 /* int_types.h:162:16 */
  2326. type Int_least16_t = int16 /* int_types.h:166:17 */
  2327. type Int_least32_t = int32 /* int_types.h:167:15 */
  2328. type Int_least64_t = int64 /* int_types.h:169:16 */
  2329. // If these are changed, please update char16_t and char32_t in head/uchar.h.
  2330. type Uint_least8_t = uint8 /* int_types.h:179:24 */
  2331. type Uint_least16_t = uint16 /* int_types.h:180:25 */
  2332. type Uint_least32_t = uint32 /* int_types.h:181:23 */
  2333. type Uint_least64_t = uint64 /* int_types.h:183:24 */
  2334. // Strictly conforming ANSI C environments prior to the 1999
  2335. // revision of the C Standard (ISO/IEC 9899:1999) do not have
  2336. // the long long data type.
  2337. type Longlong_t = int64 /* types.h:72:20 */
  2338. type U_longlong_t = uint64 /* types.h:73:28 */
  2339. // These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
  2340. // to use them instead of int32_t and uint32_t because DEC had
  2341. // shipped 64-bit wide.
  2342. type T_scalar_t = int32 /* types.h:92:18 */
  2343. type T_uscalar_t = uint32 /* types.h:93:18 */
  2344. // POSIX Extensions
  2345. type Uchar_t = uint8 /* types.h:102:23 */
  2346. type Ushort_t = uint16 /* types.h:103:24 */
  2347. type Uint_t = uint32 /* types.h:104:22 */
  2348. type Ulong_t = uint64 /* types.h:105:23 */
  2349. type Caddr_t = uintptr /* types.h:107:15 */ // ?<core address> type
  2350. type Daddr_t = int64 /* types.h:108:15 */ // <disk address> type
  2351. type Cnt_t = int16 /* types.h:109:16 */ // pointer difference
  2352. // VM-related types
  2353. type Pfn_t = uint64 /* types.h:123:18 */ // page frame number
  2354. type Pgcnt_t = uint64 /* types.h:124:18 */ // number of pages
  2355. type Spgcnt_t = int64 /* types.h:125:15 */ // signed number of pages
  2356. type Use_t = uint8 /* types.h:127:18 */ // use count for swap.
  2357. type Sysid_t = int16 /* types.h:128:16 */
  2358. type Index_t = int16 /* types.h:129:16 */
  2359. type Timeout_id_t = uintptr /* types.h:130:15 */ // opaque handle from timeout(9F)
  2360. type Bufcall_id_t = uintptr /* types.h:131:15 */ // opaque handle from bufcall(9F)
  2361. // The size of off_t and related types depends on the setting of
  2362. // _FILE_OFFSET_BITS. (Note that other system headers define other types
  2363. // related to those defined here.)
  2364. //
  2365. // If _LARGEFILE64_SOURCE is defined, variants of these types that are
  2366. // explicitly 64 bits wide become available.
  2367. type Off_t = int64 /* types.h:145:15 */ // offsets within files
  2368. type Off64_t = int64 /* types.h:152:16 */ // offsets within files
  2369. type Ino_t = uint64 /* types.h:161:18 */ // expanded inode type
  2370. type Blkcnt_t = int64 /* types.h:162:15 */ // count of file blocks
  2371. type Fsblkcnt_t = uint64 /* types.h:163:18 */ // count of file system blocks
  2372. type Fsfilcnt_t = uint64 /* types.h:164:18 */ // count of files
  2373. type Ino64_t = uint64 /* types.h:174:16 */ // expanded inode type
  2374. type Blkcnt64_t = int64 /* types.h:175:18 */ // count of file blocks
  2375. type Fsblkcnt64_t = uint64 /* types.h:176:20 */ // count of file system blocks
  2376. type Fsfilcnt64_t = uint64 /* types.h:177:20 */ // count of files
  2377. type Blksize_t = int32 /* types.h:187:14 */ // used for block sizes
  2378. // The boolean_t type has had a varied amount of exposure over the years in
  2379. // terms of how its enumeration constants have been exposed. In particular, it
  2380. // originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the
  2381. // B_TRUE and B_FALSE with an underscore. This check never included the
  2382. // question of if we were in a strict ANSI C environment or whether extensions
  2383. // were defined.
  2384. //
  2385. // Compilers such as clang started defaulting to always including an
  2386. // XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__.
  2387. // This would lead most software that had used the non-underscore versions to
  2388. // need it. As such, we have adjusted the non-strict XOPEN environment to retain
  2389. // its old behavior so as to minimize namespace pollution; however, we instead
  2390. // include both variants of the definitions in the generally visible version
  2391. // allowing software written in either world to hopefully end up in a good
  2392. // place.
  2393. //
  2394. // This isn't perfect, but should hopefully minimize the pain for folks actually
  2395. // trying to build software.
  2396. type Boolean_t = uint32 /* types.h:215:69 */
  2397. // The {u,}pad64_t types can be used in structures such that those structures
  2398. // may be accessed by code produced by compilation environments which don't
  2399. // support a 64 bit integral datatype. The intention is not to allow
  2400. // use of these fields in such environments, but to maintain the alignment
  2401. // and offsets of the structure.
  2402. //
  2403. // Similar comments for {u,}pad128_t.
  2404. //
  2405. // Note that these types do NOT generate any stronger alignment constraints
  2406. // than those available in the underlying ABI. See <sys/isa_defs.h>
  2407. type Pad64_t = int64 /* types.h:240:18 */
  2408. type Upad64_t = uint64 /* types.h:241:18 */
  2409. type Pad128_t = struct {
  2410. F_q float64
  2411. F__ccgo_pad1 [8]byte
  2412. } /* types.h:257:3 */
  2413. type Upad128_t = struct {
  2414. F_q float64
  2415. F__ccgo_pad1 [8]byte
  2416. } /* types.h:262:3 */
  2417. type Offset_t = int64 /* types.h:264:20 */
  2418. type U_offset_t = uint64 /* types.h:265:22 */
  2419. type Len_t = uint64 /* types.h:266:22 */
  2420. type Diskaddr_t = uint64 /* types.h:267:22 */
  2421. // Definitions remaining from previous partial support for 64-bit file
  2422. // offsets. This partial support for devices greater than 2gb requires
  2423. // compiler support for long long.
  2424. type Lloff_t = struct{ F_f int64 } /* types.h:284:3 */
  2425. type Lldaddr_t = struct{ F_f int64 } /* types.h:304:3 */
  2426. type K_fltset_t = uint32 /* types.h:317:16 */ // kernel fault set type
  2427. // The following type is for various kinds of identifiers. The
  2428. // actual type must be the same for all since some system calls
  2429. // (such as sigsend) take arguments that may be any of these
  2430. // types. The enumeration type idtype_t defined in sys/procset.h
  2431. // is used to indicate what type of id is being specified --
  2432. // a process id, process group id, session id, scheduling class id,
  2433. // user id, group id, project id, task id or zone id.
  2434. type Id_t = int32 /* types.h:329:14 */
  2435. type Lgrp_id_t = int32 /* types.h:334:15 */ // lgroup ID
  2436. // Type useconds_t is an unsigned integral type capable of storing
  2437. // values at least in the range of zero to 1,000,000.
  2438. type Useconds_t = uint32 /* types.h:340:17 */ // Time, in microseconds
  2439. type Suseconds_t = int64 /* types.h:344:14 */ // signed # of microseconds
  2440. // Typedefs for dev_t components.
  2441. type Major_t = uint32 /* types.h:351:16 */ // major part of device number
  2442. type Minor_t = uint32 /* types.h:352:16 */ // minor part of device number
  2443. // The data type of a thread priority.
  2444. type Pri_t = int16 /* types.h:361:15 */
  2445. // The data type for a CPU flags field. (Can be extended to larger unsigned
  2446. // types, if needed, limited by ability to update atomically.)
  2447. type Cpu_flag_t = uint16 /* types.h:367:18 */
  2448. // For compatibility reasons the following typedefs (prefixed o_)
  2449. // can't grow regardless of the EFT definition. Although,
  2450. // applications should not explicitly use these typedefs
  2451. // they may be included via a system header definition.
  2452. // WARNING: These typedefs may be removed in a future
  2453. // release.
  2454. //
  2455. // ex. the definitions in s5inode.h (now obsoleted)
  2456. // remained small to preserve compatibility
  2457. // in the S5 file system type.
  2458. type O_mode_t = uint16 /* types.h:380:18 */ // old file attribute type
  2459. type O_dev_t = int16 /* types.h:381:15 */ // old device type
  2460. type O_uid_t = uint16 /* types.h:382:18 */ // old UID type
  2461. type O_gid_t = uint16 /* types.h:383:17 */ // old GID type
  2462. type O_nlink_t = int16 /* types.h:384:15 */ // old file link type
  2463. type O_pid_t = int16 /* types.h:385:15 */ // old process id type
  2464. type O_ino_t = uint16 /* types.h:386:18 */ // old inode type
  2465. // POSIX and XOPEN Declarations
  2466. type Key_t = int32 /* types.h:392:13 */ // IPC key type
  2467. type Mode_t = uint32 /* types.h:394:16 */ // file attribute type
  2468. type Uid_t = uint32 /* types.h:401:22 */ // UID type
  2469. type Gid_t = uint32 /* types.h:404:15 */ // GID type
  2470. type Datalink_id_t = uint32 /* types.h:406:18 */
  2471. type Vrid_t = uint32 /* types.h:407:18 */
  2472. type Taskid_t = int32 /* types.h:409:17 */
  2473. type Projid_t = int32 /* types.h:410:17 */
  2474. type Poolid_t = int32 /* types.h:411:14 */
  2475. type Zoneid_t = int32 /* types.h:412:14 */
  2476. type Ctid_t = int32 /* types.h:413:14 */
  2477. // POSIX definitions are same as defined in thread.h and synch.h.
  2478. // Any changes made to here should be reflected in corresponding
  2479. // files as described in comments.
  2480. type Pthread_t = uint32 /* types.h:420:16 */ // = thread_t in thread.h
  2481. type Pthread_key_t = uint32 /* types.h:421:16 */ // = thread_key_t in thread.h
  2482. // "Magic numbers" tagging synchronization object types
  2483. type X_pthread_mutex = struct {
  2484. F__pthread_mutex_flags struct {
  2485. F__pthread_mutex_flag1 uint16
  2486. F__pthread_mutex_flag2 uint8
  2487. F__pthread_mutex_ceiling uint8
  2488. F__pthread_mutex_type uint16
  2489. F__pthread_mutex_magic uint16
  2490. }
  2491. F__pthread_mutex_lock struct {
  2492. F__ccgo_pad1 [0]uint64
  2493. F__pthread_mutex_lock64 struct{ F__pthread_mutex_pad [8]uint8 }
  2494. }
  2495. F__pthread_mutex_data uint64
  2496. } /* types.h:429:9 */
  2497. // = thread_key_t in thread.h
  2498. // "Magic numbers" tagging synchronization object types
  2499. type Pthread_mutex_t = X_pthread_mutex /* types.h:448:3 */
  2500. type X_pthread_cond = struct {
  2501. F__pthread_cond_flags struct {
  2502. F__pthread_cond_flag [4]uint8
  2503. F__pthread_cond_type uint16
  2504. F__pthread_cond_magic uint16
  2505. }
  2506. F__pthread_cond_data uint64
  2507. } /* types.h:450:9 */
  2508. type Pthread_cond_t = X_pthread_cond /* types.h:457:3 */
  2509. // UNIX 98 Extension
  2510. type X_pthread_rwlock = struct {
  2511. F__pthread_rwlock_readers int32
  2512. F__pthread_rwlock_type uint16
  2513. F__pthread_rwlock_magic uint16
  2514. F__pthread_rwlock_mutex Pthread_mutex_t
  2515. F__pthread_rwlock_readercv Pthread_cond_t
  2516. F__pthread_rwlock_writercv Pthread_cond_t
  2517. } /* types.h:462:9 */
  2518. // UNIX 98 Extension
  2519. type Pthread_rwlock_t = X_pthread_rwlock /* types.h:469:3 */
  2520. // SUSV3
  2521. type Pthread_barrier_t = struct {
  2522. F__pthread_barrier_count uint32
  2523. F__pthread_barrier_current uint32
  2524. F__pthread_barrier_cycle uint64
  2525. F__pthread_barrier_reserved uint64
  2526. F__pthread_barrier_lock Pthread_mutex_t
  2527. F__pthread_barrier_cond Pthread_cond_t
  2528. } /* types.h:481:3 */
  2529. type Pthread_spinlock_t = Pthread_mutex_t /* types.h:483:25 */
  2530. // attributes for threads, dynamically allocated by library
  2531. type X_pthread_attr = struct{ F__pthread_attrp uintptr } /* types.h:488:9 */
  2532. // attributes for threads, dynamically allocated by library
  2533. type Pthread_attr_t = X_pthread_attr /* types.h:490:3 */
  2534. // attributes for mutex, dynamically allocated by library
  2535. type X_pthread_mutexattr = struct{ F__pthread_mutexattrp uintptr } /* types.h:495:9 */
  2536. // attributes for mutex, dynamically allocated by library
  2537. type Pthread_mutexattr_t = X_pthread_mutexattr /* types.h:497:3 */
  2538. // attributes for cond, dynamically allocated by library
  2539. type X_pthread_condattr = struct{ F__pthread_condattrp uintptr } /* types.h:502:9 */
  2540. // attributes for cond, dynamically allocated by library
  2541. type Pthread_condattr_t = X_pthread_condattr /* types.h:504:3 */
  2542. // pthread_once
  2543. type X_once = struct{ F__pthread_once_pad [4]uint64 } /* types.h:509:9 */
  2544. // pthread_once
  2545. type Pthread_once_t = X_once /* types.h:511:3 */
  2546. // UNIX 98 Extensions
  2547. // attributes for rwlock, dynamically allocated by library
  2548. type X_pthread_rwlockattr = struct{ F__pthread_rwlockattrp uintptr } /* types.h:517:9 */
  2549. // UNIX 98 Extensions
  2550. // attributes for rwlock, dynamically allocated by library
  2551. type Pthread_rwlockattr_t = X_pthread_rwlockattr /* types.h:519:3 */
  2552. // SUSV3
  2553. // attributes for pthread_barrier_t, dynamically allocated by library
  2554. type Pthread_barrierattr_t = struct{ F__pthread_barrierattrp uintptr } /* types.h:527:3 */
  2555. type Dev_t = uint64 /* types.h:529:17 */ // expanded device type
  2556. type Nlink_t = uint32 /* types.h:532:16 */ // file link type
  2557. type Pid_t = int32 /* types.h:533:13 */ // size of something in bytes
  2558. type Ssize_t = int64 /* types.h:551:14 */ // size of something in bytes or -1
  2559. type Time_t = int64 /* types.h:559:15 */ // time of day in seconds
  2560. type Clock_t = int64 /* types.h:564:15 */ // relative time in a specified resolution
  2561. type Clockid_t = int32 /* types.h:569:13 */ // clock identifier type
  2562. type Timer_t = int32 /* types.h:574:13 */ // timer identifier type
  2563. // BEGIN CSTYLED
  2564. type Unchar = uint8 /* types.h:580:23 */
  2565. type Ushort = uint16 /* types.h:581:24 */
  2566. type Uint = uint32 /* types.h:582:22 */
  2567. type Ulong = uint64 /* types.h:583:23 */
  2568. // END CSTYLED
  2569. // The following is the value of type id_t to use to indicate the
  2570. // caller's current id. See procset.h for the type idtype_t
  2571. // which defines which kind of id is being specified.
  2572. // The following value of type pfn_t is used to indicate
  2573. // invalid page frame number.
  2574. // BEGIN CSTYLED
  2575. type U_char = uint8 /* types.h:650:23 */
  2576. type U_short = uint16 /* types.h:651:24 */
  2577. type U_int = uint32 /* types.h:652:22 */
  2578. type U_long = uint64 /* types.h:653:23 */
  2579. type X_quad = struct{ Fval [2]int32 } /* types.h:654:9 */
  2580. type Quad_t = X_quad /* types.h:654:38 */ // used by UFS
  2581. type Quad = Quad_t /* types.h:655:17 */ // used by UFS
  2582. // END CSTYLED
  2583. // Nested include for BSD/sockets source compatibility.
  2584. // (The select macros used to be defined here).
  2585. // CDDL HEADER START
  2586. //
  2587. // The contents of this file are subject to the terms of the
  2588. // Common Development and Distribution License (the "License").
  2589. // You may not use this file except in compliance with the License.
  2590. //
  2591. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2592. // or http://www.opensolaris.org/os/licensing.
  2593. // See the License for the specific language governing permissions
  2594. // and limitations under the License.
  2595. //
  2596. // When distributing Covered Code, include this CDDL HEADER in each
  2597. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2598. // If applicable, add the following below this CDDL HEADER, with the
  2599. // fields enclosed by brackets "[]" replaced with your own identifying
  2600. // information: Portions Copyright [yyyy] [name of copyright owner]
  2601. //
  2602. // CDDL HEADER END
  2603. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2604. //
  2605. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2606. //
  2607. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  2608. // Use is subject to license terms.
  2609. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2610. // All Rights Reserved
  2611. // University Copyright- Copyright (c) 1982, 1986, 1988
  2612. // The Regents of the University of California
  2613. // All Rights Reserved
  2614. //
  2615. // University Acknowledgment- Portions of this document are derived from
  2616. // software developed by the University of California, Berkeley, and its
  2617. // contributors.
  2618. // DO NOT EDIT THIS FILE.
  2619. //
  2620. // It has been auto-edited by fixincludes from:
  2621. //
  2622. // "/usr/include/sys/feature_tests.h"
  2623. //
  2624. // This had to be done to correct non-standard usages in the
  2625. // original, manufacturer supplied header file.
  2626. // CDDL HEADER START
  2627. //
  2628. // The contents of this file are subject to the terms of the
  2629. // Common Development and Distribution License (the "License").
  2630. // You may not use this file except in compliance with the License.
  2631. //
  2632. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2633. // or http://www.opensolaris.org/os/licensing.
  2634. // See the License for the specific language governing permissions
  2635. // and limitations under the License.
  2636. //
  2637. // When distributing Covered Code, include this CDDL HEADER in each
  2638. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2639. // If applicable, add the following below this CDDL HEADER, with the
  2640. // fields enclosed by brackets "[]" replaced with your own identifying
  2641. // information: Portions Copyright [yyyy] [name of copyright owner]
  2642. //
  2643. // CDDL HEADER END
  2644. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2645. // Copyright 2016 Joyent, Inc.
  2646. // Copyright 2022 Oxide Computer Company
  2647. //
  2648. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2649. // Use is subject to license terms.
  2650. // CDDL HEADER START
  2651. //
  2652. // The contents of this file are subject to the terms of the
  2653. // Common Development and Distribution License, Version 1.0 only
  2654. // (the "License"). You may not use this file except in compliance
  2655. // with the License.
  2656. //
  2657. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2658. // or http://www.opensolaris.org/os/licensing.
  2659. // See the License for the specific language governing permissions
  2660. // and limitations under the License.
  2661. //
  2662. // When distributing Covered Code, include this CDDL HEADER in each
  2663. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2664. // If applicable, add the following below this CDDL HEADER, with the
  2665. // fields enclosed by brackets "[]" replaced with your own identifying
  2666. // information: Portions Copyright [yyyy] [name of copyright owner]
  2667. //
  2668. // CDDL HEADER END
  2669. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  2670. // Use is subject to license terms.
  2671. // Implementation-private. This header should not be included
  2672. // directly by an application. The application should instead
  2673. // include <time.h> which includes this header conditionally
  2674. // depending on which feature test macros are defined. By default,
  2675. // this header is included by <time.h>. X/Open and POSIX
  2676. // standards requirements result in this header being included
  2677. // by <time.h> only under a restricted set of conditions.
  2678. // DO NOT EDIT THIS FILE.
  2679. //
  2680. // It has been auto-edited by fixincludes from:
  2681. //
  2682. // "/usr/include/sys/feature_tests.h"
  2683. //
  2684. // This had to be done to correct non-standard usages in the
  2685. // original, manufacturer supplied header file.
  2686. // CDDL HEADER START
  2687. //
  2688. // The contents of this file are subject to the terms of the
  2689. // Common Development and Distribution License (the "License").
  2690. // You may not use this file except in compliance with the License.
  2691. //
  2692. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2693. // or http://www.opensolaris.org/os/licensing.
  2694. // See the License for the specific language governing permissions
  2695. // and limitations under the License.
  2696. //
  2697. // When distributing Covered Code, include this CDDL HEADER in each
  2698. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2699. // If applicable, add the following below this CDDL HEADER, with the
  2700. // fields enclosed by brackets "[]" replaced with your own identifying
  2701. // information: Portions Copyright [yyyy] [name of copyright owner]
  2702. //
  2703. // CDDL HEADER END
  2704. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2705. // Copyright 2016 Joyent, Inc.
  2706. // Copyright 2022 Oxide Computer Company
  2707. //
  2708. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2709. // Use is subject to license terms.
  2710. // Time expressed in seconds and nanoseconds
  2711. type Timespec = struct {
  2712. Ftv_sec int64
  2713. Ftv_nsec int64
  2714. } /* time_impl.h:57:9 */
  2715. // used by UFS
  2716. // END CSTYLED
  2717. // Nested include for BSD/sockets source compatibility.
  2718. // (The select macros used to be defined here).
  2719. // CDDL HEADER START
  2720. //
  2721. // The contents of this file are subject to the terms of the
  2722. // Common Development and Distribution License (the "License").
  2723. // You may not use this file except in compliance with the License.
  2724. //
  2725. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2726. // or http://www.opensolaris.org/os/licensing.
  2727. // See the License for the specific language governing permissions
  2728. // and limitations under the License.
  2729. //
  2730. // When distributing Covered Code, include this CDDL HEADER in each
  2731. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2732. // If applicable, add the following below this CDDL HEADER, with the
  2733. // fields enclosed by brackets "[]" replaced with your own identifying
  2734. // information: Portions Copyright [yyyy] [name of copyright owner]
  2735. //
  2736. // CDDL HEADER END
  2737. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2738. //
  2739. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2740. //
  2741. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  2742. // Use is subject to license terms.
  2743. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2744. // All Rights Reserved
  2745. // University Copyright- Copyright (c) 1982, 1986, 1988
  2746. // The Regents of the University of California
  2747. // All Rights Reserved
  2748. //
  2749. // University Acknowledgment- Portions of this document are derived from
  2750. // software developed by the University of California, Berkeley, and its
  2751. // contributors.
  2752. // DO NOT EDIT THIS FILE.
  2753. //
  2754. // It has been auto-edited by fixincludes from:
  2755. //
  2756. // "/usr/include/sys/feature_tests.h"
  2757. //
  2758. // This had to be done to correct non-standard usages in the
  2759. // original, manufacturer supplied header file.
  2760. // CDDL HEADER START
  2761. //
  2762. // The contents of this file are subject to the terms of the
  2763. // Common Development and Distribution License (the "License").
  2764. // You may not use this file except in compliance with the License.
  2765. //
  2766. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2767. // or http://www.opensolaris.org/os/licensing.
  2768. // See the License for the specific language governing permissions
  2769. // and limitations under the License.
  2770. //
  2771. // When distributing Covered Code, include this CDDL HEADER in each
  2772. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2773. // If applicable, add the following below this CDDL HEADER, with the
  2774. // fields enclosed by brackets "[]" replaced with your own identifying
  2775. // information: Portions Copyright [yyyy] [name of copyright owner]
  2776. //
  2777. // CDDL HEADER END
  2778. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2779. // Copyright 2016 Joyent, Inc.
  2780. // Copyright 2022 Oxide Computer Company
  2781. //
  2782. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2783. // Use is subject to license terms.
  2784. // CDDL HEADER START
  2785. //
  2786. // The contents of this file are subject to the terms of the
  2787. // Common Development and Distribution License, Version 1.0 only
  2788. // (the "License"). You may not use this file except in compliance
  2789. // with the License.
  2790. //
  2791. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2792. // or http://www.opensolaris.org/os/licensing.
  2793. // See the License for the specific language governing permissions
  2794. // and limitations under the License.
  2795. //
  2796. // When distributing Covered Code, include this CDDL HEADER in each
  2797. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2798. // If applicable, add the following below this CDDL HEADER, with the
  2799. // fields enclosed by brackets "[]" replaced with your own identifying
  2800. // information: Portions Copyright [yyyy] [name of copyright owner]
  2801. //
  2802. // CDDL HEADER END
  2803. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  2804. // Use is subject to license terms.
  2805. // Implementation-private. This header should not be included
  2806. // directly by an application. The application should instead
  2807. // include <time.h> which includes this header conditionally
  2808. // depending on which feature test macros are defined. By default,
  2809. // this header is included by <time.h>. X/Open and POSIX
  2810. // standards requirements result in this header being included
  2811. // by <time.h> only under a restricted set of conditions.
  2812. // DO NOT EDIT THIS FILE.
  2813. //
  2814. // It has been auto-edited by fixincludes from:
  2815. //
  2816. // "/usr/include/sys/feature_tests.h"
  2817. //
  2818. // This had to be done to correct non-standard usages in the
  2819. // original, manufacturer supplied header file.
  2820. // CDDL HEADER START
  2821. //
  2822. // The contents of this file are subject to the terms of the
  2823. // Common Development and Distribution License (the "License").
  2824. // You may not use this file except in compliance with the License.
  2825. //
  2826. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2827. // or http://www.opensolaris.org/os/licensing.
  2828. // See the License for the specific language governing permissions
  2829. // and limitations under the License.
  2830. //
  2831. // When distributing Covered Code, include this CDDL HEADER in each
  2832. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2833. // If applicable, add the following below this CDDL HEADER, with the
  2834. // fields enclosed by brackets "[]" replaced with your own identifying
  2835. // information: Portions Copyright [yyyy] [name of copyright owner]
  2836. //
  2837. // CDDL HEADER END
  2838. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2839. // Copyright 2016 Joyent, Inc.
  2840. // Copyright 2022 Oxide Computer Company
  2841. //
  2842. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2843. // Use is subject to license terms.
  2844. // Time expressed in seconds and nanoseconds
  2845. type Timespec_t = Timespec /* time_impl.h:60:3 */
  2846. type Timestruc_t = Timespec /* time_impl.h:81:25 */ // definition per SVr4
  2847. // The following has been left in for backward compatibility. Portable
  2848. // applications should not use the structure name timestruc.
  2849. // Timer specification
  2850. type Itimerspec = struct {
  2851. Fit_interval struct {
  2852. Ftv_sec int64
  2853. Ftv_nsec int64
  2854. }
  2855. Fit_value struct {
  2856. Ftv_sec int64
  2857. Ftv_nsec int64
  2858. }
  2859. } /* time_impl.h:95:9 */
  2860. // definition per SVr4
  2861. // The following has been left in for backward compatibility. Portable
  2862. // applications should not use the structure name timestruc.
  2863. // Timer specification
  2864. type Itimerspec_t = Itimerspec /* time_impl.h:98:3 */
  2865. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2866. // All Rights Reserved
  2867. // Copyright (c) 1982, 1986, 1993 Regents of the University of California.
  2868. // All rights reserved. The Berkeley software License Agreement
  2869. // specifies the terms and conditions for redistribution.
  2870. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2871. //
  2872. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  2873. // Use is subject to license terms.
  2874. //
  2875. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2876. // Copyright 2016 Joyent, Inc.
  2877. // Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
  2878. // Copyright (c) 2013, 2016 by Delphix. All rights reserved.
  2879. // DO NOT EDIT THIS FILE.
  2880. //
  2881. // It has been auto-edited by fixincludes from:
  2882. //
  2883. // "/usr/include/sys/feature_tests.h"
  2884. //
  2885. // This had to be done to correct non-standard usages in the
  2886. // original, manufacturer supplied header file.
  2887. // CDDL HEADER START
  2888. //
  2889. // The contents of this file are subject to the terms of the
  2890. // Common Development and Distribution License (the "License").
  2891. // You may not use this file except in compliance with the License.
  2892. //
  2893. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2894. // or http://www.opensolaris.org/os/licensing.
  2895. // See the License for the specific language governing permissions
  2896. // and limitations under the License.
  2897. //
  2898. // When distributing Covered Code, include this CDDL HEADER in each
  2899. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2900. // If applicable, add the following below this CDDL HEADER, with the
  2901. // fields enclosed by brackets "[]" replaced with your own identifying
  2902. // information: Portions Copyright [yyyy] [name of copyright owner]
  2903. //
  2904. // CDDL HEADER END
  2905. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2906. // Copyright 2016 Joyent, Inc.
  2907. // Copyright 2022 Oxide Computer Company
  2908. //
  2909. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2910. // Use is subject to license terms.
  2911. // Structure returned by gettimeofday(2) system call,
  2912. // and used in other calls.
  2913. type Timeval = struct {
  2914. Ftv_sec int64
  2915. Ftv_usec int64
  2916. } /* time.h:54:1 */
  2917. type Timezone = struct {
  2918. Ftz_minuteswest int32
  2919. Ftz_dsttime int32
  2920. } /* time.h:86:1 */
  2921. // Needed for longlong_t type. Placement of this due to <sys/types.h>
  2922. // including <sys/select.h> which relies on the presense of the itimerval
  2923. // structure.
  2924. // CDDL HEADER START
  2925. //
  2926. // The contents of this file are subject to the terms of the
  2927. // Common Development and Distribution License (the "License").
  2928. // You may not use this file except in compliance with the License.
  2929. //
  2930. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2931. // or http://www.opensolaris.org/os/licensing.
  2932. // See the License for the specific language governing permissions
  2933. // and limitations under the License.
  2934. //
  2935. // When distributing Covered Code, include this CDDL HEADER in each
  2936. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2937. // If applicable, add the following below this CDDL HEADER, with the
  2938. // fields enclosed by brackets "[]" replaced with your own identifying
  2939. // information: Portions Copyright [yyyy] [name of copyright owner]
  2940. //
  2941. // CDDL HEADER END
  2942. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2943. // All Rights Reserved
  2944. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  2945. // Use is subject to license terms.
  2946. //
  2947. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2948. // Copyright 2016 Joyent, Inc.
  2949. // Copyright 2021 Oxide Computer Company
  2950. // Operations on timevals.
  2951. // Names of the interval timers, and structure
  2952. // defining a timer setting.
  2953. // time and when system is running on
  2954. // behalf of the process.
  2955. // time profiling of multithreaded
  2956. // programs.
  2957. type Itimerval = struct {
  2958. Fit_interval struct {
  2959. Ftv_sec int64
  2960. Ftv_usec int64
  2961. }
  2962. Fit_value struct {
  2963. Ftv_sec int64
  2964. Ftv_usec int64
  2965. }
  2966. } /* time.h:209:1 */
  2967. // Definitions for commonly used resolutions.
  2968. // Time expressed as a 64-bit nanosecond counter.
  2969. type Hrtime_t = int64 /* time.h:265:20 */
  2970. // The inclusion of <time.h> is historical and was added for
  2971. // backward compatibility in delta 1.2 when a number of definitions
  2972. // were moved out of <sys/time.h>. More recently, the timespec and
  2973. // itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
  2974. // _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
  2975. // which is now included by <time.h>. This change was due to POSIX
  2976. // 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and
  2977. // non-X/Open applications, including this header will still make
  2978. // visible these definitions.
  2979. // CDDL HEADER START
  2980. //
  2981. // The contents of this file are subject to the terms of the
  2982. // Common Development and Distribution License (the "License").
  2983. // You may not use this file except in compliance with the License.
  2984. //
  2985. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2986. // or http://www.opensolaris.org/os/licensing.
  2987. // See the License for the specific language governing permissions
  2988. // and limitations under the License.
  2989. //
  2990. // When distributing Covered Code, include this CDDL HEADER in each
  2991. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2992. // If applicable, add the following below this CDDL HEADER, with the
  2993. // fields enclosed by brackets "[]" replaced with your own identifying
  2994. // information: Portions Copyright [yyyy] [name of copyright owner]
  2995. //
  2996. // CDDL HEADER END
  2997. // Copyright (c) 1988 AT&T
  2998. // All Rights Reserved
  2999. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3000. //
  3001. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  3002. // Use is subject to license terms.
  3003. // Copyright 2010 Nexenta Systems, Inc. Al rights reserved.
  3004. // Copyright 2016 Joyent, Inc.
  3005. // DO NOT EDIT THIS FILE.
  3006. //
  3007. // It has been auto-edited by fixincludes from:
  3008. //
  3009. // "/usr/include/sys/feature_tests.h"
  3010. //
  3011. // This had to be done to correct non-standard usages in the
  3012. // original, manufacturer supplied header file.
  3013. // CDDL HEADER START
  3014. //
  3015. // The contents of this file are subject to the terms of the
  3016. // Common Development and Distribution License (the "License").
  3017. // You may not use this file except in compliance with the License.
  3018. //
  3019. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3020. // or http://www.opensolaris.org/os/licensing.
  3021. // See the License for the specific language governing permissions
  3022. // and limitations under the License.
  3023. //
  3024. // When distributing Covered Code, include this CDDL HEADER in each
  3025. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3026. // If applicable, add the following below this CDDL HEADER, with the
  3027. // fields enclosed by brackets "[]" replaced with your own identifying
  3028. // information: Portions Copyright [yyyy] [name of copyright owner]
  3029. //
  3030. // CDDL HEADER END
  3031. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3032. // Copyright 2016 Joyent, Inc.
  3033. // Copyright 2022 Oxide Computer Company
  3034. //
  3035. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3036. // Use is subject to license terms.
  3037. // CDDL HEADER START
  3038. //
  3039. // The contents of this file are subject to the terms of the
  3040. // Common Development and Distribution License, Version 1.0 only
  3041. // (the "License"). You may not use this file except in compliance
  3042. // with the License.
  3043. //
  3044. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3045. // or http://www.opensolaris.org/os/licensing.
  3046. // See the License for the specific language governing permissions
  3047. // and limitations under the License.
  3048. //
  3049. // When distributing Covered Code, include this CDDL HEADER in each
  3050. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3051. // If applicable, add the following below this CDDL HEADER, with the
  3052. // fields enclosed by brackets "[]" replaced with your own identifying
  3053. // information: Portions Copyright [yyyy] [name of copyright owner]
  3054. //
  3055. // CDDL HEADER END
  3056. // Copyright (c) 1988 AT&T
  3057. // All Rights Reserved
  3058. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3059. // Copyright 2014 PALO, Richard.
  3060. //
  3061. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  3062. // Use is subject to license terms.
  3063. // An application should not include this header directly. Instead it
  3064. // should be included only through the inclusion of other Sun headers.
  3065. //
  3066. // The contents of this header is limited to identifiers specified in the
  3067. // C Standard. Any new identifiers specified in future amendments to the
  3068. // C Standard must be placed in this header. If these new identifiers
  3069. // are required to also be in the C++ Standard "std" namespace, then for
  3070. // anything other than macro definitions, corresponding "using" directives
  3071. // must also be added to <time.h.h>.
  3072. // DO NOT EDIT THIS FILE.
  3073. //
  3074. // It has been auto-edited by fixincludes from:
  3075. //
  3076. // "/usr/include/sys/feature_tests.h"
  3077. //
  3078. // This had to be done to correct non-standard usages in the
  3079. // original, manufacturer supplied header file.
  3080. // CDDL HEADER START
  3081. //
  3082. // The contents of this file are subject to the terms of the
  3083. // Common Development and Distribution License (the "License").
  3084. // You may not use this file except in compliance with the License.
  3085. //
  3086. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3087. // or http://www.opensolaris.org/os/licensing.
  3088. // See the License for the specific language governing permissions
  3089. // and limitations under the License.
  3090. //
  3091. // When distributing Covered Code, include this CDDL HEADER in each
  3092. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3093. // If applicable, add the following below this CDDL HEADER, with the
  3094. // fields enclosed by brackets "[]" replaced with your own identifying
  3095. // information: Portions Copyright [yyyy] [name of copyright owner]
  3096. //
  3097. // CDDL HEADER END
  3098. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3099. // Copyright 2016 Joyent, Inc.
  3100. // Copyright 2022 Oxide Computer Company
  3101. //
  3102. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3103. // Use is subject to license terms.
  3104. // This file and its contents are supplied under the terms of the
  3105. // Common Development and Distribution License ("CDDL"), version 1.0.
  3106. // You may only use this file in accordance with the terms of version
  3107. // 1.0 of the CDDL.
  3108. //
  3109. // A full copy of the text of the CDDL should have accompanied this
  3110. // source. A copy of the CDDL is also available via the Internet at
  3111. // http://www.illumos.org/license/CDDL.
  3112. // Copyright 2014-2016 PALO, Richard.
  3113. // DO NOT EDIT THIS FILE.
  3114. //
  3115. // It has been auto-edited by fixincludes from:
  3116. //
  3117. // "/usr/include/sys/feature_tests.h"
  3118. //
  3119. // This had to be done to correct non-standard usages in the
  3120. // original, manufacturer supplied header file.
  3121. // CDDL HEADER START
  3122. //
  3123. // The contents of this file are subject to the terms of the
  3124. // Common Development and Distribution License (the "License").
  3125. // You may not use this file except in compliance with the License.
  3126. //
  3127. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3128. // or http://www.opensolaris.org/os/licensing.
  3129. // See the License for the specific language governing permissions
  3130. // and limitations under the License.
  3131. //
  3132. // When distributing Covered Code, include this CDDL HEADER in each
  3133. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3134. // If applicable, add the following below this CDDL HEADER, with the
  3135. // fields enclosed by brackets "[]" replaced with your own identifying
  3136. // information: Portions Copyright [yyyy] [name of copyright owner]
  3137. //
  3138. // CDDL HEADER END
  3139. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3140. // Copyright 2016 Joyent, Inc.
  3141. // Copyright 2022 Oxide Computer Company
  3142. //
  3143. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3144. // Use is subject to license terms.
  3145. // POSIX.1-2008 requires that the NULL macro be cast to type void *.
  3146. type Tm = struct {
  3147. Ftm_sec int32
  3148. Ftm_min int32
  3149. Ftm_hour int32
  3150. Ftm_mday int32
  3151. Ftm_mon int32
  3152. Ftm_year int32
  3153. Ftm_wday int32
  3154. Ftm_yday int32
  3155. Ftm_isdst int32
  3156. } /* time_iso.h:80:1 */
  3157. // Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
  3158. // definition of the sigevent structure. Both require the inclusion
  3159. // of <signal.h> and <time.h> when using the timer_create() function.
  3160. // However, X/Open also specifies that the sigevent structure be defined
  3161. // in <time.h> as described in the header <signal.h>. This prevents
  3162. // compiler warnings for applications that only include <time.h> and not
  3163. // also <signal.h>. The sigval union and the sigevent structure is
  3164. // therefore defined both here and in <sys/siginfo.h> which gets included
  3165. // via inclusion of <signal.h>.
  3166. type Sigval = struct {
  3167. F__ccgo_pad1 [0]uint64
  3168. Fsival_int int32
  3169. F__ccgo_pad2 [4]byte
  3170. } /* time.h:125:1 */
  3171. type Sigevent = struct {
  3172. Fsigev_notify int32
  3173. Fsigev_signo int32
  3174. Fsigev_value struct {
  3175. F__ccgo_pad1 [0]uint64
  3176. Fsival_int int32
  3177. F__ccgo_pad2 [4]byte
  3178. }
  3179. Fsigev_notify_function uintptr
  3180. Fsigev_notify_attributes uintptr
  3181. F__sigev_pad2 int32
  3182. F__ccgo_pad1 [4]byte
  3183. } /* time.h:133:1 */
  3184. type Locale_t = uintptr /* time.h:292:24 */
  3185. // The inclusion of <sys/select.h> is needed for the FD_CLR,
  3186. // FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
  3187. // select() prototype defined in the XOpen specifications
  3188. // beginning with XSH4v2. Placement required after definition
  3189. // for itimerval.
  3190. // CDDL HEADER START
  3191. //
  3192. // The contents of this file are subject to the terms of the
  3193. // Common Development and Distribution License (the "License").
  3194. // You may not use this file except in compliance with the License.
  3195. //
  3196. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3197. // or http://www.opensolaris.org/os/licensing.
  3198. // See the License for the specific language governing permissions
  3199. // and limitations under the License.
  3200. //
  3201. // When distributing Covered Code, include this CDDL HEADER in each
  3202. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3203. // If applicable, add the following below this CDDL HEADER, with the
  3204. // fields enclosed by brackets "[]" replaced with your own identifying
  3205. // information: Portions Copyright [yyyy] [name of copyright owner]
  3206. //
  3207. // CDDL HEADER END
  3208. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3209. //
  3210. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3211. //
  3212. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3213. // Use is subject to license terms.
  3214. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3215. // All Rights Reserved
  3216. // University Copyright- Copyright (c) 1982, 1986, 1988
  3217. // The Regents of the University of California
  3218. // All Rights Reserved
  3219. //
  3220. // University Acknowledgment- Portions of this document are derived from
  3221. // software developed by the University of California, Berkeley, and its
  3222. // contributors.
  3223. // The sigset_t type is defined in <sys/signal.h> and duplicated
  3224. // in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
  3225. // now allows the visibility of signal.h in this header, however
  3226. // an order of inclusion problem occurs as a result of inclusion
  3227. // of <sys/select.h> in <signal.h> under certain conditions.
  3228. // Rather than include <sys/signal.h> here, we've duplicated
  3229. // the sigset_t type instead. This type is required for the XPG6
  3230. // introduced pselect() function also declared in this header.
  3231. type Sigset_t = struct{ F__sigbits [4]uint32 } /* select.h:76:3 */
  3232. // Select uses bit masks of file descriptors in longs.
  3233. // These macros manipulate such bit fields.
  3234. // FD_SETSIZE may be defined by the user, but the default here
  3235. // should be >= RLIM_FD_MAX.
  3236. type Fd_mask = int64 /* select.h:92:14 */
  3237. type Fds_mask = int64 /* select.h:94:14 */
  3238. // The value of _NBBY needs to be consistant with the value
  3239. // of NBBY in <sys/param.h>.
  3240. type Fd_set1 = struct{ Ffds_bits [1024]int64 } /* select.h:120:9 */
  3241. // The value of _NBBY needs to be consistant with the value
  3242. // of NBBY in <sys/param.h>.
  3243. type Fd_set = Fd_set1 /* select.h:125:3 */
  3244. // _VOID was defined to be either void or char but this is not
  3245. // required because previous SunOS compilers have accepted the void
  3246. // type. However, because many system header and source files use the
  3247. // void keyword, the volatile keyword, and ANSI C function prototypes,
  3248. // non-ANSI compilers cannot compile the system anyway. The _VOID macro
  3249. // should therefore not be used and remains for source compatibility
  3250. // only.
  3251. // CSTYLED
  3252. // CDDL HEADER START
  3253. //
  3254. // The contents of this file are subject to the terms of the
  3255. // Common Development and Distribution License (the "License").
  3256. // You may not use this file except in compliance with the License.
  3257. //
  3258. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3259. // or http://www.opensolaris.org/os/licensing.
  3260. // See the License for the specific language governing permissions
  3261. // and limitations under the License.
  3262. //
  3263. // When distributing Covered Code, include this CDDL HEADER in each
  3264. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3265. // If applicable, add the following below this CDDL HEADER, with the
  3266. // fields enclosed by brackets "[]" replaced with your own identifying
  3267. // information: Portions Copyright [yyyy] [name of copyright owner]
  3268. //
  3269. // CDDL HEADER END
  3270. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3271. //
  3272. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3273. // Use is subject to license terms.
  3274. //
  3275. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3276. // Copyright (c) 2015, Joyent, Inc. All rights reserved.
  3277. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3278. // All Rights Reserved
  3279. // University Copyright- Copyright (c) 1982, 1986, 1988
  3280. // The Regents of the University of California
  3281. // All Rights Reserved
  3282. //
  3283. // University Acknowledgment- Portions of this document are derived from
  3284. // software developed by the University of California, Berkeley, and its
  3285. // contributors.
  3286. // DO NOT EDIT THIS FILE.
  3287. //
  3288. // It has been auto-edited by fixincludes from:
  3289. //
  3290. // "/usr/include/sys/feature_tests.h"
  3291. //
  3292. // This had to be done to correct non-standard usages in the
  3293. // original, manufacturer supplied header file.
  3294. // CDDL HEADER START
  3295. //
  3296. // The contents of this file are subject to the terms of the
  3297. // Common Development and Distribution License (the "License").
  3298. // You may not use this file except in compliance with the License.
  3299. //
  3300. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3301. // or http://www.opensolaris.org/os/licensing.
  3302. // See the License for the specific language governing permissions
  3303. // and limitations under the License.
  3304. //
  3305. // When distributing Covered Code, include this CDDL HEADER in each
  3306. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3307. // If applicable, add the following below this CDDL HEADER, with the
  3308. // fields enclosed by brackets "[]" replaced with your own identifying
  3309. // information: Portions Copyright [yyyy] [name of copyright owner]
  3310. //
  3311. // CDDL HEADER END
  3312. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3313. // Copyright 2016 Joyent, Inc.
  3314. // Copyright 2022 Oxide Computer Company
  3315. //
  3316. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3317. // Use is subject to license terms.
  3318. // CDDL HEADER START
  3319. //
  3320. // The contents of this file are subject to the terms of the
  3321. // Common Development and Distribution License (the "License").
  3322. // You may not use this file except in compliance with the License.
  3323. //
  3324. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3325. // or http://www.opensolaris.org/os/licensing.
  3326. // See the License for the specific language governing permissions
  3327. // and limitations under the License.
  3328. //
  3329. // When distributing Covered Code, include this CDDL HEADER in each
  3330. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3331. // If applicable, add the following below this CDDL HEADER, with the
  3332. // fields enclosed by brackets "[]" replaced with your own identifying
  3333. // information: Portions Copyright [yyyy] [name of copyright owner]
  3334. //
  3335. // CDDL HEADER END
  3336. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3337. // All Rights Reserved
  3338. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3339. // Use is subject to license terms.
  3340. //
  3341. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3342. // Copyright 2016 Joyent, Inc.
  3343. // Copyright 2021 Oxide Computer Company
  3344. // I/O parameter information. A uio structure describes the I/O which
  3345. // is to be performed by an operation. Typically the data movement will
  3346. // be performed by a routine such as uiomove(), which updates the uio
  3347. // structure to reflect what was done.
  3348. type Iovec = struct {
  3349. Fiov_base uintptr
  3350. Fiov_len uint64
  3351. } /* uio.h:68:9 */
  3352. // _VOID was defined to be either void or char but this is not
  3353. // required because previous SunOS compilers have accepted the void
  3354. // type. However, because many system header and source files use the
  3355. // void keyword, the volatile keyword, and ANSI C function prototypes,
  3356. // non-ANSI compilers cannot compile the system anyway. The _VOID macro
  3357. // should therefore not be used and remains for source compatibility
  3358. // only.
  3359. // CSTYLED
  3360. // CDDL HEADER START
  3361. //
  3362. // The contents of this file are subject to the terms of the
  3363. // Common Development and Distribution License (the "License").
  3364. // You may not use this file except in compliance with the License.
  3365. //
  3366. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3367. // or http://www.opensolaris.org/os/licensing.
  3368. // See the License for the specific language governing permissions
  3369. // and limitations under the License.
  3370. //
  3371. // When distributing Covered Code, include this CDDL HEADER in each
  3372. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3373. // If applicable, add the following below this CDDL HEADER, with the
  3374. // fields enclosed by brackets "[]" replaced with your own identifying
  3375. // information: Portions Copyright [yyyy] [name of copyright owner]
  3376. //
  3377. // CDDL HEADER END
  3378. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3379. //
  3380. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3381. // Use is subject to license terms.
  3382. //
  3383. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3384. // Copyright (c) 2015, Joyent, Inc. All rights reserved.
  3385. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3386. // All Rights Reserved
  3387. // University Copyright- Copyright (c) 1982, 1986, 1988
  3388. // The Regents of the University of California
  3389. // All Rights Reserved
  3390. //
  3391. // University Acknowledgment- Portions of this document are derived from
  3392. // software developed by the University of California, Berkeley, and its
  3393. // contributors.
  3394. // DO NOT EDIT THIS FILE.
  3395. //
  3396. // It has been auto-edited by fixincludes from:
  3397. //
  3398. // "/usr/include/sys/feature_tests.h"
  3399. //
  3400. // This had to be done to correct non-standard usages in the
  3401. // original, manufacturer supplied header file.
  3402. // CDDL HEADER START
  3403. //
  3404. // The contents of this file are subject to the terms of the
  3405. // Common Development and Distribution License (the "License").
  3406. // You may not use this file except in compliance with the License.
  3407. //
  3408. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3409. // or http://www.opensolaris.org/os/licensing.
  3410. // See the License for the specific language governing permissions
  3411. // and limitations under the License.
  3412. //
  3413. // When distributing Covered Code, include this CDDL HEADER in each
  3414. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3415. // If applicable, add the following below this CDDL HEADER, with the
  3416. // fields enclosed by brackets "[]" replaced with your own identifying
  3417. // information: Portions Copyright [yyyy] [name of copyright owner]
  3418. //
  3419. // CDDL HEADER END
  3420. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3421. // Copyright 2016 Joyent, Inc.
  3422. // Copyright 2022 Oxide Computer Company
  3423. //
  3424. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3425. // Use is subject to license terms.
  3426. // CDDL HEADER START
  3427. //
  3428. // The contents of this file are subject to the terms of the
  3429. // Common Development and Distribution License (the "License").
  3430. // You may not use this file except in compliance with the License.
  3431. //
  3432. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3433. // or http://www.opensolaris.org/os/licensing.
  3434. // See the License for the specific language governing permissions
  3435. // and limitations under the License.
  3436. //
  3437. // When distributing Covered Code, include this CDDL HEADER in each
  3438. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3439. // If applicable, add the following below this CDDL HEADER, with the
  3440. // fields enclosed by brackets "[]" replaced with your own identifying
  3441. // information: Portions Copyright [yyyy] [name of copyright owner]
  3442. //
  3443. // CDDL HEADER END
  3444. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3445. // All Rights Reserved
  3446. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3447. // Use is subject to license terms.
  3448. //
  3449. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3450. // Copyright 2016 Joyent, Inc.
  3451. // Copyright 2021 Oxide Computer Company
  3452. // I/O parameter information. A uio structure describes the I/O which
  3453. // is to be performed by an operation. Typically the data movement will
  3454. // be performed by a routine such as uiomove(), which updates the uio
  3455. // structure to reflect what was done.
  3456. type Iovec_t = Iovec /* uio.h:75:3 */
  3457. // Segment flag values.
  3458. type Uio_seg_t = uint32 /* uio.h:93:70 */
  3459. type Uio = struct {
  3460. Fuio_iov uintptr
  3461. Fuio_iovcnt int32
  3462. F__ccgo_pad1 [4]byte
  3463. F_uio_offset Lloff_t
  3464. Fuio_segflg uint32
  3465. Fuio_fmode uint16
  3466. Fuio_extflg uint16
  3467. F_uio_limit Lloff_t
  3468. Fuio_resid int64
  3469. } /* uio.h:95:9 */
  3470. type Uio_t = Uio /* uio.h:104:3 */
  3471. // Extended uio_t uioa_t used for asynchronous uio.
  3472. //
  3473. // Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
  3474. // as there isn't a formal definition of IOV_MAX for the kernel.
  3475. type Uioa_page_s = struct {
  3476. Fuioa_pfncnt int32
  3477. F__ccgo_pad1 [4]byte
  3478. Fuioa_ppp uintptr
  3479. Fuioa_base uintptr
  3480. Fuioa_len uint64
  3481. } /* uio.h:114:9 */
  3482. // Extended uio_t uioa_t used for asynchronous uio.
  3483. //
  3484. // Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c"
  3485. // as there isn't a formal definition of IOV_MAX for the kernel.
  3486. type Uioa_page_t = Uioa_page_s /* uio.h:119:3 */
  3487. type Uioa_s = struct {
  3488. Fuio_iov uintptr
  3489. Fuio_iovcnt int32
  3490. F__ccgo_pad1 [4]byte
  3491. F_uio_offset Lloff_t
  3492. Fuio_segflg uint32
  3493. Fuio_fmode uint16
  3494. Fuio_extflg uint16
  3495. F_uio_limit Lloff_t
  3496. Fuio_resid int64
  3497. Fuioa_state uint32
  3498. F__ccgo_pad2 [4]byte
  3499. Fuioa_mbytes int64
  3500. Fuioa_lcur uintptr
  3501. Fuioa_lppp uintptr
  3502. Fuioa_hwst [4]uintptr
  3503. Fuioa_locked [16]Uioa_page_t
  3504. } /* uio.h:121:9 */
  3505. type Uioa_t = Uioa_s /* uio.h:139:3 */
  3506. // uio extensions
  3507. //
  3508. // PSARC 2009/478: Copy Reduction Interfaces
  3509. type Xuio_type_t = uint32 /* uio.h:150:3 */
  3510. type Xuio = struct {
  3511. Fxu_uio Uio_t
  3512. Fxu_type uint32
  3513. F__ccgo_pad1 [4]byte
  3514. Fxu_ext struct {
  3515. Fxu_aio struct {
  3516. Fxu_a_state uint32
  3517. F__ccgo_pad1 [4]byte
  3518. Fxu_a_mbytes int64
  3519. Fxu_a_lcur uintptr
  3520. Fxu_a_lppp uintptr
  3521. Fxu_a_hwst [4]uintptr
  3522. Fxu_a_locked [16]Uioa_page_t
  3523. }
  3524. }
  3525. } /* uio.h:152:9 */
  3526. type Xuio_t = Xuio /* uio.h:189:3 */
  3527. // I/O direction.
  3528. type Uio_rw_t = uint32 /* uio.h:220:45 */
  3529. // uio_extflg: extended flags
  3530. //
  3531. // NOTE: This flag will be used in uiomove to determine if non-temporal
  3532. // access, ie, access bypassing caches, should be used. Filesystems that
  3533. // don't initialize this field could experience suboptimal performance due to
  3534. // the random data the field contains.
  3535. //
  3536. // NOTE: This flag is also used by uioasync callers to pass an extended
  3537. // uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
  3538. // consumers of a uioa_t require the uio_extflg to be initialized.
  3539. // Global uioasync capability shadow state.
  3540. type Uioasync_s = struct {
  3541. Fenabled uint32
  3542. F__ccgo_pad1 [4]byte
  3543. Fmincnt uint64
  3544. } /* uio.h:243:9 */
  3545. // uio_extflg: extended flags
  3546. //
  3547. // NOTE: This flag will be used in uiomove to determine if non-temporal
  3548. // access, ie, access bypassing caches, should be used. Filesystems that
  3549. // don't initialize this field could experience suboptimal performance due to
  3550. // the random data the field contains.
  3551. //
  3552. // NOTE: This flag is also used by uioasync callers to pass an extended
  3553. // uio_t (uioa_t), to uioasync enabled consumers. Unlike above all
  3554. // consumers of a uioa_t require the uio_extflg to be initialized.
  3555. // Global uioasync capability shadow state.
  3556. type Uioasync_t = Uioasync_s /* uio.h:246:3 */
  3557. // DO NOT EDIT THIS FILE.
  3558. //
  3559. // It has been auto-edited by fixincludes from:
  3560. //
  3561. // "/usr/include/sys/feature_tests.h"
  3562. //
  3563. // This had to be done to correct non-standard usages in the
  3564. // original, manufacturer supplied header file.
  3565. // CDDL HEADER START
  3566. //
  3567. // The contents of this file are subject to the terms of the
  3568. // Common Development and Distribution License (the "License").
  3569. // You may not use this file except in compliance with the License.
  3570. //
  3571. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3572. // or http://www.opensolaris.org/os/licensing.
  3573. // See the License for the specific language governing permissions
  3574. // and limitations under the License.
  3575. //
  3576. // When distributing Covered Code, include this CDDL HEADER in each
  3577. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3578. // If applicable, add the following below this CDDL HEADER, with the
  3579. // fields enclosed by brackets "[]" replaced with your own identifying
  3580. // information: Portions Copyright [yyyy] [name of copyright owner]
  3581. //
  3582. // CDDL HEADER END
  3583. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3584. // Copyright 2016 Joyent, Inc.
  3585. // Copyright 2022 Oxide Computer Company
  3586. //
  3587. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3588. // Use is subject to license terms.
  3589. // CDDL HEADER START
  3590. //
  3591. // The contents of this file are subject to the terms of the
  3592. // Common Development and Distribution License (the "License").
  3593. // You may not use this file except in compliance with the License.
  3594. //
  3595. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3596. // or http://www.opensolaris.org/os/licensing.
  3597. // See the License for the specific language governing permissions
  3598. // and limitations under the License.
  3599. //
  3600. // When distributing Covered Code, include this CDDL HEADER in each
  3601. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3602. // If applicable, add the following below this CDDL HEADER, with the
  3603. // fields enclosed by brackets "[]" replaced with your own identifying
  3604. // information: Portions Copyright [yyyy] [name of copyright owner]
  3605. //
  3606. // CDDL HEADER END
  3607. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3608. // Use is subject to license terms.
  3609. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  3610. // All Rights Reserved
  3611. // Portions of this source code were derived from Berkeley 4.3 BSD
  3612. // under license from the Regents of the University of California.
  3613. type Sa_family_t = uint16 /* socket_impl.h:43:18 */
  3614. // Structure used by kernel to store most
  3615. // addresses.
  3616. type Sockaddr = struct {
  3617. Fsa_family uint16
  3618. Fsa_data [14]int8
  3619. } /* socket_impl.h:50:1 */
  3620. // CDDL HEADER START
  3621. //
  3622. // The contents of this file are subject to the terms of the
  3623. // Common Development and Distribution License (the "License").
  3624. // You may not use this file except in compliance with the License.
  3625. //
  3626. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3627. // or http://www.opensolaris.org/os/licensing.
  3628. // See the License for the specific language governing permissions
  3629. // and limitations under the License.
  3630. //
  3631. // When distributing Covered Code, include this CDDL HEADER in each
  3632. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3633. // If applicable, add the following below this CDDL HEADER, with the
  3634. // fields enclosed by brackets "[]" replaced with your own identifying
  3635. // information: Portions Copyright [yyyy] [name of copyright owner]
  3636. //
  3637. // CDDL HEADER END
  3638. // Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
  3639. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  3640. // All Rights Reserved
  3641. // University Copyright- Copyright (c) 1982, 1986, 1988
  3642. // The Regents of the University of California
  3643. // All Rights Reserved
  3644. //
  3645. // University Acknowledgment- Portions of this document are derived from
  3646. // software developed by the University of California, Berkeley, and its
  3647. // contributors.
  3648. // Definitions for UNIX IPC domain.
  3649. type Sockaddr_un = struct {
  3650. Fsun_family uint16
  3651. Fsun_path [108]int8
  3652. } /* un.h:53:1 */
  3653. // Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved.
  3654. // Use is subject to license terms.
  3655. // Copyright (c) 1990, 1993
  3656. // The Regents of the University of California. All rights reserved.
  3657. //
  3658. // Redistribution and use in source and binary forms, with or without
  3659. // modification, are permitted provided that the following conditions
  3660. // are met:
  3661. // 1. Redistributions of source code must retain the above copyright
  3662. // notice, this list of conditions and the following disclaimer.
  3663. // 2. Redistributions in binary form must reproduce the above copyright
  3664. // notice, this list of conditions and the following disclaimer in the
  3665. // documentation and/or other materials provided with the distribution.
  3666. // 3. All advertising materials mentioning features or use of this software
  3667. // must display the following acknowledgement:
  3668. // This product includes software developed by the University of
  3669. // California, Berkeley and its contributors.
  3670. // 4. Neither the name of the University nor the names of its contributors
  3671. // may be used to endorse or promote products derived from this software
  3672. // without specific prior written permission.
  3673. //
  3674. // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  3675. // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  3676. // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  3677. // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  3678. // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  3679. // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  3680. // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  3681. // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  3682. // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  3683. // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  3684. // SUCH DAMAGE.
  3685. // from UCB 8.1 (Berkeley) 6/10/93
  3686. // A Link-Level Sockaddr may specify the interface in one of two
  3687. // ways: either by means of a system-provided index number (computed
  3688. // anew and possibly differently on every reboot), or by a human-readable
  3689. // string such as "il0" (for managerial convenience).
  3690. //
  3691. // Census taking actions, such as something akin to SIOCGCONF would return
  3692. // both the index and the human name.
  3693. //
  3694. // High volume transactions (such as giving a link-level ``from'' address
  3695. // in a recvfrom or recvmsg call) may be likely only to provide the indexed
  3696. // form, (which requires fewer copy operations and less space).
  3697. //
  3698. // The form and interpretation of the link-level address is purely a matter
  3699. // of convention between the device driver and its consumers; however, it is
  3700. // expected that all drivers for an interface of a given if_type will agree.
  3701. // Structure of a Link-Level sockaddr:
  3702. type Sockaddr_dl = struct {
  3703. Fsdl_family uint16
  3704. Fsdl_index uint16
  3705. Fsdl_type uint8
  3706. Fsdl_nlen uint8
  3707. Fsdl_alen uint8
  3708. Fsdl_slen uint8
  3709. Fsdl_data [244]int8
  3710. } /* if_dl.h:68:1 */
  3711. // sockaddr_storage:
  3712. // Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr
  3713. // structures. Has sufficient size and alignment for those sockaddrs.
  3714. // Desired maximum size, alignment size and related types.
  3715. // To represent desired sockaddr max alignment for platform, a
  3716. // type is chosen which may depend on implementation platform architecture.
  3717. // Type chosen based on alignment size restrictions from <sys/isa_defs.h>.
  3718. // We desire to force up to (but no more than) 64-bit (8 byte) alignment,
  3719. // on platforms where it is possible to do so. (e.g not possible on ia32).
  3720. // For all currently supported platforms by our implementation
  3721. // in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64)
  3722. // type "double" is suitable for that intent.
  3723. //
  3724. // Note: Type "double" is chosen over the more obvious integer type int64_t.
  3725. //
  3726. // int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32.
  3727. type Sockaddr_maxalign_t = float64 /* socket_impl.h:85:17 */
  3728. // Definitions used for sockaddr_storage structure paddings design.
  3729. type Sockaddr_storage = struct {
  3730. Fss_family uint16
  3731. F_ss_pad1 [6]int8
  3732. F_ss_align float64
  3733. F_ss_pad2 [240]int8
  3734. } /* socket_impl.h:96:1 */
  3735. // To be compatible with the Linux interfaces used, this structure is
  3736. // placed in socket_impl.h so that an include for <sys/socket.h> will
  3737. // pickup this structure. This structure is for use with PF_PACKET
  3738. // sockets.
  3739. type Sockaddr_ll = struct {
  3740. Fsll_family uint16
  3741. Fsll_protocol uint16
  3742. Fsll_ifindex int32
  3743. Fsll_hatype uint16
  3744. Fsll_pkttype uint8
  3745. Fsll_halen uint8
  3746. Fsll_addr [8]uint8
  3747. } /* socket_impl.h:111:1 */
  3748. // CDDL HEADER START
  3749. //
  3750. // The contents of this file are subject to the terms of the
  3751. // Common Development and Distribution License, Version 1.0 only
  3752. // (the "License"). You may not use this file except in compliance
  3753. // with the License.
  3754. //
  3755. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3756. // or http://www.opensolaris.org/os/licensing.
  3757. // See the License for the specific language governing permissions
  3758. // and limitations under the License.
  3759. //
  3760. // When distributing Covered Code, include this CDDL HEADER in each
  3761. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3762. // If applicable, add the following below this CDDL HEADER, with the
  3763. // fields enclosed by brackets "[]" replaced with your own identifying
  3764. // information: Portions Copyright [yyyy] [name of copyright owner]
  3765. //
  3766. // CDDL HEADER END
  3767. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3768. // All Rights Reserved
  3769. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3770. //
  3771. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  3772. // Use is subject to license terms.
  3773. // Copyright 2015 Joyent, Inc.
  3774. type Netconfig = struct {
  3775. Fnc_netid uintptr
  3776. Fnc_semantics uint32
  3777. Fnc_flag uint32
  3778. Fnc_protofmly uintptr
  3779. Fnc_proto uintptr
  3780. Fnc_device uintptr
  3781. Fnc_nlookups uint32
  3782. F__ccgo_pad1 [4]byte
  3783. Fnc_lookups uintptr
  3784. Fnc_unused [8]uint32
  3785. } /* netconfig.h:44:1 */
  3786. type NCONF_HANDLE = struct {
  3787. Fnc_head uintptr
  3788. Fnc_curr uintptr
  3789. } /* netconfig.h:59:3 */
  3790. // CDDL HEADER START
  3791. //
  3792. // The contents of this file are subject to the terms of the
  3793. // Common Development and Distribution License, Version 1.0 only
  3794. // (the "License"). You may not use this file except in compliance
  3795. // with the License.
  3796. //
  3797. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3798. // or http://www.opensolaris.org/os/licensing.
  3799. // See the License for the specific language governing permissions
  3800. // and limitations under the License.
  3801. //
  3802. // When distributing Covered Code, include this CDDL HEADER in each
  3803. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3804. // If applicable, add the following below this CDDL HEADER, with the
  3805. // fields enclosed by brackets "[]" replaced with your own identifying
  3806. // information: Portions Copyright [yyyy] [name of copyright owner]
  3807. //
  3808. // CDDL HEADER END
  3809. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3810. // All Rights Reserved
  3811. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3812. //
  3813. // Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
  3814. // All rights reserved.
  3815. // Copyright 2015, Joyent, Inc.
  3816. // Structure of file descriptor/event pairs supplied in
  3817. // the poll arrays.
  3818. type Pollfd = struct {
  3819. Ffd int32
  3820. Fevents int16
  3821. Frevents int16
  3822. } /* poll.h:48:9 */
  3823. // CDDL HEADER START
  3824. //
  3825. // The contents of this file are subject to the terms of the
  3826. // Common Development and Distribution License, Version 1.0 only
  3827. // (the "License"). You may not use this file except in compliance
  3828. // with the License.
  3829. //
  3830. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3831. // or http://www.opensolaris.org/os/licensing.
  3832. // See the License for the specific language governing permissions
  3833. // and limitations under the License.
  3834. //
  3835. // When distributing Covered Code, include this CDDL HEADER in each
  3836. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3837. // If applicable, add the following below this CDDL HEADER, with the
  3838. // fields enclosed by brackets "[]" replaced with your own identifying
  3839. // information: Portions Copyright [yyyy] [name of copyright owner]
  3840. //
  3841. // CDDL HEADER END
  3842. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3843. // All Rights Reserved
  3844. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  3845. //
  3846. // Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
  3847. // All rights reserved.
  3848. // Copyright 2015, Joyent, Inc.
  3849. // Structure of file descriptor/event pairs supplied in
  3850. // the poll arrays.
  3851. type Pollfd_t = Pollfd /* poll.h:52:3 */
  3852. type Nfds_t = uint64 /* poll.h:54:23 */
  3853. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3854. // Use is subject to license terms.
  3855. //
  3856. // Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  3857. // Copyright 2015, Joyent, Inc.
  3858. // Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
  3859. // Copyright (c) 1982, 1986 Regents of the University of California.
  3860. // All rights reserved.
  3861. //
  3862. // Redistribution and use in source and binary forms are permitted
  3863. // provided that this notice is preserved and that due credit is given
  3864. // to the University of California at Berkeley. The name of the University
  3865. // may not be used to endorse or promote products derived from this
  3866. // software without specific prior written permission. This software
  3867. // is provided ``as is'' without express or implied warranty.
  3868. // Constants and structures defined by the internet system,
  3869. // according to following documents
  3870. //
  3871. // Internet ASSIGNED NUMBERS (RFC1700) and its successors:
  3872. // http://www.iana.org/assignments/protocol-numbers
  3873. // http://www.iana.org/assignments/port-numbers
  3874. // Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors)
  3875. //
  3876. // DO NOT EDIT THIS FILE.
  3877. //
  3878. // It has been auto-edited by fixincludes from:
  3879. //
  3880. // "/usr/include/sys/feature_tests.h"
  3881. //
  3882. // This had to be done to correct non-standard usages in the
  3883. // original, manufacturer supplied header file.
  3884. // CDDL HEADER START
  3885. //
  3886. // The contents of this file are subject to the terms of the
  3887. // Common Development and Distribution License (the "License").
  3888. // You may not use this file except in compliance with the License.
  3889. //
  3890. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3891. // or http://www.opensolaris.org/os/licensing.
  3892. // See the License for the specific language governing permissions
  3893. // and limitations under the License.
  3894. //
  3895. // When distributing Covered Code, include this CDDL HEADER in each
  3896. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3897. // If applicable, add the following below this CDDL HEADER, with the
  3898. // fields enclosed by brackets "[]" replaced with your own identifying
  3899. // information: Portions Copyright [yyyy] [name of copyright owner]
  3900. //
  3901. // CDDL HEADER END
  3902. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3903. // Copyright 2016 Joyent, Inc.
  3904. // Copyright 2022 Oxide Computer Company
  3905. //
  3906. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3907. // Use is subject to license terms.
  3908. // CDDL HEADER START
  3909. //
  3910. // The contents of this file are subject to the terms of the
  3911. // Common Development and Distribution License (the "License").
  3912. // You may not use this file except in compliance with the License.
  3913. //
  3914. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3915. // or http://www.opensolaris.org/os/licensing.
  3916. // See the License for the specific language governing permissions
  3917. // and limitations under the License.
  3918. //
  3919. // When distributing Covered Code, include this CDDL HEADER in each
  3920. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3921. // If applicable, add the following below this CDDL HEADER, with the
  3922. // fields enclosed by brackets "[]" replaced with your own identifying
  3923. // information: Portions Copyright [yyyy] [name of copyright owner]
  3924. //
  3925. // CDDL HEADER END
  3926. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3927. // All Rights Reserved
  3928. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3929. // Use is subject to license terms.
  3930. //
  3931. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3932. // Copyright 2016 Joyent, Inc.
  3933. // Copyright 2021 Oxide Computer Company
  3934. // CDDL HEADER START
  3935. //
  3936. // The contents of this file are subject to the terms of the
  3937. // Common Development and Distribution License (the "License").
  3938. // You may not use this file except in compliance with the License.
  3939. //
  3940. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3941. // or http://www.opensolaris.org/os/licensing.
  3942. // See the License for the specific language governing permissions
  3943. // and limitations under the License.
  3944. //
  3945. // When distributing Covered Code, include this CDDL HEADER in each
  3946. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3947. // If applicable, add the following below this CDDL HEADER, with the
  3948. // fields enclosed by brackets "[]" replaced with your own identifying
  3949. // information: Portions Copyright [yyyy] [name of copyright owner]
  3950. //
  3951. // CDDL HEADER END
  3952. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3953. // Use is subject to license terms.
  3954. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  3955. // All Rights Reserved
  3956. // Portions of this source code were derived from Berkeley 4.3 BSD
  3957. // under license from the Regents of the University of California.
  3958. // The socklen definitions are reproduced here from sys/socket.h so as to
  3959. // not introduce that namespace into existing users of netinet/in.h.
  3960. type Socklen_t = uint32 /* in.h:57:18 */
  3961. type Psocklen_t = uintptr /* in.h:63:15 */
  3962. // Symbols such as htonl() are required to be exposed through this file,
  3963. // per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h>
  3964. // CDDL HEADER START
  3965. //
  3966. // The contents of this file are subject to the terms of the
  3967. // Common Development and Distribution License (the "License").
  3968. // You may not use this file except in compliance with the License.
  3969. //
  3970. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3971. // or http://www.opensolaris.org/os/licensing.
  3972. // See the License for the specific language governing permissions
  3973. // and limitations under the License.
  3974. //
  3975. // When distributing Covered Code, include this CDDL HEADER in each
  3976. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3977. // If applicable, add the following below this CDDL HEADER, with the
  3978. // fields enclosed by brackets "[]" replaced with your own identifying
  3979. // information: Portions Copyright [yyyy] [name of copyright owner]
  3980. //
  3981. // CDDL HEADER END
  3982. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3983. // Use is subject to license terms.
  3984. // Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
  3985. // All Rights Reserved
  3986. // University Copyright- Copyright (c) 1982, 1986, 1988
  3987. // The Regents of the University of California
  3988. // All Rights Reserved
  3989. //
  3990. // University Acknowledgment- Portions of this document are derived from
  3991. // software developed by the University of California, Berkeley, and its
  3992. // contributors.
  3993. // CDDL HEADER START
  3994. //
  3995. // The contents of this file are subject to the terms of the
  3996. // Common Development and Distribution License (the "License").
  3997. // You may not use this file except in compliance with the License.
  3998. //
  3999. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  4000. // or http://www.opensolaris.org/os/licensing.
  4001. // See the License for the specific language governing permissions
  4002. // and limitations under the License.
  4003. //
  4004. //
  4005. // When distributing Covered Code, include this CDDL HEADER in each
  4006. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  4007. // If applicable, add the following below this CDDL HEADER, with the
  4008. // fields enclosed by brackets "[]" replaced with your own identifying
  4009. // information: Portions Copyright [yyyy] [name of copyright owner]
  4010. //
  4011. // CDDL HEADER END
  4012. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  4013. // Use is subject to license terms.
  4014. // Copyright 2016 Joyent, Inc.
  4015. // CDDL HEADER START
  4016. //
  4017. // The contents of this file are subject to the terms of the
  4018. // Common Development and Distribution License, Version 1.0 only
  4019. // (the "License"). You may not use this file except in compliance
  4020. // with the License.
  4021. //
  4022. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  4023. // or http://www.opensolaris.org/os/licensing.
  4024. // See the License for the specific language governing permissions
  4025. // and limitations under the License.
  4026. //
  4027. // When distributing Covered Code, include this CDDL HEADER in each
  4028. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  4029. // If applicable, add the following below this CDDL HEADER, with the
  4030. // fields enclosed by brackets "[]" replaced with your own identifying
  4031. // information: Portions Copyright [yyyy] [name of copyright owner]
  4032. //
  4033. // CDDL HEADER END
  4034. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  4035. //
  4036. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  4037. // Use is subject to license terms.
  4038. // macros for conversion between host and (internet) network byte order
  4039. type In_port_t = uint16 /* byteorder.h:74:18 */
  4040. type In_addr_t = uint32 /* byteorder.h:79:18 */
  4041. // Macros to reverse byte order
  4042. // Macros to convert from a specific byte order to/from native byte order
  4043. // Macros to read unaligned values from a specific byte order to
  4044. // native byte order
  4045. // Macros to write unaligned values from native byte order to a specific byte
  4046. // order.
  4047. // Note: IPv4 address data structures usage conventions.
  4048. // The "in_addr_t" type below (required by Unix standards)
  4049. // is NOT a typedef of "struct in_addr" and violates the usual
  4050. // conventions where "struct <name>" and <name>_t are corresponding
  4051. // typedefs.
  4052. // To minimize confusion, kernel data structures/usage prefers use
  4053. // of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
  4054. // The user level APIs continue to follow the historic popular
  4055. // practice of using "struct in_addr".
  4056. type Ipaddr_t = uint32 /* in.h:99:18 */
  4057. type In6_addr = struct {
  4058. F_S6_un struct {
  4059. F__ccgo_pad1 [0]uint32
  4060. F_S6_u8 [16]uint8
  4061. }
  4062. } /* in.h:104:1 */
  4063. type In6_addr_t = In6_addr /* in.h:137:25 */
  4064. // Protocols
  4065. //
  4066. // Some of these constant names are copied for the DTrace IP provider in
  4067. // usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
  4068. // in sync.
  4069. // Transmission Protocol
  4070. // Port/socket numbers: network standard functions
  4071. //
  4072. // Entries should exist here for each port number compiled into an ON
  4073. // component, such as snoop.
  4074. // Port/socket numbers: host specific functions
  4075. // Internet Key Exchange (IKE) ports
  4076. // UNIX TCP sockets
  4077. // UNIX UDP sockets
  4078. // DHCPv6 UDP ports
  4079. // Ports < IPPORT_RESERVED are reserved for
  4080. // privileged processes (e.g. root).
  4081. // Ports > IPPORT_USERRESERVED are reserved
  4082. // for servers, not necessarily privileged.
  4083. // Link numbers
  4084. // IPv4 Internet address
  4085. // This definition contains obsolete fields for compatibility
  4086. // with SunOS 3.x and 4.2bsd. The presence of subnets renders
  4087. // divisions into fixed fields misleading at best. New code
  4088. // should use only the s_addr field.
  4089. type In_addr = struct {
  4090. FS_un struct {
  4091. F__ccgo_pad1 [0]uint32
  4092. FS_un_b struct {
  4093. Fs_b1 uint8
  4094. Fs_b2 uint8
  4095. Fs_b3 uint8
  4096. Fs_b4 uint8
  4097. }
  4098. }
  4099. } /* in.h:301:1 */
  4100. // Definitions of bits in internet address integers.
  4101. // On subnets, the decomposition of addresses to host and net parts
  4102. // is done according to subnet mask, not the masks here.
  4103. //
  4104. // Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB,
  4105. // IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto
  4106. // obsolete". IN_MULTICAST macro should be used to test if a address
  4107. // is a multicast address.
  4108. // We have removed CLASS E checks from the kernel
  4109. // But we preserve these defines for userland in order
  4110. // to avoid compile breakage of some 3rd party piece of software
  4111. // Scoped IPv4 prefixes (in host byte-order)
  4112. // RFC 3927 IPv4 link local address (i in host byte-order)
  4113. // Well known 6to4 Relay Router Anycast address defined in RFC 3068
  4114. // Define a macro to stuff the loopback address into an Internet address
  4115. // IPv4 Socket address.
  4116. type Sockaddr_in = struct {
  4117. Fsin_family uint16
  4118. Fsin_port uint16
  4119. Fsin_addr struct {
  4120. FS_un struct {
  4121. F__ccgo_pad1 [0]uint32
  4122. FS_un_b struct {
  4123. Fs_b1 uint8
  4124. Fs_b2 uint8
  4125. Fs_b3 uint8
  4126. Fs_b4 uint8
  4127. }
  4128. }
  4129. }
  4130. Fsin_zero [8]int8
  4131. } /* in.h:409:1 */
  4132. // IPv6 socket address.
  4133. type Sockaddr_in6 = struct {
  4134. Fsin6_family uint16
  4135. Fsin6_port uint16
  4136. Fsin6_flowinfo uint32
  4137. Fsin6_addr struct {
  4138. F_S6_un struct {
  4139. F__ccgo_pad1 [0]uint32
  4140. F_S6_u8 [16]uint8
  4141. }
  4142. }
  4143. Fsin6_scope_id uint32
  4144. F__sin6_src_id uint32
  4145. } /* in.h:424:1 */
  4146. // Macros for accessing the traffic class and flow label fields from
  4147. // sin6_flowinfo.
  4148. // These are designed to be applied to a 32-bit value.
  4149. // masks
  4150. // Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
  4151. // use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
  4152. // only. They need to be different for User/Kernel versions because union
  4153. // component data structure is defined differently (it is identical at
  4154. // binary representation level).
  4155. //
  4156. // const struct in6_addr IN6ADDR_ANY_INIT;
  4157. // const struct in6_addr IN6ADDR_LOOPBACK_INIT;
  4158. // RFC 2553 specifies the following macros. Their type is defined
  4159. // as "int" in the RFC but they only have boolean significance
  4160. // (zero or non-zero). For the purposes of our comment notation,
  4161. // we assume a hypothetical type "bool" defined as follows to
  4162. // write the prototypes assumed for macros in our comments better.
  4163. //
  4164. // typedef int bool;
  4165. // IN6 macros used to test for special IPv6 addresses
  4166. // (Mostly from spec)
  4167. //
  4168. // bool IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
  4169. // bool IN6_IS_ADDR_LOOPBACK (const struct in6_addr *);
  4170. // bool IN6_IS_ADDR_MULTICAST (const struct in6_addr *);
  4171. // bool IN6_IS_ADDR_LINKLOCAL (const struct in6_addr *);
  4172. // bool IN6_IS_ADDR_SITELOCAL (const struct in6_addr *);
  4173. // bool IN6_IS_ADDR_V4MAPPED (const struct in6_addr *);
  4174. // bool IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
  4175. // bool IN6_IS_ADDR_V4COMPAT (const struct in6_addr *);
  4176. // bool IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
  4177. // bool IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
  4178. // bool IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
  4179. // bool IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
  4180. // bool IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
  4181. // bool IN6_IS_ADDR_MC_GLOBAL (const struct in6_addr *);
  4182. // bool IN6_IS_ADDR_6TO4 (const struct in6_addr *); -- Not from RFC2553
  4183. // bool IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
  4184. // const struct in6_addr *); -- Not from RFC2553
  4185. // bool IN6_IS_ADDR_LINKSCOPE (const struct in6addr *); -- Not from RFC2553
  4186. // IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
  4187. // Note: This macro is currently NOT defined in RFC2553 specification
  4188. // and not a standard macro that portable applications should use.
  4189. // Exclude loopback and unspecified address
  4190. // Note:
  4191. // IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
  4192. // specification and not a standard macro that portable applications
  4193. // should use.
  4194. // The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
  4195. // RFC, and shouldn't be used by portable applications. It is used to see
  4196. // if an address is a solicited-node multicast address, which is prefixed
  4197. // with ff02:0:0:0:0:1:ff00::/104.
  4198. // Macros to a) test for 6to4 IPv6 address, and b) to test if two
  4199. // 6to4 addresses have the same /48 prefix, and, hence, are from the
  4200. // same 6to4 site.
  4201. // IN6_IS_ADDR_LINKSCOPE
  4202. // Identifies an address as being either link-local, link-local multicast or
  4203. // node-local multicast. All types of addresses are considered to be unique
  4204. // within the scope of a given link.
  4205. // Useful utility macros for operations with IPv6 addresses
  4206. // Note: These macros are NOT defined in the RFC2553 or any other
  4207. // standard specification and are not standard macros that portable
  4208. // applications should use.
  4209. // IN6_V4MAPPED_TO_INADDR
  4210. // IN6_V4MAPPED_TO_IPADDR
  4211. // Assign a IPv4-Mapped IPv6 address to an IPv4 address.
  4212. // Note: These macros are NOT defined in RFC2553 or any other standard
  4213. // specification and are not macros that portable applications should
  4214. // use.
  4215. //
  4216. // void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
  4217. // void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
  4218. //
  4219. // IN6_INADDR_TO_V4MAPPED
  4220. // IN6_IPADDR_TO_V4MAPPED
  4221. // Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
  4222. // address.
  4223. // Note: These macros are NOT defined in RFC2553 or any other standard
  4224. // specification and are not macros that portable applications should
  4225. // use.
  4226. //
  4227. // void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
  4228. // void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
  4229. //
  4230. // IN6_6TO4_TO_V4ADDR
  4231. // Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
  4232. // address.
  4233. // Note: This macro is NOT defined in RFC2553 or any other standard
  4234. // specification and is not a macro that portable applications should
  4235. // use.
  4236. // Note: we don't use the IPADDR form of the macro because we need
  4237. // to do a bytewise copy; the V4ADDR in the 6to4 address is not
  4238. // 32-bit aligned.
  4239. //
  4240. // void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
  4241. //
  4242. // IN6_V4ADDR_TO_6TO4
  4243. // Given an IPv4 address and an IPv6 address for output, a 6to4 address
  4244. // will be created from the IPv4 Address.
  4245. // Note: This method for creating 6to4 addresses is not standardized
  4246. // outside of Solaris. The newly created 6to4 address will be of the form
  4247. // 2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
  4248. // HOSTID will equal 1.
  4249. //
  4250. // void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
  4251. //
  4252. // IN6_ARE_ADDR_EQUAL (defined in RFC2292)
  4253. // Compares if IPv6 addresses are equal.
  4254. // Note: Compares in order of high likelyhood of a miss so we minimize
  4255. // compares. (Current heuristic order, compare in reverse order of
  4256. // uint32_t units)
  4257. //
  4258. // bool IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
  4259. // const struct in6_addr *);
  4260. // IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
  4261. // Compares if prefixed parts of IPv6 addresses are equal.
  4262. //
  4263. // uint32_t IN6_MASK_FROM_PREFIX(int, int);
  4264. // bool IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
  4265. // const struct in6_addr *,
  4266. // int);
  4267. // Options for use with [gs]etsockopt at the IP level.
  4268. //
  4269. // Note: Some of the IP_ namespace has conflict with and
  4270. // and is exposed through <xti.h>. (It also requires exposing
  4271. // options not implemented). The options with potential
  4272. // for conflicts use #ifndef guards.
  4273. // IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
  4274. // is used to differentiate b/w the two.
  4275. // Different preferences that can be requested from IPSEC protocols.
  4276. // This can be used with the setsockopt() call to set per socket security
  4277. // options. When the application uses per-socket API, we will reflect
  4278. // the request on both outbound and inbound packets.
  4279. type Ipsec_req = struct {
  4280. Fipsr_ah_req uint32
  4281. Fipsr_esp_req uint32
  4282. Fipsr_self_encap_req uint32
  4283. Fipsr_auth_alg uint8
  4284. Fipsr_esp_alg uint8
  4285. Fipsr_esp_auth_alg uint8
  4286. F__ccgo_pad1 [1]byte
  4287. } /* in.h:950:9 */
  4288. // Macros for accessing the traffic class and flow label fields from
  4289. // sin6_flowinfo.
  4290. // These are designed to be applied to a 32-bit value.
  4291. // masks
  4292. // Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for
  4293. // use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t)
  4294. // only. They need to be different for User/Kernel versions because union
  4295. // component data structure is defined differently (it is identical at
  4296. // binary representation level).
  4297. //
  4298. // const struct in6_addr IN6ADDR_ANY_INIT;
  4299. // const struct in6_addr IN6ADDR_LOOPBACK_INIT;
  4300. // RFC 2553 specifies the following macros. Their type is defined
  4301. // as "int" in the RFC but they only have boolean significance
  4302. // (zero or non-zero). For the purposes of our comment notation,
  4303. // we assume a hypothetical type "bool" defined as follows to
  4304. // write the prototypes assumed for macros in our comments better.
  4305. //
  4306. // typedef int bool;
  4307. // IN6 macros used to test for special IPv6 addresses
  4308. // (Mostly from spec)
  4309. //
  4310. // bool IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
  4311. // bool IN6_IS_ADDR_LOOPBACK (const struct in6_addr *);
  4312. // bool IN6_IS_ADDR_MULTICAST (const struct in6_addr *);
  4313. // bool IN6_IS_ADDR_LINKLOCAL (const struct in6_addr *);
  4314. // bool IN6_IS_ADDR_SITELOCAL (const struct in6_addr *);
  4315. // bool IN6_IS_ADDR_V4MAPPED (const struct in6_addr *);
  4316. // bool IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553
  4317. // bool IN6_IS_ADDR_V4COMPAT (const struct in6_addr *);
  4318. // bool IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553
  4319. // bool IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
  4320. // bool IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
  4321. // bool IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
  4322. // bool IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
  4323. // bool IN6_IS_ADDR_MC_GLOBAL (const struct in6_addr *);
  4324. // bool IN6_IS_ADDR_6TO4 (const struct in6_addr *); -- Not from RFC2553
  4325. // bool IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *,
  4326. // const struct in6_addr *); -- Not from RFC2553
  4327. // bool IN6_IS_ADDR_LINKSCOPE (const struct in6addr *); -- Not from RFC2553
  4328. // IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY
  4329. // Note: This macro is currently NOT defined in RFC2553 specification
  4330. // and not a standard macro that portable applications should use.
  4331. // Exclude loopback and unspecified address
  4332. // Note:
  4333. // IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553
  4334. // specification and not a standard macro that portable applications
  4335. // should use.
  4336. // The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or
  4337. // RFC, and shouldn't be used by portable applications. It is used to see
  4338. // if an address is a solicited-node multicast address, which is prefixed
  4339. // with ff02:0:0:0:0:1:ff00::/104.
  4340. // Macros to a) test for 6to4 IPv6 address, and b) to test if two
  4341. // 6to4 addresses have the same /48 prefix, and, hence, are from the
  4342. // same 6to4 site.
  4343. // IN6_IS_ADDR_LINKSCOPE
  4344. // Identifies an address as being either link-local, link-local multicast or
  4345. // node-local multicast. All types of addresses are considered to be unique
  4346. // within the scope of a given link.
  4347. // Useful utility macros for operations with IPv6 addresses
  4348. // Note: These macros are NOT defined in the RFC2553 or any other
  4349. // standard specification and are not standard macros that portable
  4350. // applications should use.
  4351. // IN6_V4MAPPED_TO_INADDR
  4352. // IN6_V4MAPPED_TO_IPADDR
  4353. // Assign a IPv4-Mapped IPv6 address to an IPv4 address.
  4354. // Note: These macros are NOT defined in RFC2553 or any other standard
  4355. // specification and are not macros that portable applications should
  4356. // use.
  4357. //
  4358. // void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4);
  4359. // void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4);
  4360. //
  4361. // IN6_INADDR_TO_V4MAPPED
  4362. // IN6_IPADDR_TO_V4MAPPED
  4363. // Assign a IPv4 address address to an IPv6 address as a IPv4-mapped
  4364. // address.
  4365. // Note: These macros are NOT defined in RFC2553 or any other standard
  4366. // specification and are not macros that portable applications should
  4367. // use.
  4368. //
  4369. // void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6);
  4370. // void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6);
  4371. //
  4372. // IN6_6TO4_TO_V4ADDR
  4373. // Extract the embedded IPv4 address from the prefix to a 6to4 IPv6
  4374. // address.
  4375. // Note: This macro is NOT defined in RFC2553 or any other standard
  4376. // specification and is not a macro that portable applications should
  4377. // use.
  4378. // Note: we don't use the IPADDR form of the macro because we need
  4379. // to do a bytewise copy; the V4ADDR in the 6to4 address is not
  4380. // 32-bit aligned.
  4381. //
  4382. // void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4);
  4383. //
  4384. // IN6_V4ADDR_TO_6TO4
  4385. // Given an IPv4 address and an IPv6 address for output, a 6to4 address
  4386. // will be created from the IPv4 Address.
  4387. // Note: This method for creating 6to4 addresses is not standardized
  4388. // outside of Solaris. The newly created 6to4 address will be of the form
  4389. // 2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and
  4390. // HOSTID will equal 1.
  4391. //
  4392. // void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6)
  4393. //
  4394. // IN6_ARE_ADDR_EQUAL (defined in RFC2292)
  4395. // Compares if IPv6 addresses are equal.
  4396. // Note: Compares in order of high likelyhood of a miss so we minimize
  4397. // compares. (Current heuristic order, compare in reverse order of
  4398. // uint32_t units)
  4399. //
  4400. // bool IN6_ARE_ADDR_EQUAL(const struct in6_addr *,
  4401. // const struct in6_addr *);
  4402. // IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs)
  4403. // Compares if prefixed parts of IPv6 addresses are equal.
  4404. //
  4405. // uint32_t IN6_MASK_FROM_PREFIX(int, int);
  4406. // bool IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *,
  4407. // const struct in6_addr *,
  4408. // int);
  4409. // Options for use with [gs]etsockopt at the IP level.
  4410. //
  4411. // Note: Some of the IP_ namespace has conflict with and
  4412. // and is exposed through <xti.h>. (It also requires exposing
  4413. // options not implemented). The options with potential
  4414. // for conflicts use #ifndef guards.
  4415. // IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in
  4416. // is used to differentiate b/w the two.
  4417. // Different preferences that can be requested from IPSEC protocols.
  4418. // This can be used with the setsockopt() call to set per socket security
  4419. // options. When the application uses per-socket API, we will reflect
  4420. // the request on both outbound and inbound packets.
  4421. type Ipsec_req_t = Ipsec_req /* in.h:957:3 */
  4422. // MCAST_* options are protocol-independent. The actual definitions
  4423. // are with the v6 options below; this comment is here to note the
  4424. // namespace usage.
  4425. //
  4426. // #define MCAST_JOIN_GROUP 0x29
  4427. // #define MCAST_LEAVE_GROUP 0x2a
  4428. // #define MCAST_BLOCK_SOURCE 0x2b
  4429. // #define MCAST_UNBLOCK_SOURCE 0x2c
  4430. // #define MCAST_JOIN_SOURCE_GROUP 0x2d
  4431. // #define MCAST_LEAVE_SOURCE_GROUP 0x2e
  4432. // SunOS private (potentially not portable) IP_ option names
  4433. // can be reused 0x44
  4434. // Option values and names (when !_XPG5) shared with <xti_inet.h>
  4435. // The following option values are reserved by <xti_inet.h>
  4436. //
  4437. // T_IP_OPTIONS 0x107 - IP per-packet options
  4438. // T_IP_TOS 0x108 - IP per packet type of service
  4439. // Default value constants for multicast attributes controlled by
  4440. // IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options.
  4441. // Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
  4442. type Ip_mreq = struct {
  4443. Fimr_multiaddr struct {
  4444. FS_un struct {
  4445. F__ccgo_pad1 [0]uint32
  4446. FS_un_b struct {
  4447. Fs_b1 uint8
  4448. Fs_b2 uint8
  4449. Fs_b3 uint8
  4450. Fs_b4 uint8
  4451. }
  4452. }
  4453. }
  4454. Fimr_interface struct {
  4455. FS_un struct {
  4456. F__ccgo_pad1 [0]uint32
  4457. FS_un_b struct {
  4458. Fs_b1 uint8
  4459. Fs_b2 uint8
  4460. Fs_b3 uint8
  4461. Fs_b4 uint8
  4462. }
  4463. }
  4464. }
  4465. } /* in.h:1015:1 */
  4466. // Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
  4467. // IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP.
  4468. type Ip_mreq_source = struct {
  4469. Fimr_multiaddr struct {
  4470. FS_un struct {
  4471. F__ccgo_pad1 [0]uint32
  4472. FS_un_b struct {
  4473. Fs_b1 uint8
  4474. Fs_b2 uint8
  4475. Fs_b3 uint8
  4476. Fs_b4 uint8
  4477. }
  4478. }
  4479. }
  4480. Fimr_sourceaddr struct {
  4481. FS_un struct {
  4482. F__ccgo_pad1 [0]uint32
  4483. FS_un_b struct {
  4484. Fs_b1 uint8
  4485. Fs_b2 uint8
  4486. Fs_b3 uint8
  4487. Fs_b4 uint8
  4488. }
  4489. }
  4490. }
  4491. Fimr_interface struct {
  4492. FS_un struct {
  4493. F__ccgo_pad1 [0]uint32
  4494. FS_un_b struct {
  4495. Fs_b1 uint8
  4496. Fs_b2 uint8
  4497. Fs_b3 uint8
  4498. Fs_b4 uint8
  4499. }
  4500. }
  4501. }
  4502. } /* in.h:1024:1 */
  4503. // Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on
  4504. // IPv6 addresses.
  4505. type Ipv6_mreq = struct {
  4506. Fipv6mr_multiaddr struct {
  4507. F_S6_un struct {
  4508. F__ccgo_pad1 [0]uint32
  4509. F_S6_u8 [16]uint8
  4510. }
  4511. }
  4512. Fipv6mr_interface uint32
  4513. } /* in.h:1034:1 */
  4514. // Use #pragma pack() construct to force 32-bit alignment on amd64.
  4515. // This is needed to keep the structure size and offsets consistent
  4516. // between a 32-bit app and the 64-bit amd64 kernel in structures
  4517. // where 64-bit alignment would create gaps (in this case, structures
  4518. // which have a uint32_t followed by a struct sockaddr_storage).
  4519. // Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP.
  4520. type Group_req = struct {
  4521. Fgr_interface uint32
  4522. F__ccgo_pad1 [4]byte
  4523. Fgr_group struct {
  4524. Fss_family uint16
  4525. F_ss_pad1 [6]int8
  4526. F_ss_align float64
  4527. F_ss_pad2 [240]int8
  4528. }
  4529. } /* in.h:1053:1 */
  4530. // Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE,
  4531. // MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP.
  4532. type Group_source_req = struct {
  4533. Fgsr_interface uint32
  4534. F__ccgo_pad1 [4]byte
  4535. Fgsr_group struct {
  4536. Fss_family uint16
  4537. F_ss_pad1 [6]int8
  4538. F_ss_align float64
  4539. F_ss_pad2 [240]int8
  4540. }
  4541. Fgsr_source struct {
  4542. Fss_family uint16
  4543. F_ss_pad1 [6]int8
  4544. F_ss_align float64
  4545. F_ss_pad2 [240]int8
  4546. }
  4547. } /* in.h:1062:1 */
  4548. // Argument for SIOC[GS]MSFILTER ioctls
  4549. type Group_filter = struct {
  4550. Fgf_interface uint32
  4551. F__ccgo_pad1 [4]byte
  4552. Fgf_group struct {
  4553. Fss_family uint16
  4554. F_ss_pad1 [6]int8
  4555. F_ss_align float64
  4556. F_ss_pad2 [240]int8
  4557. }
  4558. Fgf_fmode uint32
  4559. Fgf_numsrc uint32
  4560. Fgf_slist [1]struct {
  4561. Fss_family uint16
  4562. F_ss_pad1 [6]int8
  4563. F_ss_align float64
  4564. F_ss_pad2 [240]int8
  4565. }
  4566. } /* in.h:1071:1 */
  4567. // Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific)
  4568. type Ip_msfilter = struct {
  4569. Fimsf_multiaddr struct {
  4570. FS_un struct {
  4571. F__ccgo_pad1 [0]uint32
  4572. FS_un_b struct {
  4573. Fs_b1 uint8
  4574. Fs_b2 uint8
  4575. Fs_b3 uint8
  4576. Fs_b4 uint8
  4577. }
  4578. }
  4579. }
  4580. Fimsf_interface struct {
  4581. FS_un struct {
  4582. F__ccgo_pad1 [0]uint32
  4583. FS_un_b struct {
  4584. Fs_b1 uint8
  4585. Fs_b2 uint8
  4586. Fs_b3 uint8
  4587. Fs_b4 uint8
  4588. }
  4589. }
  4590. }
  4591. Fimsf_fmode uint32
  4592. Fimsf_numsrc uint32
  4593. Fimsf_slist [1]struct {
  4594. FS_un struct {
  4595. F__ccgo_pad1 [0]uint32
  4596. FS_un_b struct {
  4597. Fs_b1 uint8
  4598. Fs_b2 uint8
  4599. Fs_b3 uint8
  4600. Fs_b4 uint8
  4601. }
  4602. }
  4603. }
  4604. } /* in.h:1090:1 */
  4605. // Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
  4606. // Argument struct for IP_PKTINFO option
  4607. type In_pktinfo = struct {
  4608. Fipi_ifindex uint32
  4609. Fipi_spec_dst struct {
  4610. FS_un struct {
  4611. F__ccgo_pad1 [0]uint32
  4612. FS_un_b struct {
  4613. Fs_b1 uint8
  4614. Fs_b2 uint8
  4615. Fs_b3 uint8
  4616. Fs_b4 uint8
  4617. }
  4618. }
  4619. }
  4620. Fipi_addr struct {
  4621. FS_un struct {
  4622. F__ccgo_pad1 [0]uint32
  4623. FS_un_b struct {
  4624. Fs_b1 uint8
  4625. Fs_b2 uint8
  4626. Fs_b3 uint8
  4627. Fs_b4 uint8
  4628. }
  4629. }
  4630. }
  4631. } /* in.h:1127:9 */
  4632. // Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter()
  4633. // Argument struct for IP_PKTINFO option
  4634. type In_pktinfo_t = In_pktinfo /* in.h:1131:3 */
  4635. // Argument struct for IPV6_PKTINFO option
  4636. type In6_pktinfo = struct {
  4637. Fipi6_addr struct {
  4638. F_S6_un struct {
  4639. F__ccgo_pad1 [0]uint32
  4640. F_S6_u8 [16]uint8
  4641. }
  4642. }
  4643. Fipi6_ifindex uint32
  4644. } /* in.h:1136:1 */
  4645. // Argument struct for IPV6_MTUINFO option
  4646. type Ip6_mtuinfo = struct {
  4647. Fip6m_addr struct {
  4648. Fsin6_family uint16
  4649. Fsin6_port uint16
  4650. Fsin6_flowinfo uint32
  4651. Fsin6_addr struct {
  4652. F_S6_un struct {
  4653. F__ccgo_pad1 [0]uint32
  4654. F_S6_u8 [16]uint8
  4655. }
  4656. }
  4657. Fsin6_scope_id uint32
  4658. F__sin6_src_id uint32
  4659. }
  4660. Fip6m_mtu uint32
  4661. } /* in.h:1144:1 */
  4662. // Argument structure for IP_ADD_PROXY_ADDR.
  4663. // Note that this is an unstable, experimental interface. It may change
  4664. // later. Don't use it unless you know what it is.
  4665. type In_prefix_t = struct {
  4666. Fin_prefix_addr In_addr
  4667. Fin_prefix_len uint32
  4668. } /* in.h:1183:3 */
  4669. // Definitions related to sockets: types, address families, options.
  4670. // Types
  4671. // Flags for socket() and accept4()
  4672. // Option flags per-socket.
  4673. // Socket options are passed using a signed integer, but it is also rare
  4674. // for more than one to ever be passed at the same time with setsockopt
  4675. // and only one at a time can be retrieved with getsockopt.
  4676. //
  4677. // Since the lower numbers cannot be renumbered for compatibility reasons,
  4678. // it would seem that we need to start a new number space (0x40000000 -
  4679. // 0x7fffffff) for those that don't need to be stored as a bit flag
  4680. // somewhere. This limits the flag options to 30 but that seems to be
  4681. // plenty, anyway. 0x40000000 is reserved for future use.
  4682. // N.B.: The following definition is present only for compatibility
  4683. // with release 3.0. It will disappear in later releases.
  4684. // Additional options, not kept in so_options.
  4685. // "Socket"-level control message types:
  4686. // Socket filter options
  4687. // Structure returned by FIL_LIST
  4688. type Fil_info = struct {
  4689. Ffi_flags int32
  4690. Ffi_pos int32
  4691. Ffi_name [32]int8
  4692. } /* socket.h:225:1 */
  4693. // Structure used for manipulating linger option.
  4694. type Linger = struct {
  4695. Fl_onoff int32
  4696. Fl_linger int32
  4697. } /* socket.h:254:1 */
  4698. // Levels for (get/set)sockopt() that don't apply to a specific protocol.
  4699. // Address families.
  4700. //
  4701. // Some of these constant names are copied for the DTrace IP provider in
  4702. // usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept
  4703. // in sync.
  4704. // Protocol families, same as address families for now.
  4705. // Maximum queue length specifiable by listen.
  4706. // Message header for recvmsg and sendmsg calls.
  4707. type Msghdr = struct {
  4708. Fmsg_name uintptr
  4709. Fmsg_namelen uint32
  4710. F__ccgo_pad1 [4]byte
  4711. Fmsg_iov uintptr
  4712. Fmsg_iovlen int32
  4713. F__ccgo_pad2 [4]byte
  4714. Fmsg_accrights uintptr
  4715. Fmsg_accrightslen int32
  4716. F__ccgo_pad3 [4]byte
  4717. } /* socket.h:365:1 */
  4718. // with left over data
  4719. // Obsolete but kept for compilation compatibility. Use IOV_MAX.
  4720. // Added for XPGv2 compliance
  4721. type Cmsghdr = struct {
  4722. Fcmsg_len uint32
  4723. Fcmsg_level int32
  4724. Fcmsg_type int32
  4725. } /* socket.h:462:1 */
  4726. var _ int8 /* gen.c:2:13: */