poll_illumos_amd64.go 174 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081
  1. // Code generated by 'ccgo poll/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 poll/poll_illumos_amd64.go -pkgname poll', DO NOT EDIT.
  2. package poll
  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. BUS_ADRALN = 1 // machsig.h:109:1:
  15. BUS_ADRERR = 2 // machsig.h:110:1:
  16. BUS_OBJERR = 3 // machsig.h:112:1:
  17. CLD_CONTINUED = 6 // siginfo.h:169:1:
  18. CLD_DUMPED = 3 // siginfo.h:166:1:
  19. CLD_EXITED = 1 // siginfo.h:164:1:
  20. CLD_KILLED = 2 // siginfo.h:165:1:
  21. CLD_STOPPED = 5 // siginfo.h:168:1:
  22. CLD_TRAPPED = 4 // siginfo.h:167:1:
  23. CLOCKS_PER_SEC = 1000000 // time_iso.h:78:1:
  24. CLOCK_HIGHRES = 4 // time_impl.h:126:1:
  25. CLOCK_MONOTONIC = 4 // time_impl.h:124:1:
  26. CLOCK_PROCESS_CPUTIME_ID = 5 // time_impl.h:125:1:
  27. CLOCK_PROF = 2 // time_impl.h:127:1:
  28. CLOCK_REALTIME = 3 // time_impl.h:123:1:
  29. CLOCK_THREAD_CPUTIME_ID = 2 // time_impl.h:122:1:
  30. CLOCK_VIRTUAL = 1 // time_impl.h:121:1:
  31. DST_AUST = 2 // time.h:115:1:
  32. DST_AUSTALT = 10 // time.h:123:1:
  33. DST_CAN = 6 // time.h:119:1:
  34. DST_EET = 5 // time.h:118:1:
  35. DST_GB = 7 // time.h:120:1:
  36. DST_MET = 4 // time.h:117:1:
  37. DST_NONE = 0 // time.h:113:1:
  38. DST_RUM = 8 // time.h:121:1:
  39. DST_TUR = 9 // time.h:122:1:
  40. DST_USA = 1 // time.h:114:1:
  41. DST_WET = 3 // time.h:116:1:
  42. EMT_CPCOVF = 1 // machsig.h:74:1:
  43. FC_ALIGN = 0x2 // faultcode.h:54:1:
  44. FC_HWERR = 0x1 // faultcode.h:53:1:
  45. FC_NOMAP = 0x5 // faultcode.h:57:1:
  46. FC_NOSUPPORT = 0x6 // faultcode.h:58:1:
  47. FC_OBJERR = 0x3 // faultcode.h:55:1:
  48. FC_PROT = 0x4 // faultcode.h:56:1:
  49. FD_SETSIZE = 65536 // select.h:88:1:
  50. FPE_FLTDEN = 9 // machsig.h:90:1:
  51. FPE_FLTDIV = 3 // machsig.h:84:1:
  52. FPE_FLTINV = 7 // machsig.h:88:1:
  53. FPE_FLTOVF = 4 // machsig.h:85:1:
  54. FPE_FLTRES = 6 // machsig.h:87:1:
  55. FPE_FLTSUB = 8 // machsig.h:89:1:
  56. FPE_FLTUND = 5 // machsig.h:86:1:
  57. FPE_INTDIV = 1 // machsig.h:82:1:
  58. FPE_INTOVF = 2 // machsig.h:83:1:
  59. ILL_BADSTK = 8 // machsig.h:64:1:
  60. ILL_COPROC = 7 // machsig.h:63:1:
  61. ILL_ILLADR = 3 // machsig.h:59:1:
  62. ILL_ILLOPC = 1 // machsig.h:57:1:
  63. ILL_ILLOPN = 2 // machsig.h:58:1:
  64. ILL_ILLTRP = 4 // machsig.h:60:1:
  65. ILL_PRVOPC = 5 // machsig.h:61:1:
  66. ILL_PRVREG = 6 // machsig.h:62:1:
  67. ITIMER_PROF = 2 // time.h:201:1:
  68. ITIMER_REAL = 0 // time.h:199:1:
  69. ITIMER_REALPROF = 3 // time.h:204:1:
  70. ITIMER_VIRTUAL = 1 // time.h:200:1:
  71. MAXSIG = 74 // signal.h:163:1:
  72. MICROSEC = 1000000 // time.h:246:1:
  73. MILLISEC = 1000 // time.h:245:1:
  74. MINSIGSTKSZ = 2048 // signal.h:166:1:
  75. NANOSEC = 1000000000 // time.h:247:1:
  76. NBBY = 8 // select.h:103:1:
  77. NSIG = 75 // signal.h:162:1:
  78. NSIGBUS = 3 // machsig.h:115:1:
  79. NSIGCLD = 6 // siginfo.h:172:1:
  80. NSIGEMT = 1 // machsig.h:75:1:
  81. NSIGFPE = 9 // machsig.h:92:1:
  82. NSIGILL = 8 // machsig.h:66:1:
  83. NSIGPOLL = 6 // siginfo.h:187:1:
  84. NSIGPROF = 1 // siginfo.h:198:1:
  85. NSIGSEGV = 2 // machsig.h:102:1:
  86. NSIGTRAP = 6 // siginfo.h:157:1:
  87. POLLERR = 0x0008 // poll.h:74:1:
  88. POLLET = 0x2000 // poll.h:84:1:
  89. POLLHUP = 0x0010 // poll.h:75:1:
  90. POLLIN = 0x0001 // poll.h:59:1:
  91. POLLNORM = 64 // poll.h:68:1:
  92. POLLNVAL = 0x0020 // poll.h:76:1:
  93. POLLONESHOT = 0x1000 // poll.h:83:1:
  94. POLLOUT = 0x0004 // poll.h:61:1:
  95. POLLPRI = 0x0002 // poll.h:60:1:
  96. POLLRDBAND = 0x0080 // poll.h:64:1:
  97. POLLRDHUP = 0x4000 // poll.h:66:1:
  98. POLLRDNORM = 0x0040 // poll.h:62:1:
  99. POLLREMOVE = 0x0800 // poll.h:82:1:
  100. POLLWRBAND = 0x0100 // poll.h:65:1:
  101. POLLWRNORM = 4 // poll.h:63:1:
  102. POLL_ERR = 4 // siginfo.h:182:1:
  103. POLL_HUP = 6 // siginfo.h:184:1:
  104. POLL_IN = 1 // siginfo.h:179:1:
  105. POLL_MSG = 3 // siginfo.h:181:1:
  106. POLL_OUT = 2 // siginfo.h:180:1:
  107. POLL_PRI = 5 // siginfo.h:183:1:
  108. PROF_SIG = 1 // siginfo.h:197:1:
  109. P_INITPGID = 0 // procset.h:50:1:
  110. P_INITPID = 1 // procset.h:48:1:
  111. P_INITUID = 0 // procset.h:49:1:
  112. P_MYID = -1 // types.h:632:1:
  113. REG_LABEL_BP = 2 // machtypes.h:44:1:
  114. REG_LABEL_MAX = 8 // machtypes.h:51:1:
  115. REG_LABEL_PC = 0 // machtypes.h:42:1:
  116. REG_LABEL_R12 = 4 // machtypes.h:47:1:
  117. REG_LABEL_R13 = 5 // machtypes.h:48:1:
  118. REG_LABEL_R14 = 6 // machtypes.h:49:1:
  119. REG_LABEL_R15 = 7 // machtypes.h:50:1:
  120. REG_LABEL_RBX = 3 // machtypes.h:46:1:
  121. REG_LABEL_SP = 1 // machtypes.h:43:1:
  122. SA_NOCLDSTOP = 0x00020000 // signal.h:128:1:
  123. SA_NOCLDWAIT = 0x00010000 // signal.h:155:1:
  124. SA_NODEFER = 0x00000010 // signal.h:152:1:
  125. SA_ONSTACK = 0x00000001 // signal.h:138:1:
  126. SA_RESETHAND = 0x00000002 // signal.h:139:1:
  127. SA_RESTART = 0x00000004 // signal.h:140:1:
  128. SA_SIGINFO = 0x00000008 // signal.h:146:1:
  129. SEC = 1 // time.h:244:1:
  130. SEGV_ACCERR = 2 // machsig.h:100:1:
  131. SEGV_MAPERR = 1 // machsig.h:99:1:
  132. SIG2STR_MAX = 32 // signal.h:95:1:
  133. SIGABRT = 6 // signal_iso.h:58:1:
  134. SIGALRM = 14 // signal_iso.h:66:1:
  135. SIGBUS = 10 // signal_iso.h:62:1:
  136. SIGCANCEL = 36 // signal_iso.h:90:1:
  137. SIGCHLD = 18 // signal_iso.h:71:1:
  138. SIGCLD = 18 // signal_iso.h:70:1:
  139. SIGCONT = 25 // signal_iso.h:79:1:
  140. SIGEMT = 7 // signal_iso.h:59:1:
  141. SIGEV_NONE = 1 // siginfo.h:95:1:
  142. SIGEV_PORT = 4 // siginfo.h:98:1:
  143. SIGEV_SIGNAL = 2 // siginfo.h:96:1:
  144. SIGEV_THREAD = 3 // siginfo.h:97:1:
  145. SIGFPE = 8 // signal_iso.h:60:1:
  146. SIGFREEZE = 34 // signal_iso.h:88:1:
  147. SIGHUP = 1 // signal_iso.h:52:1:
  148. SIGILL = 4 // signal_iso.h:55:1:
  149. SIGINFO = 41 // signal_iso.h:95:1:
  150. SIGINT = 2 // signal_iso.h:53:1:
  151. SIGIO = 22 // signal_iso.h:76:1:
  152. SIGIOT = 6 // signal_iso.h:57:1:
  153. SIGJVM1 = 39 // signal_iso.h:93:1:
  154. SIGJVM2 = 40 // signal_iso.h:94:1:
  155. SIGKILL = 9 // signal_iso.h:61:1:
  156. SIGLOST = 37 // signal_iso.h:91:1:
  157. SIGLWP = 33 // signal_iso.h:87:1:
  158. SIGPIPE = 13 // signal_iso.h:65:1:
  159. SIGPOLL = 22 // signal_iso.h:75:1:
  160. SIGPROF = 29 // signal_iso.h:83:1:
  161. SIGPWR = 19 // signal_iso.h:72:1:
  162. SIGQUIT = 3 // signal_iso.h:54:1:
  163. SIGSEGV = 11 // signal_iso.h:63:1:
  164. SIGSTKSZ = 8192 // signal.h:167:1:
  165. SIGSTOP = 23 // signal_iso.h:77:1:
  166. SIGSYS = 12 // signal_iso.h:64:1:
  167. SIGTERM = 15 // signal_iso.h:67:1:
  168. SIGTHAW = 35 // signal_iso.h:89:1:
  169. SIGTRAP = 5 // signal_iso.h:56:1:
  170. SIGTSTP = 24 // signal_iso.h:78:1:
  171. SIGTTIN = 26 // signal_iso.h:80:1:
  172. SIGTTOU = 27 // signal_iso.h:81:1:
  173. SIGURG = 21 // signal_iso.h:74:1:
  174. SIGUSR1 = 16 // signal_iso.h:68:1:
  175. SIGUSR2 = 17 // signal_iso.h:69:1:
  176. SIGVTALRM = 28 // signal_iso.h:82:1:
  177. SIGWAITING = 32 // signal_iso.h:86:1:
  178. SIGWINCH = 20 // signal_iso.h:73:1:
  179. SIGXCPU = 30 // signal_iso.h:84:1:
  180. SIGXFSZ = 31 // signal_iso.h:85:1:
  181. SIGXRES = 38 // signal_iso.h:92:1:
  182. SIG_BLOCK = 1 // signal_iso.h:131:1:
  183. SIG_SETMASK = 3 // signal_iso.h:133:1:
  184. SIG_UNBLOCK = 2 // signal_iso.h:132:1:
  185. SI_ASYNCIO = -4 // siginfo.h:134:1:
  186. SI_DTRACE = 2050 // siginfo.h:128:1:
  187. SI_LWP = -1 // siginfo.h:131:1:
  188. SI_MAXSZ = 256 // siginfo.h:206:1:
  189. SI_MESGQ = -5 // siginfo.h:135:1:
  190. SI_NOINFO = 32767 // siginfo.h:127:1:
  191. SI_QUEUE = -2 // siginfo.h:132:1:
  192. SI_RCTL = 2049 // siginfo.h:129:1:
  193. SI_TIMER = -3 // siginfo.h:133:1:
  194. SI_USER = 0 // siginfo.h:130:1:
  195. SN_CANCEL = 2 // signal.h:226:1:
  196. SN_PROC = 1 // signal.h:225:1:
  197. SN_SEND = 3 // signal.h:227:1:
  198. SS_DISABLE = 0x00000002 // signal.h:170:1:
  199. SS_ONSTACK = 0x00000001 // signal.h:169:1:
  200. TIMER_ABSTIME = 0x1 // time_impl.h:134:1:
  201. TIMER_RELTIME = 0x0 // time_impl.h:133:1:
  202. TIME_UTC = 0x1 // time.h:306:1:
  203. TRAP_BRKPT = 1 // siginfo.h:150:1:
  204. TRAP_DTRACE = 6 // siginfo.h:155:1:
  205. TRAP_RWATCH = 3 // siginfo.h:152:1:
  206. TRAP_TRACE = 2 // siginfo.h:151:1:
  207. TRAP_WWATCH = 4 // siginfo.h:153:1:
  208. TRAP_XWATCH = 5 // siginfo.h:154:1:
  209. X_ACL_ACE_ENABLED = 0x2 // unistd.h:349:1:
  210. X_ACL_ACLENT_ENABLED = 0x1 // unistd.h:348:1:
  211. X_ALIGNMENT_REQUIRED = 1 // isa_defs.h:262:1:
  212. X_BIT_FIELDS_LTOH = 0 // isa_defs.h:245:1:
  213. X_BOOL_ALIGNMENT = 1 // isa_defs.h:248:1:
  214. X_CASE_INSENSITIVE = 0x2 // unistd.h:342:1:
  215. X_CASE_SENSITIVE = 0x1 // unistd.h:341:1:
  216. X_CHAR_ALIGNMENT = 1 // isa_defs.h:249:1:
  217. X_CHAR_IS_SIGNED = 0 // isa_defs.h:247:1:
  218. X_CLOCKID_T = 0 // types.h:568:1:
  219. X_CLOCK_T = 0 // time_iso.h:69:1:
  220. X_COND_MAGIC = 0x4356 // types.h:426:1:
  221. X_CS_LFS64_CFLAGS = 72 // unistd.h:61:1:
  222. X_CS_LFS64_LDFLAGS = 73 // unistd.h:62:1:
  223. X_CS_LFS64_LIBS = 74 // unistd.h:63:1:
  224. X_CS_LFS64_LINTFLAGS = 75 // unistd.h:64:1:
  225. X_CS_LFS_CFLAGS = 68 // unistd.h:56:1:
  226. X_CS_LFS_LDFLAGS = 69 // unistd.h:57:1:
  227. X_CS_LFS_LIBS = 70 // unistd.h:58:1:
  228. X_CS_LFS_LINTFLAGS = 71 // unistd.h:59:1:
  229. X_CS_PATH = 65 // unistd.h:50:1:
  230. X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 800 // unistd.h:85:1:
  231. X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 801 // unistd.h:86:1:
  232. X_CS_POSIX_V6_ILP32_OFF32_LIBS = 802 // unistd.h:87:1:
  233. X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 803 // unistd.h:88:1:
  234. X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 804 // unistd.h:89:1:
  235. X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 805 // unistd.h:90:1:
  236. X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 806 // unistd.h:91:1:
  237. X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 807 // unistd.h:92:1:
  238. X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 808 // unistd.h:93:1:
  239. X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 809 // unistd.h:94:1:
  240. X_CS_POSIX_V6_LP64_OFF64_LIBS = 810 // unistd.h:95:1:
  241. X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 811 // unistd.h:96:1:
  242. X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 812 // unistd.h:97:1:
  243. X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 813 // unistd.h:98:1:
  244. X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 814 // unistd.h:99:1:
  245. X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 815 // unistd.h:100:1:
  246. X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 816 // unistd.h:101:1:
  247. X_CS_XBS5_ILP32_OFF32_CFLAGS = 700 // unistd.h:67:1:
  248. X_CS_XBS5_ILP32_OFF32_LDFLAGS = 701 // unistd.h:68:1:
  249. X_CS_XBS5_ILP32_OFF32_LIBS = 702 // unistd.h:69:1:
  250. X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 703 // unistd.h:70:1:
  251. X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 705 // unistd.h:71:1:
  252. X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 706 // unistd.h:72:1:
  253. X_CS_XBS5_ILP32_OFFBIG_LIBS = 707 // unistd.h:73:1:
  254. X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 708 // unistd.h:74:1:
  255. X_CS_XBS5_LP64_OFF64_CFLAGS = 709 // unistd.h:75:1:
  256. X_CS_XBS5_LP64_OFF64_LDFLAGS = 710 // unistd.h:76:1:
  257. X_CS_XBS5_LP64_OFF64_LIBS = 711 // unistd.h:77:1:
  258. X_CS_XBS5_LP64_OFF64_LINTFLAGS = 712 // unistd.h:78:1:
  259. X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 713 // unistd.h:79:1:
  260. X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 714 // unistd.h:80:1:
  261. X_CS_XBS5_LPBIG_OFFBIG_LIBS = 715 // unistd.h:81:1:
  262. X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 716 // unistd.h:82:1:
  263. X_DMA_USES_PHYSADDR = 0 // isa_defs.h:281:1:
  264. X_DONT_USE_1275_GENERIC_NAMES = 0 // isa_defs.h:287:1:
  265. X_DOUBLE_ALIGNMENT = 8 // isa_defs.h:256:1:
  266. X_DOUBLE_COMPLEX_ALIGNMENT = 8 // isa_defs.h:257:1:
  267. X_DTRACE_VERSION = 1 // feature_tests.h:490:1:
  268. X_FILE_OFFSET_BITS = 64 // <builtin>:25:1:
  269. X_FIRMWARE_NEEDS_FDISK = 0 // isa_defs.h:282:1:
  270. X_FLOAT_ALIGNMENT = 4 // isa_defs.h:252:1:
  271. X_FLOAT_COMPLEX_ALIGNMENT = 4 // isa_defs.h:253:1:
  272. X_HAVE_CPUID_INSN = 0 // isa_defs.h:288:1:
  273. X_IEEE_754 = 0 // isa_defs.h:246:1:
  274. X_INT64_TYPE = 0 // int_types.h:82:1:
  275. X_INT_ALIGNMENT = 4 // isa_defs.h:251:1:
  276. X_ISO_CPP_14882_1998 = 0 // feature_tests.h:466:1:
  277. X_ISO_C_9899_1999 = 0 // feature_tests.h:472:1:
  278. X_ISO_C_9899_2011 = 0 // feature_tests.h:478:1:
  279. X_ISO_SIGNAL_ISO_H = 0 // signal_iso.h:46:1:
  280. X_ISO_TIME_ISO_H = 0 // time_iso.h:46:1:
  281. X_LARGEFILE64_SOURCE = 1 // feature_tests.h:231:1:
  282. X_LARGEFILE_SOURCE = 1 // feature_tests.h:235:1:
  283. X_LITTLE_ENDIAN = 0 // isa_defs.h:242:1:
  284. X_LOCALE_T = 0 // time.h:291:1:
  285. X_LONGLONG_TYPE = 0 // feature_tests.h:412:1:
  286. X_LONG_ALIGNMENT = 8 // isa_defs.h:254:1:
  287. X_LONG_DOUBLE_ALIGNMENT = 16 // isa_defs.h:258:1:
  288. X_LONG_DOUBLE_COMPLEX_ALIGNMENT = 16 // isa_defs.h:259:1:
  289. X_LONG_LONG_ALIGNMENT = 8 // isa_defs.h:255:1:
  290. X_LONG_LONG_ALIGNMENT_32 = 4 // isa_defs.h:268:1:
  291. X_LONG_LONG_LTOH = 0 // isa_defs.h:244:1:
  292. X_LP64 = 1 // <predefined>:286:1:
  293. X_MAX_ALIGNMENT = 16 // isa_defs.h:261:1:
  294. X_MULTI_DATAMODEL = 0 // isa_defs.h:279:1:
  295. X_MUTEX_MAGIC = 0x4d58 // types.h:424:1:
  296. X_NBBY = 8 // select.h:100:1:
  297. X_NORETURN_KYWD = 0 // feature_tests.h:448:1:
  298. X_OFF_T = 0 // types.h:142:1:
  299. X_PC_2_SYMLINKS = 19 // unistd.h:309:1:
  300. X_PC_ACCESS_FILTERING = 25 // unistd.h:315:1:
  301. X_PC_ACL_ENABLED = 20 // unistd.h:310:1:
  302. X_PC_ALLOC_SIZE_MIN = 13 // unistd.h:303:1:
  303. X_PC_ASYNC_IO = 10 // unistd.h:299:1:
  304. X_PC_CASE_BEHAVIOR = 22 // unistd.h:312:1:
  305. X_PC_CHOWN_RESTRICTED = 9 // unistd.h:297:1:
  306. X_PC_FILESIZEBITS = 67 // unistd.h:325:1:
  307. X_PC_LAST = 101 // unistd.h:336:1:
  308. X_PC_LINK_MAX = 1 // unistd.h:289:1:
  309. X_PC_MAX_CANON = 2 // unistd.h:290:1:
  310. X_PC_MAX_INPUT = 3 // unistd.h:291:1:
  311. X_PC_MIN_HOLE_SIZE = 21 // unistd.h:311:1:
  312. X_PC_NAME_MAX = 4 // unistd.h:292:1:
  313. X_PC_NO_TRUNC = 7 // unistd.h:295:1:
  314. X_PC_PATH_MAX = 5 // unistd.h:293:1:
  315. X_PC_PIPE_BUF = 6 // unistd.h:294:1:
  316. X_PC_PRIO_IO = 11 // unistd.h:300:1:
  317. X_PC_REC_INCR_XFER_SIZE = 14 // unistd.h:304:1:
  318. X_PC_REC_MAX_XFER_SIZE = 15 // unistd.h:305:1:
  319. X_PC_REC_MIN_XFER_SIZE = 16 // unistd.h:306:1:
  320. X_PC_REC_XFER_ALIGN = 17 // unistd.h:307:1:
  321. X_PC_SATTR_ENABLED = 23 // unistd.h:313:1:
  322. X_PC_SATTR_EXISTS = 24 // unistd.h:314:1:
  323. X_PC_SYMLINK_MAX = 18 // unistd.h:308:1:
  324. X_PC_SYNC_IO = 12 // unistd.h:301:1:
  325. X_PC_TIMESTAMP_RESOLUTION = 26 // unistd.h:317:1:
  326. X_PC_VDISABLE = 8 // unistd.h:296:1:
  327. X_PC_XATTR_ENABLED = 100 // unistd.h:330:1:
  328. X_PC_XATTR_EXISTS = 101 // unistd.h:331:1:
  329. X_POINTER_ALIGNMENT = 8 // isa_defs.h:260:1:
  330. X_POLL_H = 0 // poll.h:31:1:
  331. X_POSIX2_CHAR_TERM = 1 // unistd.h:391:1:
  332. X_POSIX2_C_BIND = 1 // unistd.h:401:1:
  333. X_POSIX2_C_DEV = 1 // unistd.h:402:1:
  334. X_POSIX2_C_VERSION = 199209 // unistd.h:376:1:
  335. X_POSIX2_FORT_RUN = 1 // unistd.h:403:1:
  336. X_POSIX2_LOCALEDEF = 1 // unistd.h:404:1:
  337. X_POSIX2_SW_DEV = 1 // unistd.h:405:1:
  338. X_POSIX2_UPE = 1 // unistd.h:406:1:
  339. X_POSIX2_VERSION = 199209 // unistd.h:363:1:
  340. X_POSIX_REGEXP = 1 // unistd.h:410:1:
  341. X_POSIX_SHELL = 1 // unistd.h:411:1:
  342. X_POSIX_VERSION = 199506 // unistd.h:355:1:
  343. X_PSM_MODULES = 0 // isa_defs.h:284:1:
  344. X_PTRDIFF_T = 0 // types.h:112:1:
  345. X_RESTRICT_KYWD = 0 // feature_tests.h:435:1:
  346. X_RTC_CONFIG = 0 // isa_defs.h:285:1:
  347. X_RWL_MAGIC = 0x5257 // types.h:427:1:
  348. X_SC_2_CHAR_TERM = 66 // unistd.h:175:1:
  349. X_SC_2_C_BIND = 45 // unistd.h:153:1:
  350. X_SC_2_C_DEV = 46 // unistd.h:154:1:
  351. X_SC_2_C_VERSION = 47 // unistd.h:155:1:
  352. X_SC_2_FORT_DEV = 48 // unistd.h:156:1:
  353. X_SC_2_FORT_RUN = 49 // unistd.h:157:1:
  354. X_SC_2_LOCALEDEF = 50 // unistd.h:158:1:
  355. X_SC_2_PBS = 724 // unistd.h:246:1:
  356. X_SC_2_PBS_ACCOUNTING = 725 // unistd.h:247:1:
  357. X_SC_2_PBS_CHECKPOINT = 726 // unistd.h:248:1:
  358. X_SC_2_PBS_LOCATE = 728 // unistd.h:249:1:
  359. X_SC_2_PBS_MESSAGE = 729 // unistd.h:250:1:
  360. X_SC_2_PBS_TRACK = 730 // unistd.h:251:1:
  361. X_SC_2_SW_DEV = 51 // unistd.h:159:1:
  362. X_SC_2_UPE = 52 // unistd.h:160:1:
  363. X_SC_2_VERSION = 53 // unistd.h:161:1:
  364. X_SC_ADVISORY_INFO = 731 // unistd.h:252:1:
  365. X_SC_AIO_LISTIO_MAX = 18 // unistd.h:125:1:
  366. X_SC_AIO_MAX = 19 // unistd.h:126:1:
  367. X_SC_AIO_PRIO_DELTA_MAX = 20 // unistd.h:127:1:
  368. X_SC_ARG_MAX = 1 // unistd.h:106:1:
  369. X_SC_ASYNCHRONOUS_IO = 21 // unistd.h:128:1:
  370. X_SC_ATEXIT_MAX = 76 // unistd.h:179:1:
  371. X_SC_AVPHYS_PAGES = 501 // unistd.h:190:1:
  372. X_SC_BARRIERS = 732 // unistd.h:253:1:
  373. X_SC_BC_BASE_MAX = 54 // unistd.h:162:1:
  374. X_SC_BC_DIM_MAX = 55 // unistd.h:163:1:
  375. X_SC_BC_SCALE_MAX = 56 // unistd.h:164:1:
  376. X_SC_BC_STRING_MAX = 57 // unistd.h:165:1:
  377. X_SC_CHILD_MAX = 2 // unistd.h:107:1:
  378. X_SC_CLK_TCK = 3 // unistd.h:108:1:
  379. X_SC_CLOCK_SELECTION = 733 // unistd.h:254:1:
  380. X_SC_COHER_BLKSZ = 503 // unistd.h:196:1:
  381. X_SC_COLL_WEIGHTS_MAX = 58 // unistd.h:166:1:
  382. X_SC_CPUID_MAX = 517 // unistd.h:211:1:
  383. X_SC_CPUTIME = 734 // unistd.h:255:1:
  384. X_SC_DCACHE_ASSOC = 513 // unistd.h:206:1:
  385. X_SC_DCACHE_BLKSZ = 510 // unistd.h:203:1:
  386. X_SC_DCACHE_LINESZ = 508 // unistd.h:201:1:
  387. X_SC_DCACHE_SZ = 506 // unistd.h:199:1:
  388. X_SC_DCACHE_TBLKSZ = 511 // unistd.h:204:1:
  389. X_SC_DELAYTIMER_MAX = 22 // unistd.h:129:1:
  390. X_SC_EPHID_MAX = 518 // unistd.h:212:1:
  391. X_SC_EXPR_NEST_MAX = 59 // unistd.h:167:1:
  392. X_SC_FSYNC = 23 // unistd.h:130:1:
  393. X_SC_GETGR_R_SIZE_MAX = 569 // unistd.h:220:1:
  394. X_SC_GETPW_R_SIZE_MAX = 570 // unistd.h:221:1:
  395. X_SC_HOST_NAME_MAX = 735 // unistd.h:256:1:
  396. X_SC_ICACHE_ASSOC = 512 // unistd.h:205:1:
  397. X_SC_ICACHE_BLKSZ = 509 // unistd.h:202:1:
  398. X_SC_ICACHE_LINESZ = 507 // unistd.h:200:1:
  399. X_SC_ICACHE_SZ = 505 // unistd.h:198:1:
  400. X_SC_IOV_MAX = 77 // unistd.h:180:1:
  401. X_SC_IPV6 = 762 // unistd.h:283:1:
  402. X_SC_JOB_CONTROL = 6 // unistd.h:111:1:
  403. X_SC_LINE_MAX = 60 // unistd.h:168:1:
  404. X_SC_LOGIN_NAME_MAX = 571 // unistd.h:222:1:
  405. X_SC_LOGNAME_MAX = 10 // unistd.h:116:1:
  406. X_SC_MAPPED_FILES = 24 // unistd.h:131:1:
  407. X_SC_MAXPID = 514 // unistd.h:208:1:
  408. X_SC_MEMLOCK = 25 // unistd.h:132:1:
  409. X_SC_MEMLOCK_RANGE = 26 // unistd.h:133:1:
  410. X_SC_MEMORY_PROTECTION = 27 // unistd.h:134:1:
  411. X_SC_MESSAGE_PASSING = 28 // unistd.h:135:1:
  412. X_SC_MONOTONIC_CLOCK = 736 // unistd.h:257:1:
  413. X_SC_MQ_OPEN_MAX = 29 // unistd.h:136:1:
  414. X_SC_MQ_PRIO_MAX = 30 // unistd.h:137:1:
  415. X_SC_NGROUPS_MAX = 4 // unistd.h:109:1:
  416. X_SC_NPROCESSORS_CONF = 14 // unistd.h:120:1:
  417. X_SC_NPROCESSORS_MAX = 516 // unistd.h:210:1:
  418. X_SC_NPROCESSORS_ONLN = 15 // unistd.h:121:1:
  419. X_SC_OPEN_MAX = 5 // unistd.h:110:1:
  420. X_SC_PAGESIZE = 11 // unistd.h:117:1:
  421. X_SC_PAGE_SIZE = 11 // unistd.h:182:1:
  422. X_SC_PASS_MAX = 9 // unistd.h:115:1:
  423. X_SC_PHYS_PAGES = 500 // unistd.h:189:1:
  424. X_SC_PRIORITIZED_IO = 31 // unistd.h:138:1:
  425. X_SC_PRIORITY_SCHEDULING = 32 // unistd.h:139:1:
  426. X_SC_RAW_SOCKETS = 763 // unistd.h:284:1:
  427. X_SC_READER_WRITER_LOCKS = 737 // unistd.h:258:1:
  428. X_SC_REALTIME_SIGNALS = 33 // unistd.h:140:1:
  429. X_SC_REGEXP = 738 // unistd.h:259:1:
  430. X_SC_RE_DUP_MAX = 61 // unistd.h:169:1:
  431. X_SC_RTSIG_MAX = 34 // unistd.h:141:1:
  432. X_SC_SAVED_IDS = 7 // unistd.h:112:1:
  433. X_SC_SEMAPHORES = 35 // unistd.h:142:1:
  434. X_SC_SEM_NSEMS_MAX = 36 // unistd.h:143:1:
  435. X_SC_SEM_VALUE_MAX = 37 // unistd.h:144:1:
  436. X_SC_SHARED_MEMORY_OBJECTS = 38 // unistd.h:145:1:
  437. X_SC_SHELL = 739 // unistd.h:260:1:
  438. X_SC_SIGQUEUE_MAX = 39 // unistd.h:146:1:
  439. X_SC_SIGRT_MAX = 41 // unistd.h:148:1:
  440. X_SC_SIGRT_MIN = 40 // unistd.h:147:1:
  441. X_SC_SPAWN = 740 // unistd.h:261:1:
  442. X_SC_SPIN_LOCKS = 741 // unistd.h:262:1:
  443. X_SC_SPLIT_CACHE = 504 // unistd.h:197:1:
  444. X_SC_SPORADIC_SERVER = 742 // unistd.h:263:1:
  445. X_SC_SS_REPL_MAX = 743 // unistd.h:264:1:
  446. X_SC_STACK_PROT = 515 // unistd.h:209:1:
  447. X_SC_STREAM_MAX = 16 // unistd.h:122:1:
  448. X_SC_SYMLOOP_MAX = 744 // unistd.h:265:1:
  449. X_SC_SYNCHRONIZED_IO = 42 // unistd.h:149:1:
  450. X_SC_THREADS = 576 // unistd.h:227:1:
  451. X_SC_THREAD_ATTR_STACKADDR = 577 // unistd.h:228:1:
  452. X_SC_THREAD_ATTR_STACKSIZE = 578 // unistd.h:229:1:
  453. X_SC_THREAD_CPUTIME = 745 // unistd.h:266:1:
  454. X_SC_THREAD_DESTRUCTOR_ITERATIONS = 568 // unistd.h:219:1:
  455. X_SC_THREAD_KEYS_MAX = 572 // unistd.h:223:1:
  456. X_SC_THREAD_PRIORITY_SCHEDULING = 579 // unistd.h:230:1:
  457. X_SC_THREAD_PRIO_INHERIT = 580 // unistd.h:231:1:
  458. X_SC_THREAD_PRIO_PROTECT = 581 // unistd.h:232:1:
  459. X_SC_THREAD_PROCESS_SHARED = 582 // unistd.h:233:1:
  460. X_SC_THREAD_SAFE_FUNCTIONS = 583 // unistd.h:234:1:
  461. X_SC_THREAD_SPORADIC_SERVER = 746 // unistd.h:267:1:
  462. X_SC_THREAD_STACK_MIN = 573 // unistd.h:224:1:
  463. X_SC_THREAD_THREADS_MAX = 574 // unistd.h:225:1:
  464. X_SC_TIMEOUTS = 747 // unistd.h:268:1:
  465. X_SC_TIMERS = 43 // unistd.h:150:1:
  466. X_SC_TIMER_MAX = 44 // unistd.h:151:1:
  467. X_SC_TRACE = 748 // unistd.h:269:1:
  468. X_SC_TRACE_EVENT_FILTER = 749 // unistd.h:270:1:
  469. X_SC_TRACE_EVENT_NAME_MAX = 750 // unistd.h:271:1:
  470. X_SC_TRACE_INHERIT = 751 // unistd.h:272:1:
  471. X_SC_TRACE_LOG = 752 // unistd.h:273:1:
  472. X_SC_TRACE_NAME_MAX = 753 // unistd.h:274:1:
  473. X_SC_TRACE_SYS_MAX = 754 // unistd.h:275:1:
  474. X_SC_TRACE_USER_EVENT_MAX = 755 // unistd.h:276:1:
  475. X_SC_TTY_NAME_MAX = 575 // unistd.h:226:1:
  476. X_SC_TYPED_MEMORY_OBJECTS = 756 // unistd.h:277:1:
  477. X_SC_TZNAME_MAX = 17 // unistd.h:123:1:
  478. X_SC_T_IOV_MAX = 79 // unistd.h:186:1:
  479. X_SC_UADDR_MAX = 519 // unistd.h:213:1:
  480. X_SC_V6_ILP32_OFF32 = 757 // unistd.h:278:1:
  481. X_SC_V6_ILP32_OFFBIG = 758 // unistd.h:279:1:
  482. X_SC_V6_LP64_OFF64 = 759 // unistd.h:280:1:
  483. X_SC_V6_LPBIG_OFFBIG = 760 // unistd.h:281:1:
  484. X_SC_VERSION = 8 // unistd.h:113:1:
  485. X_SC_XBS5_ILP32_OFF32 = 720 // unistd.h:240:1:
  486. X_SC_XBS5_ILP32_OFFBIG = 721 // unistd.h:241:1:
  487. X_SC_XBS5_LP64_OFF64 = 722 // unistd.h:242:1:
  488. X_SC_XBS5_LPBIG_OFFBIG = 723 // unistd.h:243:1:
  489. X_SC_XOPEN_CRYPT = 62 // unistd.h:170:1:
  490. X_SC_XOPEN_ENH_I18N = 63 // unistd.h:171:1:
  491. X_SC_XOPEN_LEGACY = 717 // unistd.h:237:1:
  492. X_SC_XOPEN_REALTIME = 718 // unistd.h:238:1:
  493. X_SC_XOPEN_REALTIME_THREADS = 719 // unistd.h:239:1:
  494. X_SC_XOPEN_SHM = 64 // unistd.h:172:1:
  495. X_SC_XOPEN_STREAMS = 761 // unistd.h:282:1:
  496. X_SC_XOPEN_UNIX = 78 // unistd.h:181:1:
  497. X_SC_XOPEN_VERSION = 12 // unistd.h:118:1:
  498. X_SC_XOPEN_XCU_VERSION = 67 // unistd.h:176:1:
  499. X_SEMA_MAGIC = 0x534d // types.h:425:1:
  500. X_SHORT_ALIGNMENT = 2 // isa_defs.h:250:1:
  501. X_SIGEVENT = 0 // time.h:132:1:
  502. X_SIGNAL_H = 0 // signal.h:33:1:
  503. X_SIGRTMAX = 74 // signal_iso.h:99:1:
  504. X_SIGRTMIN = 42 // signal_iso.h:98:1:
  505. X_SIGSET_T = 0 // select.h:73:1:
  506. X_SIGVAL = 0 // time.h:124:1:
  507. X_SIZE_T = 0 // time_iso.h:60:1:
  508. X_SOFT_HOSTID = 0 // isa_defs.h:286:1:
  509. X_SSIZE_T = 0 // types.h:549:1:
  510. X_STACK_GROWS_DOWNWARD = 0 // isa_defs.h:243:1:
  511. X_STACK_T = 0 // signal.h:174:1:
  512. X_STDC_C11 = 0 // feature_tests.h:165:1:
  513. X_STDC_C99 = 0 // feature_tests.h:169:1:
  514. X_SUNOS_VTOC_16 = 0 // isa_defs.h:280:1:
  515. X_SUSECONDS_T = 0 // types.h:343:1:
  516. X_SYS_CCOMPILE_H = 0 // ccompile.h:32:1:
  517. X_SYS_FEATURE_TESTS_H = 0 // feature_tests.h:41:1:
  518. X_SYS_INT_TYPES_H = 0 // int_types.h:30:1:
  519. X_SYS_ISA_DEFS_H = 0 // isa_defs.h:30:1:
  520. X_SYS_MACHSIG_H = 0 // machsig.h:32:1:
  521. X_SYS_MACHTYPES_H = 0 // machtypes.h:27:1:
  522. X_SYS_NULL_H = 0 // null.h:17:1:
  523. X_SYS_POLL_H = 0 // poll.h:38:1:
  524. X_SYS_PROCSET_H = 0 // procset.h:32:1:
  525. X_SYS_SELECT_H = 0 // select.h:45:1:
  526. X_SYS_SIGINFO_H = 0 // siginfo.h:31:1:
  527. X_SYS_SIGNAL_H = 0 // signal.h:42:1:
  528. X_SYS_SIGNAL_ISO_H = 0 // signal_iso.h:44:1:
  529. X_SYS_TIME_H = 0 // time.h:27:1:
  530. X_SYS_TIME_IMPL_H = 0 // time_impl.h:38:1:
  531. X_SYS_TYPES_H = 0 // types.h:35:1:
  532. X_SYS_UNISTD_H = 0 // unistd.h:40:1:
  533. X_TIMER_T = 0 // types.h:573:1:
  534. X_TIME_H = 0 // time.h:37:1:
  535. X_TIME_T = 0 // time_iso.h:74:1:
  536. X_UID_T = 0 // types.h:400:1:
  537. X_VM_FAULTCODE_H = 0 // faultcode.h:40:1:
  538. X_XOPEN_ENH_I18N = 1 // unistd.h:389:1:
  539. X_XOPEN_REALTIME = 1 // unistd.h:388:1:
  540. X_XOPEN_SHM = 1 // unistd.h:390:1:
  541. X_XOPEN_STREAMS = 1 // unistd.h:412:1:
  542. X_XOPEN_UNIX = 0 // unistd.h:382:1:
  543. X_XOPEN_VERSION = 3 // feature_tests.h:392:1:
  544. X_XOPEN_XCU_VERSION = 4 // unistd.h:385:1:
  545. X_XOPEN_XPG3 = 0 // unistd.h:380:1:
  546. X_XOPEN_XPG4 = 0 // unistd.h:381:1:
  547. Sun = 1 // <predefined>:172:1:
  548. Unix = 1 // <predefined>:175:1:
  549. )
  550. // CDDL HEADER START
  551. //
  552. // The contents of this file are subject to the terms of the
  553. // Common Development and Distribution License, Version 1.0 only
  554. // (the "License"). You may not use this file except in compliance
  555. // with the License.
  556. //
  557. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  558. // or http://www.opensolaris.org/os/licensing.
  559. // See the License for the specific language governing permissions
  560. // and limitations under the License.
  561. //
  562. // When distributing Covered Code, include this CDDL HEADER in each
  563. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  564. // If applicable, add the following below this CDDL HEADER, with the
  565. // fields enclosed by brackets "[]" replaced with your own identifying
  566. // information: Portions Copyright [yyyy] [name of copyright owner]
  567. //
  568. // CDDL HEADER END
  569. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  570. // Use is subject to license terms.
  571. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  572. // All Rights Reserved
  573. // DO NOT EDIT THIS FILE.
  574. //
  575. // It has been auto-edited by fixincludes from:
  576. //
  577. // "/usr/include/sys/feature_tests.h"
  578. //
  579. // This had to be done to correct non-standard usages in the
  580. // original, manufacturer supplied header file.
  581. // CDDL HEADER START
  582. //
  583. // The contents of this file are subject to the terms of the
  584. // Common Development and Distribution License (the "License").
  585. // You may not use this file except in compliance with the License.
  586. //
  587. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  588. // or http://www.opensolaris.org/os/licensing.
  589. // See the License for the specific language governing permissions
  590. // and limitations under the License.
  591. //
  592. // When distributing Covered Code, include this CDDL HEADER in each
  593. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  594. // If applicable, add the following below this CDDL HEADER, with the
  595. // fields enclosed by brackets "[]" replaced with your own identifying
  596. // information: Portions Copyright [yyyy] [name of copyright owner]
  597. //
  598. // CDDL HEADER END
  599. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  600. // Copyright 2016 Joyent, Inc.
  601. // Copyright 2022 Oxide Computer Company
  602. //
  603. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  604. // Use is subject to license terms.
  605. // CDDL HEADER START
  606. //
  607. // The contents of this file are subject to the terms of the
  608. // Common Development and Distribution License (the "License").
  609. // You may not use this file except in compliance with the License.
  610. //
  611. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  612. // or http://www.opensolaris.org/os/licensing.
  613. // See the License for the specific language governing permissions
  614. // and limitations under the License.
  615. //
  616. // When distributing Covered Code, include this CDDL HEADER in each
  617. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  618. // If applicable, add the following below this CDDL HEADER, with the
  619. // fields enclosed by brackets "[]" replaced with your own identifying
  620. // information: Portions Copyright [yyyy] [name of copyright owner]
  621. //
  622. // CDDL HEADER END
  623. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  624. // All Rights Reserved
  625. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  626. // Use is subject to license terms.
  627. //
  628. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  629. // Copyright 2016 Joyent, Inc.
  630. // Copyright 2021 Oxide Computer Company
  631. // CDDL HEADER START
  632. //
  633. // The contents of this file are subject to the terms of the
  634. // Common Development and Distribution License (the "License").
  635. // You may not use this file except in compliance with the License.
  636. //
  637. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  638. // or http://www.opensolaris.org/os/licensing.
  639. // See the License for the specific language governing permissions
  640. // and limitations under the License.
  641. //
  642. // When distributing Covered Code, include this CDDL HEADER in each
  643. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  644. // If applicable, add the following below this CDDL HEADER, with the
  645. // fields enclosed by brackets "[]" replaced with your own identifying
  646. // information: Portions Copyright [yyyy] [name of copyright owner]
  647. //
  648. // CDDL HEADER END
  649. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  650. // Use is subject to license terms.
  651. // Copyright 2015, Joyent, Inc.
  652. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  653. // All Rights Reserved
  654. // University Copyright- Copyright (c) 1982, 1986, 1988
  655. // The Regents of the University of California
  656. // All Rights Reserved
  657. //
  658. // University Acknowledgment- Portions of this document are derived from
  659. // software developed by the University of California, Berkeley, and its
  660. // contributors.
  661. // This file defines the data needed to specify a set of
  662. // processes. These types are used by the sigsend, sigsendset,
  663. // priocntl, priocntlset, waitid, evexit, and evexitset system
  664. // calls.
  665. // The following defines the values for an identifier type. It
  666. // specifies the interpretation of an id value. An idtype and
  667. // id together define a simple set of processes.
  668. const ( /* procset.h:58:1: */
  669. P_PID = 0 // A process identifier.
  670. P_PPID = 1 // A parent process identifier.
  671. P_PGID = 2 // A process group (job control group)
  672. // identifier.
  673. P_SID = 3 // A session identifier.
  674. P_CID = 4 // A scheduling class identifier.
  675. P_UID = 5 // A user identifier.
  676. P_GID = 6 // A group identifier.
  677. P_ALL = 7 // All processes.
  678. P_LWPID = 8 // An LWP identifier.
  679. P_TASKID = 9 // A task identifier.
  680. P_PROJID = 10 // A project identifier.
  681. P_POOLID = 11 // A pool identifier.
  682. P_ZONEID = 12 // A zone identifier.
  683. P_CTID = 13 // A (process) contract identifier.
  684. P_CPUID = 14 // CPU identifier.
  685. P_PSETID = 15
  686. )
  687. // The following defines the operations which can be performed to
  688. // combine two simple sets of processes to form another set of
  689. // processes.
  690. const ( /* procset.h:89:1: */
  691. POP_DIFF = 0 // Set difference. The processes which
  692. // are in the left operand set and not
  693. // in the right operand set.
  694. POP_AND = 1 // Set disjunction. The processes
  695. // which are in both the left and right
  696. // operand sets.
  697. POP_OR = 2 // Set conjunction. The processes
  698. // which are in either the left or the
  699. // right operand sets (or both).
  700. POP_XOR = 3
  701. ) // used for block sizes
  702. // The boolean_t type has had a varied amount of exposure over the years in
  703. // terms of how its enumeration constants have been exposed. In particular, it
  704. // originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the
  705. // B_TRUE and B_FALSE with an underscore. This check never included the
  706. // question of if we were in a strict ANSI C environment or whether extensions
  707. // were defined.
  708. //
  709. // Compilers such as clang started defaulting to always including an
  710. // XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__.
  711. // This would lead most software that had used the non-underscore versions to
  712. // need it. As such, we have adjusted the non-strict XOPEN environment to retain
  713. // its old behavior so as to minimize namespace pollution; however, we instead
  714. // include both variants of the definitions in the generally visible version
  715. // allowing software written in either world to hopefully end up in a good
  716. // place.
  717. //
  718. // This isn't perfect, but should hopefully minimize the pain for folks actually
  719. // trying to build software.
  720. const ( /* types.h:215:1: */
  721. B_FALSE = 0
  722. B_TRUE = 1
  723. X_B_FALSE = 0
  724. X_B_TRUE = 1
  725. )
  726. type Ptrdiff_t = int64 /* <builtin>:3:26 */
  727. type Size_t = uint64 /* <builtin>:9:23 */
  728. type Wchar_t = int32 /* <builtin>:15:24 */
  729. type X__int128_t = struct {
  730. Flo int64
  731. Fhi int64
  732. } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
  733. type X__uint128_t = struct {
  734. Flo uint64
  735. Fhi uint64
  736. } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
  737. type X__builtin_va_list = uintptr /* <builtin>:46:14 */
  738. type X__float128 = float64 /* <builtin>:47:21 */
  739. // CDDL HEADER START
  740. //
  741. // The contents of this file are subject to the terms of the
  742. // Common Development and Distribution License (the "License").
  743. // You may not use this file except in compliance with the License.
  744. //
  745. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  746. // or http://www.opensolaris.org/os/licensing.
  747. // See the License for the specific language governing permissions
  748. // and limitations under the License.
  749. //
  750. // When distributing Covered Code, include this CDDL HEADER in each
  751. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  752. // If applicable, add the following below this CDDL HEADER, with the
  753. // fields enclosed by brackets "[]" replaced with your own identifying
  754. // information: Portions Copyright [yyyy] [name of copyright owner]
  755. //
  756. // CDDL HEADER END
  757. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  758. // Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  759. // Copyright (c) 1988 AT&T
  760. // All Rights Reserved
  761. // Poll system call interface definitions.
  762. // DO NOT EDIT THIS FILE.
  763. //
  764. // It has been auto-edited by fixincludes from:
  765. //
  766. // "/usr/include/sys/feature_tests.h"
  767. //
  768. // This had to be done to correct non-standard usages in the
  769. // original, manufacturer supplied header file.
  770. // CDDL HEADER START
  771. //
  772. // The contents of this file are subject to the terms of the
  773. // Common Development and Distribution License (the "License").
  774. // You may not use this file except in compliance with the License.
  775. //
  776. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  777. // or http://www.opensolaris.org/os/licensing.
  778. // See the License for the specific language governing permissions
  779. // and limitations under the License.
  780. //
  781. // When distributing Covered Code, include this CDDL HEADER in each
  782. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  783. // If applicable, add the following below this CDDL HEADER, with the
  784. // fields enclosed by brackets "[]" replaced with your own identifying
  785. // information: Portions Copyright [yyyy] [name of copyright owner]
  786. //
  787. // CDDL HEADER END
  788. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  789. // Copyright 2016 Joyent, Inc.
  790. // Copyright 2022 Oxide Computer Company
  791. //
  792. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  793. // Use is subject to license terms.
  794. // CDDL HEADER START
  795. //
  796. // The contents of this file are subject to the terms of the
  797. // Common Development and Distribution License, Version 1.0 only
  798. // (the "License"). You may not use this file except in compliance
  799. // with the License.
  800. //
  801. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  802. // or http://www.opensolaris.org/os/licensing.
  803. // See the License for the specific language governing permissions
  804. // and limitations under the License.
  805. //
  806. // When distributing Covered Code, include this CDDL HEADER in each
  807. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  808. // If applicable, add the following below this CDDL HEADER, with the
  809. // fields enclosed by brackets "[]" replaced with your own identifying
  810. // information: Portions Copyright [yyyy] [name of copyright owner]
  811. //
  812. // CDDL HEADER END
  813. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  814. // Use is subject to license terms.
  815. // Copyright 2015 EveryCity Ltd. All rights reserved.
  816. // Copyright 2019 Joyent, Inc.
  817. // This file contains definitions designed to enable different compilers
  818. // to be used harmoniously on Solaris systems.
  819. // Allow for version tests for compiler bugs and features.
  820. // analogous to lint's PRINTFLIKEn
  821. // Handle the kernel printf routines that can take '%b' too
  822. // This one's pretty obvious -- the function never returns
  823. // The function is 'extern inline' and expects GNU C89 behaviour, not C99
  824. // behaviour.
  825. //
  826. // Should only be used on 'extern inline' definitions for GCC.
  827. // The function has control flow such that it may return multiple times (in
  828. // the manner of setjmp or vfork)
  829. // This is an appropriate label for functions that do not
  830. // modify their arguments, e.g. strlen()
  831. // This is a stronger form of __pure__. Can be used for functions
  832. // that do not modify their arguments and don't depend on global
  833. // memory.
  834. // This attribute, attached to a variable, means that the variable is meant to
  835. // be possibly unused. GCC will not produce a warning for this variable.
  836. // Shorthand versions for readability
  837. // In release build, disable warnings about variables
  838. // which are used only for debugging.
  839. // CDDL HEADER START
  840. //
  841. // The contents of this file are subject to the terms of the
  842. // Common Development and Distribution License (the "License").
  843. // You may not use this file except in compliance with the License.
  844. //
  845. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  846. // or http://www.opensolaris.org/os/licensing.
  847. // See the License for the specific language governing permissions
  848. // and limitations under the License.
  849. //
  850. //
  851. // When distributing Covered Code, include this CDDL HEADER in each
  852. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  853. // If applicable, add the following below this CDDL HEADER, with the
  854. // fields enclosed by brackets "[]" replaced with your own identifying
  855. // information: Portions Copyright [yyyy] [name of copyright owner]
  856. //
  857. // CDDL HEADER END
  858. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  859. // Use is subject to license terms.
  860. // Copyright 2016 Joyent, Inc.
  861. // This header file serves to group a set of well known defines and to
  862. // set these for each instruction set architecture. These defines may
  863. // be divided into two groups; characteristics of the processor and
  864. // implementation choices for Solaris on a processor.
  865. //
  866. // Processor Characteristics:
  867. //
  868. // _LITTLE_ENDIAN / _BIG_ENDIAN:
  869. // The natural byte order of the processor. A pointer to an int points
  870. // to the least/most significant byte of that int.
  871. //
  872. // _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
  873. // The processor specific direction of stack growth. A push onto the
  874. // stack increases/decreases the stack pointer, so it stores data at
  875. // successively higher/lower addresses. (Stackless machines ignored
  876. // without regrets).
  877. //
  878. // _LONG_LONG_HTOL / _LONG_LONG_LTOH:
  879. // A pointer to a long long points to the most/least significant long
  880. // within that long long.
  881. //
  882. // _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
  883. // The C compiler assigns bit fields from the high/low to the low/high end
  884. // of an int (most to least significant vs. least to most significant).
  885. //
  886. // _IEEE_754:
  887. // The processor (or supported implementations of the processor)
  888. // supports the ieee-754 floating point standard. No other floating
  889. // point standards are supported (or significant). Any other supported
  890. // floating point formats are expected to be cased on the ISA processor
  891. // symbol.
  892. //
  893. // _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
  894. // The C Compiler implements objects of type `char' as `unsigned' or
  895. // `signed' respectively. This is really an implementation choice of
  896. // the compiler writer, but it is specified in the ABI and tends to
  897. // be uniform across compilers for an instruction set architecture.
  898. // Hence, it has the properties of a processor characteristic.
  899. //
  900. // _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
  901. // _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
  902. // _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
  903. // The ABI defines alignment requirements of each of the primitive
  904. // object types. Some, if not all, may be hardware requirements as
  905. // well. The values are expressed in "byte-alignment" units.
  906. //
  907. // _MAX_ALIGNMENT:
  908. // The most stringent alignment requirement as specified by the ABI.
  909. // Equal to the maximum of all the above _XXX_ALIGNMENT values.
  910. //
  911. // _MAX_ALIGNMENT_TYPE:
  912. // The name of the C type that has the value descried in _MAX_ALIGNMENT.
  913. //
  914. // _ALIGNMENT_REQUIRED:
  915. // True or false (1 or 0) whether or not the hardware requires the ABI
  916. // alignment.
  917. //
  918. // _LONG_LONG_ALIGNMENT_32
  919. // The 32-bit ABI supported by a 64-bit kernel may have different
  920. // alignment requirements for primitive object types. The value of this
  921. // identifier is expressed in "byte-alignment" units.
  922. //
  923. // _HAVE_CPUID_INSN
  924. // This indicates that the architecture supports the 'cpuid'
  925. // instruction as defined by Intel. (Intel allows other vendors
  926. // to extend the instruction for their own purposes.)
  927. //
  928. //
  929. // Implementation Choices:
  930. //
  931. // _ILP32 / _LP64:
  932. // This specifies the compiler data type implementation as specified in
  933. // the relevant ABI. The choice between these is strongly influenced
  934. // by the underlying hardware, but is not absolutely tied to it.
  935. // Currently only two data type models are supported:
  936. //
  937. // _ILP32:
  938. // Int/Long/Pointer are 32 bits. This is the historical UNIX
  939. // and Solaris implementation. Due to its historical standing,
  940. // this is the default case.
  941. //
  942. // _LP64:
  943. // Long/Pointer are 64 bits, Int is 32 bits. This is the chosen
  944. // implementation for 64-bit ABIs such as SPARC V9.
  945. //
  946. // _I32LPx:
  947. // A compilation environment where 'int' is 32-bit, and
  948. // longs and pointers are simply the same size.
  949. //
  950. // In all cases, Char is 8 bits and Short is 16 bits.
  951. //
  952. // _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
  953. // This specifies the form of the disk VTOC (or label):
  954. //
  955. // _SUNOS_VTOC_8:
  956. // This is a VTOC form which is upwardly compatible with the
  957. // SunOS 4.x disk label and allows 8 partitions per disk.
  958. //
  959. // _SUNOS_VTOC_16:
  960. // In this format the incore vtoc image matches the ondisk
  961. // version. It allows 16 slices per disk, and is not
  962. // compatible with the SunOS 4.x disk label.
  963. //
  964. // Note that these are not the only two VTOC forms possible and
  965. // additional forms may be added. One possible form would be the
  966. // SVr4 VTOC form. The symbol for that is reserved now, although
  967. // it is not implemented.
  968. //
  969. // _SVR4_VTOC_16:
  970. // This VTOC form is compatible with the System V Release 4
  971. // VTOC (as implemented on the SVr4 Intel and 3b ports) with
  972. // 16 partitions per disk.
  973. //
  974. //
  975. // _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
  976. // This describes the type of addresses used by system DMA:
  977. //
  978. // _DMA_USES_PHYSADDR:
  979. // This type of DMA, used in the x86 implementation,
  980. // requires physical addresses for DMA buffers. The 24-bit
  981. // addresses used by some legacy boards is the source of the
  982. // "low-memory" (<16MB) requirement for some devices using DMA.
  983. //
  984. // _DMA_USES_VIRTADDR:
  985. // This method of DMA allows the use of virtual addresses for
  986. // DMA transfers.
  987. //
  988. // _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
  989. // This indicates the presence/absence of an fdisk table.
  990. //
  991. // _FIRMWARE_NEEDS_FDISK
  992. // The fdisk table is required by system firmware. If present,
  993. // it allows a disk to be subdivided into multiple fdisk
  994. // partitions, each of which is equivalent to a separate,
  995. // virtual disk. This enables the co-existence of multiple
  996. // operating systems on a shared hard disk.
  997. //
  998. // _NO_FDISK_PRESENT
  999. // If the fdisk table is absent, it is assumed that the entire
  1000. // media is allocated for a single operating system.
  1001. //
  1002. // _HAVE_TEM_FIRMWARE
  1003. // Defined if this architecture has the (fallback) option of
  1004. // using prom_* calls for doing I/O if a suitable kernel driver
  1005. // is not available to do it.
  1006. //
  1007. // _DONT_USE_1275_GENERIC_NAMES
  1008. // Controls whether or not device tree node names should
  1009. // comply with the IEEE 1275 "Generic Names" Recommended
  1010. // Practice. With _DONT_USE_GENERIC_NAMES, device-specific
  1011. // names identifying the particular device will be used.
  1012. //
  1013. // __i386_COMPAT
  1014. // This indicates whether the i386 ABI is supported as a *non-native*
  1015. // mode for the platform. When this symbol is defined:
  1016. // - 32-bit xstat-style system calls are enabled
  1017. // - 32-bit xmknod-style system calls are enabled
  1018. // - 32-bit system calls use i386 sizes -and- alignments
  1019. //
  1020. // Note that this is NOT defined for the i386 native environment!
  1021. //
  1022. // __x86
  1023. // This is ONLY a synonym for defined(__i386) || defined(__amd64)
  1024. // which is useful only insofar as these two architectures share
  1025. // common attributes. Analogous to __sparc.
  1026. //
  1027. // _PSM_MODULES
  1028. // This indicates whether or not the implementation uses PSM
  1029. // modules for processor support, reading /etc/mach from inside
  1030. // the kernel to extract a list.
  1031. //
  1032. // _RTC_CONFIG
  1033. // This indicates whether or not the implementation uses /etc/rtc_config
  1034. // to configure the real-time clock in the kernel.
  1035. //
  1036. // _UNIX_KRTLD
  1037. // This indicates that the implementation uses a dynamically
  1038. // linked unix + krtld to form the core kernel image at boot
  1039. // time, or (in the absence of this symbol) a prelinked kernel image.
  1040. //
  1041. // _OBP
  1042. // This indicates the firmware interface is OBP.
  1043. //
  1044. // _SOFT_HOSTID
  1045. // This indicates that the implementation obtains the hostid
  1046. // from the file /etc/hostid, rather than from hardware.
  1047. // The following set of definitions characterize Solaris on AMD's
  1048. // 64-bit systems.
  1049. // Define the appropriate "processor characteristics"
  1050. // Different alignment constraints for the i386 ABI in compatibility mode
  1051. // Define the appropriate "implementation choices".
  1052. // The feature test macro __i386 is generic for all processors implementing
  1053. // the Intel 386 instruction set or a superset of it. Specifically, this
  1054. // includes all members of the 386, 486, and Pentium family of processors.
  1055. // Values of _POSIX_C_SOURCE
  1056. //
  1057. // undefined not a POSIX compilation
  1058. // 1 POSIX.1-1990 compilation
  1059. // 2 POSIX.2-1992 compilation
  1060. // 199309L POSIX.1b-1993 compilation (Real Time)
  1061. // 199506L POSIX.1c-1995 compilation (POSIX Threads)
  1062. // 200112L POSIX.1-2001 compilation (Austin Group Revision)
  1063. // 200809L POSIX.1-2008 compilation
  1064. // The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
  1065. // and _STDC_C99 are Sun implementation specific macros created in order to
  1066. // compress common standards specified feature test macros for easier reading.
  1067. // These macros should not be used by the application developer as
  1068. // unexpected results may occur. Instead, the user should reference
  1069. // standards(7) for correct usage of the standards feature test macros.
  1070. //
  1071. // __XOPEN_OR_POSIX Used in cases where a symbol is defined by both
  1072. // X/Open or POSIX or in the negative, when neither
  1073. // X/Open or POSIX defines a symbol.
  1074. //
  1075. // _STRICT_STDC __STDC__ is specified by the C Standards and defined
  1076. // by the compiler. For Sun compilers the value of
  1077. // __STDC__ is either 1, 0, or not defined based on the
  1078. // compilation mode (see cc(1)). When the value of
  1079. // __STDC__ is 1 and in the absence of any other feature
  1080. // test macros, the namespace available to the application
  1081. // is limited to only those symbols defined by the C
  1082. // Standard. _STRICT_STDC provides a more readable means
  1083. // of identifying symbols defined by the standard, or in
  1084. // the negative, symbols that are extensions to the C
  1085. // Standard. See additional comments for GNU C differences.
  1086. //
  1087. // _STDC_C99 __STDC_VERSION__ is specified by the C standards and
  1088. // defined by the compiler and indicates the version of
  1089. // the C standard. A value of 199901L indicates a
  1090. // compiler that complies with ISO/IEC 9899:1999, other-
  1091. // wise known as the C99 standard.
  1092. //
  1093. // _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__
  1094. // is 201112L indicating a compiler that compiles with
  1095. // ISO/IEC 9899:2011, otherwise known as the C11 standard.
  1096. //
  1097. // _STRICT_SYMBOLS Used in cases where symbol visibility is restricted
  1098. // by the standards, and the user has not explicitly
  1099. // relaxed the strictness via __EXTENSIONS__.
  1100. // ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
  1101. // 99899:2011 specify the following predefined macro name:
  1102. //
  1103. // __STDC__ The integer constant 1, intended to indicate a conforming
  1104. // implementation.
  1105. //
  1106. // Furthermore, a strictly conforming program shall use only those features
  1107. // of the language and library specified in these standards. A conforming
  1108. // implementation shall accept any strictly conforming program.
  1109. //
  1110. // Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
  1111. // strictly conforming environments and __STDC__ to 0 for environments that
  1112. // use ANSI C semantics but allow extensions to the C standard. For non-ANSI
  1113. // C semantics, Sun's C compiler does not define __STDC__.
  1114. //
  1115. // The GNU C project interpretation is that __STDC__ should always be defined
  1116. // to 1 for compilation modes that accept ANSI C syntax regardless of whether
  1117. // or not extensions to the C standard are used. Violations of conforming
  1118. // behavior are conditionally flagged as warnings via the use of the
  1119. // -pedantic option. In addition to defining __STDC__ to 1, the GNU C
  1120. // compiler also defines __STRICT_ANSI__ as a means of specifying strictly
  1121. // conforming environments using the -ansi or -std=<standard> options.
  1122. //
  1123. // In the absence of any other compiler options, Sun and GNU set the value
  1124. // of __STDC__ as follows when using the following options:
  1125. //
  1126. // Value of __STDC__ __STRICT_ANSI__
  1127. //
  1128. // cc -Xa (default) 0 undefined
  1129. // cc -Xt (transitional) 0 undefined
  1130. // cc -Xc (strictly conforming) 1 undefined
  1131. // cc -Xs (K&R C) undefined undefined
  1132. //
  1133. // gcc (default) 1 undefined
  1134. // gcc -ansi, -std={c89, c99,...) 1 defined
  1135. // gcc -traditional (K&R) undefined undefined
  1136. //
  1137. // The default compilation modes for Sun C compilers versus GNU C compilers
  1138. // results in a differing value for __STDC__ which results in a more
  1139. // restricted namespace when using Sun compilers. To allow both GNU and Sun
  1140. // interpretations to peacefully co-exist, we use the following Sun
  1141. // implementation _STRICT_STDC_ macro:
  1142. // Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
  1143. // Use strict symbol visibility.
  1144. // This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are
  1145. // governed by POSIX, but have not been governed by ISO C. One can go two ways
  1146. // on what should happen if an application actively includes (not transitively)
  1147. // a header that isn't part of the ISO C spec, we opt to say that if someone has
  1148. // gone out of there way then they're doing it for a reason and that is an act
  1149. // of non-compliance and therefore it's not up to us to hide away every symbol.
  1150. //
  1151. // In general, prefer using _STRICT_SYMBOLS, but this is here in particular for
  1152. // cases where in the past we have only used a POSIX related check and we don't
  1153. // wish to make something stricter. Often applications are relying on the
  1154. // ability to, or more realistically unwittingly, have _STRICT_STDC declared and
  1155. // still use these interfaces.
  1156. // Large file interfaces:
  1157. //
  1158. // _LARGEFILE_SOURCE
  1159. // 1 large file-related additions to POSIX
  1160. // interfaces requested (fseeko, etc.)
  1161. // _LARGEFILE64_SOURCE
  1162. // 1 transitional large-file-related interfaces
  1163. // requested (seek64, stat64, etc.)
  1164. //
  1165. // The corresponding announcement macros are respectively:
  1166. // _LFS_LARGEFILE
  1167. // _LFS64_LARGEFILE
  1168. // (These are set in <unistd.h>.)
  1169. //
  1170. // Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
  1171. // well.
  1172. //
  1173. // The large file interfaces are made visible regardless of the initial values
  1174. // of the feature test macros under certain circumstances:
  1175. // - If no explicit standards-conforming environment is requested (neither
  1176. // of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
  1177. // __STDC__ does not imply standards conformance).
  1178. // - Extended system interfaces are explicitly requested (__EXTENSIONS__
  1179. // is defined).
  1180. // - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
  1181. // defined). (Note that this dependency is an artifact of the current
  1182. // kernel implementation and may change in future releases.)
  1183. // Large file compilation environment control:
  1184. //
  1185. // The setting of _FILE_OFFSET_BITS controls the size of various file-related
  1186. // types and governs the mapping between file-related source function symbol
  1187. // names and the corresponding binary entry points.
  1188. //
  1189. // In the 32-bit environment, the default value is 32; if not set, set it to
  1190. // the default here, to simplify tests in other headers.
  1191. //
  1192. // In the 64-bit compilation environment, the only value allowed is 64.
  1193. // Use of _XOPEN_SOURCE
  1194. //
  1195. // The following X/Open specifications are supported:
  1196. //
  1197. // X/Open Portability Guide, Issue 3 (XPG3)
  1198. // X/Open CAE Specification, Issue 4 (XPG4)
  1199. // X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
  1200. // X/Open CAE Specification, Issue 5 (XPG5)
  1201. // Open Group Technical Standard, Issue 6 (XPG6), also referred to as
  1202. // IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
  1203. // Open Group Technical Standard, Issue 7 (XPG7), also referred to as
  1204. // IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
  1205. //
  1206. // XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
  1207. // XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
  1208. // Version 2 (SUSv2)
  1209. // XPG6 is the result of a merge of the X/Open and POSIX specifications
  1210. // and as such is also referred to as IEEE Std. 1003.1-2001 in
  1211. // addition to UNIX 03 and SUSv3.
  1212. // XPG7 is also referred to as UNIX 08 and SUSv4.
  1213. //
  1214. // When writing a conforming X/Open application, as per the specification
  1215. // requirements, the appropriate feature test macros must be defined at
  1216. // compile time. These are as follows. For more info, see standards(7).
  1217. //
  1218. // Feature Test Macro Specification
  1219. // ------------------------------------------------ -------------
  1220. // _XOPEN_SOURCE XPG3
  1221. // _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
  1222. // _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
  1223. // _XOPEN_SOURCE = 500 XPG5
  1224. // _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6
  1225. // _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7
  1226. //
  1227. // In order to simplify the guards within the headers, the following
  1228. // implementation private test macros have been created. Applications
  1229. // must NOT use these private test macros as unexpected results will
  1230. // occur.
  1231. //
  1232. // Note that in general, the use of these private macros is cumulative.
  1233. // For example, the use of _XPG3 with no other restrictions on the X/Open
  1234. // namespace will make the symbols visible for XPG3 through XPG6
  1235. // compilation environments. The use of _XPG4_2 with no other X/Open
  1236. // namespace restrictions indicates that the symbols were introduced in
  1237. // XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
  1238. // environments, but not for XPG3 or XPG4 compilation environments.
  1239. //
  1240. // _XPG3 X/Open Portability Guide, Issue 3 (XPG3)
  1241. // _XPG4 X/Open CAE Specification, Issue 4 (XPG4)
  1242. // _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
  1243. // _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
  1244. // _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
  1245. // _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
  1246. // X/Open Portability Guide, Issue 3
  1247. // _XOPEN_VERSION is defined by the X/Open specifications and is not
  1248. // normally defined by the application, except in the case of an XPG4
  1249. // application. On the implementation side, _XOPEN_VERSION defined with
  1250. // the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
  1251. // with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
  1252. // _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
  1253. // application and with a value of 600 indicates an XPG6 (UNIX 03)
  1254. // application and with a value of 700 indicates an XPG7 (UNIX 08).
  1255. // The appropriate version is determined by the use of the
  1256. // feature test macros described earlier. The value of _XOPEN_VERSION
  1257. // defaults to 3 otherwise indicating support for XPG3 applications.
  1258. // ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
  1259. // conforming environments. ISO 9899:1999 says it does.
  1260. //
  1261. // The presence of _LONGLONG_TYPE says "long long exists" which is therefore
  1262. // defined in all but strictly conforming environments that disallow it.
  1263. // The following macro defines a value for the ISO C99 restrict
  1264. // keyword so that _RESTRICT_KYWD resolves to "restrict" if
  1265. // an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
  1266. // if any other compiler is used. This allows for the use of single
  1267. // prototype declarations regardless of compiler version.
  1268. // The following macro defines a value for the ISO C11 _Noreturn
  1269. // keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
  1270. // an ISO C11 compiler is used and "" (null string) if any other
  1271. // compiler is used. This allows for the use of single prototype
  1272. // declarations regardless of compiler version.
  1273. // ISO/IEC 9899:2011 Annex K
  1274. // The following macro indicates header support for the ANSI C++
  1275. // standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882.
  1276. // The following macro indicates header support for the C99 standard,
  1277. // ISO/IEC 9899:1999, Programming Languages - C.
  1278. // The following macro indicates header support for the C11 standard,
  1279. // ISO/IEC 9899:2011, Programming Languages - C.
  1280. // The following macro indicates header support for the C11 standard,
  1281. // ISO/IEC 9899:2011 Annex K, Programming Languages - C.
  1282. // The following macro indicates header support for DTrace. The value is an
  1283. // integer that corresponds to the major version number for DTrace.
  1284. // CDDL HEADER START
  1285. //
  1286. // The contents of this file are subject to the terms of the
  1287. // Common Development and Distribution License, Version 1.0 only
  1288. // (the "License"). You may not use this file except in compliance
  1289. // with the License.
  1290. //
  1291. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1292. // or http://www.opensolaris.org/os/licensing.
  1293. // See the License for the specific language governing permissions
  1294. // and limitations under the License.
  1295. //
  1296. // When distributing Covered Code, include this CDDL HEADER in each
  1297. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1298. // If applicable, add the following below this CDDL HEADER, with the
  1299. // fields enclosed by brackets "[]" replaced with your own identifying
  1300. // information: Portions Copyright [yyyy] [name of copyright owner]
  1301. //
  1302. // CDDL HEADER END
  1303. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  1304. // All Rights Reserved
  1305. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  1306. //
  1307. // Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
  1308. // All rights reserved.
  1309. // Copyright 2015, Joyent, Inc.
  1310. // Structure of file descriptor/event pairs supplied in
  1311. // the poll arrays.
  1312. type Pollfd = struct {
  1313. Ffd int32
  1314. Fevents int16
  1315. Frevents int16
  1316. } /* poll.h:48:9 */
  1317. // CDDL HEADER START
  1318. //
  1319. // The contents of this file are subject to the terms of the
  1320. // Common Development and Distribution License (the "License").
  1321. // You may not use this file except in compliance with the License.
  1322. //
  1323. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1324. // or http://www.opensolaris.org/os/licensing.
  1325. // See the License for the specific language governing permissions
  1326. // and limitations under the License.
  1327. //
  1328. // When distributing Covered Code, include this CDDL HEADER in each
  1329. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1330. // If applicable, add the following below this CDDL HEADER, with the
  1331. // fields enclosed by brackets "[]" replaced with your own identifying
  1332. // information: Portions Copyright [yyyy] [name of copyright owner]
  1333. //
  1334. // CDDL HEADER END
  1335. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  1336. // Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  1337. // Copyright (c) 1988 AT&T
  1338. // All Rights Reserved
  1339. // Poll system call interface definitions.
  1340. // DO NOT EDIT THIS FILE.
  1341. //
  1342. // It has been auto-edited by fixincludes from:
  1343. //
  1344. // "/usr/include/sys/feature_tests.h"
  1345. //
  1346. // This had to be done to correct non-standard usages in the
  1347. // original, manufacturer supplied header file.
  1348. // CDDL HEADER START
  1349. //
  1350. // The contents of this file are subject to the terms of the
  1351. // Common Development and Distribution License (the "License").
  1352. // You may not use this file except in compliance with the License.
  1353. //
  1354. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1355. // or http://www.opensolaris.org/os/licensing.
  1356. // See the License for the specific language governing permissions
  1357. // and limitations under the License.
  1358. //
  1359. // When distributing Covered Code, include this CDDL HEADER in each
  1360. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1361. // If applicable, add the following below this CDDL HEADER, with the
  1362. // fields enclosed by brackets "[]" replaced with your own identifying
  1363. // information: Portions Copyright [yyyy] [name of copyright owner]
  1364. //
  1365. // CDDL HEADER END
  1366. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  1367. // Copyright 2016 Joyent, Inc.
  1368. // Copyright 2022 Oxide Computer Company
  1369. //
  1370. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  1371. // Use is subject to license terms.
  1372. // CDDL HEADER START
  1373. //
  1374. // The contents of this file are subject to the terms of the
  1375. // Common Development and Distribution License, Version 1.0 only
  1376. // (the "License"). You may not use this file except in compliance
  1377. // with the License.
  1378. //
  1379. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1380. // or http://www.opensolaris.org/os/licensing.
  1381. // See the License for the specific language governing permissions
  1382. // and limitations under the License.
  1383. //
  1384. // When distributing Covered Code, include this CDDL HEADER in each
  1385. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1386. // If applicable, add the following below this CDDL HEADER, with the
  1387. // fields enclosed by brackets "[]" replaced with your own identifying
  1388. // information: Portions Copyright [yyyy] [name of copyright owner]
  1389. //
  1390. // CDDL HEADER END
  1391. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  1392. // Use is subject to license terms.
  1393. // Copyright 2015 EveryCity Ltd. All rights reserved.
  1394. // Copyright 2019 Joyent, Inc.
  1395. // This file contains definitions designed to enable different compilers
  1396. // to be used harmoniously on Solaris systems.
  1397. // Allow for version tests for compiler bugs and features.
  1398. // analogous to lint's PRINTFLIKEn
  1399. // Handle the kernel printf routines that can take '%b' too
  1400. // This one's pretty obvious -- the function never returns
  1401. // The function is 'extern inline' and expects GNU C89 behaviour, not C99
  1402. // behaviour.
  1403. //
  1404. // Should only be used on 'extern inline' definitions for GCC.
  1405. // The function has control flow such that it may return multiple times (in
  1406. // the manner of setjmp or vfork)
  1407. // This is an appropriate label for functions that do not
  1408. // modify their arguments, e.g. strlen()
  1409. // This is a stronger form of __pure__. Can be used for functions
  1410. // that do not modify their arguments and don't depend on global
  1411. // memory.
  1412. // This attribute, attached to a variable, means that the variable is meant to
  1413. // be possibly unused. GCC will not produce a warning for this variable.
  1414. // Shorthand versions for readability
  1415. // In release build, disable warnings about variables
  1416. // which are used only for debugging.
  1417. // CDDL HEADER START
  1418. //
  1419. // The contents of this file are subject to the terms of the
  1420. // Common Development and Distribution License (the "License").
  1421. // You may not use this file except in compliance with the License.
  1422. //
  1423. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1424. // or http://www.opensolaris.org/os/licensing.
  1425. // See the License for the specific language governing permissions
  1426. // and limitations under the License.
  1427. //
  1428. //
  1429. // When distributing Covered Code, include this CDDL HEADER in each
  1430. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1431. // If applicable, add the following below this CDDL HEADER, with the
  1432. // fields enclosed by brackets "[]" replaced with your own identifying
  1433. // information: Portions Copyright [yyyy] [name of copyright owner]
  1434. //
  1435. // CDDL HEADER END
  1436. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  1437. // Use is subject to license terms.
  1438. // Copyright 2016 Joyent, Inc.
  1439. // This header file serves to group a set of well known defines and to
  1440. // set these for each instruction set architecture. These defines may
  1441. // be divided into two groups; characteristics of the processor and
  1442. // implementation choices for Solaris on a processor.
  1443. //
  1444. // Processor Characteristics:
  1445. //
  1446. // _LITTLE_ENDIAN / _BIG_ENDIAN:
  1447. // The natural byte order of the processor. A pointer to an int points
  1448. // to the least/most significant byte of that int.
  1449. //
  1450. // _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD:
  1451. // The processor specific direction of stack growth. A push onto the
  1452. // stack increases/decreases the stack pointer, so it stores data at
  1453. // successively higher/lower addresses. (Stackless machines ignored
  1454. // without regrets).
  1455. //
  1456. // _LONG_LONG_HTOL / _LONG_LONG_LTOH:
  1457. // A pointer to a long long points to the most/least significant long
  1458. // within that long long.
  1459. //
  1460. // _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH:
  1461. // The C compiler assigns bit fields from the high/low to the low/high end
  1462. // of an int (most to least significant vs. least to most significant).
  1463. //
  1464. // _IEEE_754:
  1465. // The processor (or supported implementations of the processor)
  1466. // supports the ieee-754 floating point standard. No other floating
  1467. // point standards are supported (or significant). Any other supported
  1468. // floating point formats are expected to be cased on the ISA processor
  1469. // symbol.
  1470. //
  1471. // _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED:
  1472. // The C Compiler implements objects of type `char' as `unsigned' or
  1473. // `signed' respectively. This is really an implementation choice of
  1474. // the compiler writer, but it is specified in the ABI and tends to
  1475. // be uniform across compilers for an instruction set architecture.
  1476. // Hence, it has the properties of a processor characteristic.
  1477. //
  1478. // _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT /
  1479. // _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT /
  1480. // _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT:
  1481. // The ABI defines alignment requirements of each of the primitive
  1482. // object types. Some, if not all, may be hardware requirements as
  1483. // well. The values are expressed in "byte-alignment" units.
  1484. //
  1485. // _MAX_ALIGNMENT:
  1486. // The most stringent alignment requirement as specified by the ABI.
  1487. // Equal to the maximum of all the above _XXX_ALIGNMENT values.
  1488. //
  1489. // _MAX_ALIGNMENT_TYPE:
  1490. // The name of the C type that has the value descried in _MAX_ALIGNMENT.
  1491. //
  1492. // _ALIGNMENT_REQUIRED:
  1493. // True or false (1 or 0) whether or not the hardware requires the ABI
  1494. // alignment.
  1495. //
  1496. // _LONG_LONG_ALIGNMENT_32
  1497. // The 32-bit ABI supported by a 64-bit kernel may have different
  1498. // alignment requirements for primitive object types. The value of this
  1499. // identifier is expressed in "byte-alignment" units.
  1500. //
  1501. // _HAVE_CPUID_INSN
  1502. // This indicates that the architecture supports the 'cpuid'
  1503. // instruction as defined by Intel. (Intel allows other vendors
  1504. // to extend the instruction for their own purposes.)
  1505. //
  1506. //
  1507. // Implementation Choices:
  1508. //
  1509. // _ILP32 / _LP64:
  1510. // This specifies the compiler data type implementation as specified in
  1511. // the relevant ABI. The choice between these is strongly influenced
  1512. // by the underlying hardware, but is not absolutely tied to it.
  1513. // Currently only two data type models are supported:
  1514. //
  1515. // _ILP32:
  1516. // Int/Long/Pointer are 32 bits. This is the historical UNIX
  1517. // and Solaris implementation. Due to its historical standing,
  1518. // this is the default case.
  1519. //
  1520. // _LP64:
  1521. // Long/Pointer are 64 bits, Int is 32 bits. This is the chosen
  1522. // implementation for 64-bit ABIs such as SPARC V9.
  1523. //
  1524. // _I32LPx:
  1525. // A compilation environment where 'int' is 32-bit, and
  1526. // longs and pointers are simply the same size.
  1527. //
  1528. // In all cases, Char is 8 bits and Short is 16 bits.
  1529. //
  1530. // _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16:
  1531. // This specifies the form of the disk VTOC (or label):
  1532. //
  1533. // _SUNOS_VTOC_8:
  1534. // This is a VTOC form which is upwardly compatible with the
  1535. // SunOS 4.x disk label and allows 8 partitions per disk.
  1536. //
  1537. // _SUNOS_VTOC_16:
  1538. // In this format the incore vtoc image matches the ondisk
  1539. // version. It allows 16 slices per disk, and is not
  1540. // compatible with the SunOS 4.x disk label.
  1541. //
  1542. // Note that these are not the only two VTOC forms possible and
  1543. // additional forms may be added. One possible form would be the
  1544. // SVr4 VTOC form. The symbol for that is reserved now, although
  1545. // it is not implemented.
  1546. //
  1547. // _SVR4_VTOC_16:
  1548. // This VTOC form is compatible with the System V Release 4
  1549. // VTOC (as implemented on the SVr4 Intel and 3b ports) with
  1550. // 16 partitions per disk.
  1551. //
  1552. //
  1553. // _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR
  1554. // This describes the type of addresses used by system DMA:
  1555. //
  1556. // _DMA_USES_PHYSADDR:
  1557. // This type of DMA, used in the x86 implementation,
  1558. // requires physical addresses for DMA buffers. The 24-bit
  1559. // addresses used by some legacy boards is the source of the
  1560. // "low-memory" (<16MB) requirement for some devices using DMA.
  1561. //
  1562. // _DMA_USES_VIRTADDR:
  1563. // This method of DMA allows the use of virtual addresses for
  1564. // DMA transfers.
  1565. //
  1566. // _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT
  1567. // This indicates the presence/absence of an fdisk table.
  1568. //
  1569. // _FIRMWARE_NEEDS_FDISK
  1570. // The fdisk table is required by system firmware. If present,
  1571. // it allows a disk to be subdivided into multiple fdisk
  1572. // partitions, each of which is equivalent to a separate,
  1573. // virtual disk. This enables the co-existence of multiple
  1574. // operating systems on a shared hard disk.
  1575. //
  1576. // _NO_FDISK_PRESENT
  1577. // If the fdisk table is absent, it is assumed that the entire
  1578. // media is allocated for a single operating system.
  1579. //
  1580. // _HAVE_TEM_FIRMWARE
  1581. // Defined if this architecture has the (fallback) option of
  1582. // using prom_* calls for doing I/O if a suitable kernel driver
  1583. // is not available to do it.
  1584. //
  1585. // _DONT_USE_1275_GENERIC_NAMES
  1586. // Controls whether or not device tree node names should
  1587. // comply with the IEEE 1275 "Generic Names" Recommended
  1588. // Practice. With _DONT_USE_GENERIC_NAMES, device-specific
  1589. // names identifying the particular device will be used.
  1590. //
  1591. // __i386_COMPAT
  1592. // This indicates whether the i386 ABI is supported as a *non-native*
  1593. // mode for the platform. When this symbol is defined:
  1594. // - 32-bit xstat-style system calls are enabled
  1595. // - 32-bit xmknod-style system calls are enabled
  1596. // - 32-bit system calls use i386 sizes -and- alignments
  1597. //
  1598. // Note that this is NOT defined for the i386 native environment!
  1599. //
  1600. // __x86
  1601. // This is ONLY a synonym for defined(__i386) || defined(__amd64)
  1602. // which is useful only insofar as these two architectures share
  1603. // common attributes. Analogous to __sparc.
  1604. //
  1605. // _PSM_MODULES
  1606. // This indicates whether or not the implementation uses PSM
  1607. // modules for processor support, reading /etc/mach from inside
  1608. // the kernel to extract a list.
  1609. //
  1610. // _RTC_CONFIG
  1611. // This indicates whether or not the implementation uses /etc/rtc_config
  1612. // to configure the real-time clock in the kernel.
  1613. //
  1614. // _UNIX_KRTLD
  1615. // This indicates that the implementation uses a dynamically
  1616. // linked unix + krtld to form the core kernel image at boot
  1617. // time, or (in the absence of this symbol) a prelinked kernel image.
  1618. //
  1619. // _OBP
  1620. // This indicates the firmware interface is OBP.
  1621. //
  1622. // _SOFT_HOSTID
  1623. // This indicates that the implementation obtains the hostid
  1624. // from the file /etc/hostid, rather than from hardware.
  1625. // The following set of definitions characterize Solaris on AMD's
  1626. // 64-bit systems.
  1627. // Define the appropriate "processor characteristics"
  1628. // Different alignment constraints for the i386 ABI in compatibility mode
  1629. // Define the appropriate "implementation choices".
  1630. // The feature test macro __i386 is generic for all processors implementing
  1631. // the Intel 386 instruction set or a superset of it. Specifically, this
  1632. // includes all members of the 386, 486, and Pentium family of processors.
  1633. // Values of _POSIX_C_SOURCE
  1634. //
  1635. // undefined not a POSIX compilation
  1636. // 1 POSIX.1-1990 compilation
  1637. // 2 POSIX.2-1992 compilation
  1638. // 199309L POSIX.1b-1993 compilation (Real Time)
  1639. // 199506L POSIX.1c-1995 compilation (POSIX Threads)
  1640. // 200112L POSIX.1-2001 compilation (Austin Group Revision)
  1641. // 200809L POSIX.1-2008 compilation
  1642. // The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS,
  1643. // and _STDC_C99 are Sun implementation specific macros created in order to
  1644. // compress common standards specified feature test macros for easier reading.
  1645. // These macros should not be used by the application developer as
  1646. // unexpected results may occur. Instead, the user should reference
  1647. // standards(7) for correct usage of the standards feature test macros.
  1648. //
  1649. // __XOPEN_OR_POSIX Used in cases where a symbol is defined by both
  1650. // X/Open or POSIX or in the negative, when neither
  1651. // X/Open or POSIX defines a symbol.
  1652. //
  1653. // _STRICT_STDC __STDC__ is specified by the C Standards and defined
  1654. // by the compiler. For Sun compilers the value of
  1655. // __STDC__ is either 1, 0, or not defined based on the
  1656. // compilation mode (see cc(1)). When the value of
  1657. // __STDC__ is 1 and in the absence of any other feature
  1658. // test macros, the namespace available to the application
  1659. // is limited to only those symbols defined by the C
  1660. // Standard. _STRICT_STDC provides a more readable means
  1661. // of identifying symbols defined by the standard, or in
  1662. // the negative, symbols that are extensions to the C
  1663. // Standard. See additional comments for GNU C differences.
  1664. //
  1665. // _STDC_C99 __STDC_VERSION__ is specified by the C standards and
  1666. // defined by the compiler and indicates the version of
  1667. // the C standard. A value of 199901L indicates a
  1668. // compiler that complies with ISO/IEC 9899:1999, other-
  1669. // wise known as the C99 standard.
  1670. //
  1671. // _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__
  1672. // is 201112L indicating a compiler that compiles with
  1673. // ISO/IEC 9899:2011, otherwise known as the C11 standard.
  1674. //
  1675. // _STRICT_SYMBOLS Used in cases where symbol visibility is restricted
  1676. // by the standards, and the user has not explicitly
  1677. // relaxed the strictness via __EXTENSIONS__.
  1678. // ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
  1679. // 99899:2011 specify the following predefined macro name:
  1680. //
  1681. // __STDC__ The integer constant 1, intended to indicate a conforming
  1682. // implementation.
  1683. //
  1684. // Furthermore, a strictly conforming program shall use only those features
  1685. // of the language and library specified in these standards. A conforming
  1686. // implementation shall accept any strictly conforming program.
  1687. //
  1688. // Based on these requirements, Sun's C compiler defines __STDC__ to 1 for
  1689. // strictly conforming environments and __STDC__ to 0 for environments that
  1690. // use ANSI C semantics but allow extensions to the C standard. For non-ANSI
  1691. // C semantics, Sun's C compiler does not define __STDC__.
  1692. //
  1693. // The GNU C project interpretation is that __STDC__ should always be defined
  1694. // to 1 for compilation modes that accept ANSI C syntax regardless of whether
  1695. // or not extensions to the C standard are used. Violations of conforming
  1696. // behavior are conditionally flagged as warnings via the use of the
  1697. // -pedantic option. In addition to defining __STDC__ to 1, the GNU C
  1698. // compiler also defines __STRICT_ANSI__ as a means of specifying strictly
  1699. // conforming environments using the -ansi or -std=<standard> options.
  1700. //
  1701. // In the absence of any other compiler options, Sun and GNU set the value
  1702. // of __STDC__ as follows when using the following options:
  1703. //
  1704. // Value of __STDC__ __STRICT_ANSI__
  1705. //
  1706. // cc -Xa (default) 0 undefined
  1707. // cc -Xt (transitional) 0 undefined
  1708. // cc -Xc (strictly conforming) 1 undefined
  1709. // cc -Xs (K&R C) undefined undefined
  1710. //
  1711. // gcc (default) 1 undefined
  1712. // gcc -ansi, -std={c89, c99,...) 1 defined
  1713. // gcc -traditional (K&R) undefined undefined
  1714. //
  1715. // The default compilation modes for Sun C compilers versus GNU C compilers
  1716. // results in a differing value for __STDC__ which results in a more
  1717. // restricted namespace when using Sun compilers. To allow both GNU and Sun
  1718. // interpretations to peacefully co-exist, we use the following Sun
  1719. // implementation _STRICT_STDC_ macro:
  1720. // Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011
  1721. // Use strict symbol visibility.
  1722. // This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are
  1723. // governed by POSIX, but have not been governed by ISO C. One can go two ways
  1724. // on what should happen if an application actively includes (not transitively)
  1725. // a header that isn't part of the ISO C spec, we opt to say that if someone has
  1726. // gone out of there way then they're doing it for a reason and that is an act
  1727. // of non-compliance and therefore it's not up to us to hide away every symbol.
  1728. //
  1729. // In general, prefer using _STRICT_SYMBOLS, but this is here in particular for
  1730. // cases where in the past we have only used a POSIX related check and we don't
  1731. // wish to make something stricter. Often applications are relying on the
  1732. // ability to, or more realistically unwittingly, have _STRICT_STDC declared and
  1733. // still use these interfaces.
  1734. // Large file interfaces:
  1735. //
  1736. // _LARGEFILE_SOURCE
  1737. // 1 large file-related additions to POSIX
  1738. // interfaces requested (fseeko, etc.)
  1739. // _LARGEFILE64_SOURCE
  1740. // 1 transitional large-file-related interfaces
  1741. // requested (seek64, stat64, etc.)
  1742. //
  1743. // The corresponding announcement macros are respectively:
  1744. // _LFS_LARGEFILE
  1745. // _LFS64_LARGEFILE
  1746. // (These are set in <unistd.h>.)
  1747. //
  1748. // Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as
  1749. // well.
  1750. //
  1751. // The large file interfaces are made visible regardless of the initial values
  1752. // of the feature test macros under certain circumstances:
  1753. // - If no explicit standards-conforming environment is requested (neither
  1754. // of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of
  1755. // __STDC__ does not imply standards conformance).
  1756. // - Extended system interfaces are explicitly requested (__EXTENSIONS__
  1757. // is defined).
  1758. // - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is
  1759. // defined). (Note that this dependency is an artifact of the current
  1760. // kernel implementation and may change in future releases.)
  1761. // Large file compilation environment control:
  1762. //
  1763. // The setting of _FILE_OFFSET_BITS controls the size of various file-related
  1764. // types and governs the mapping between file-related source function symbol
  1765. // names and the corresponding binary entry points.
  1766. //
  1767. // In the 32-bit environment, the default value is 32; if not set, set it to
  1768. // the default here, to simplify tests in other headers.
  1769. //
  1770. // In the 64-bit compilation environment, the only value allowed is 64.
  1771. // Use of _XOPEN_SOURCE
  1772. //
  1773. // The following X/Open specifications are supported:
  1774. //
  1775. // X/Open Portability Guide, Issue 3 (XPG3)
  1776. // X/Open CAE Specification, Issue 4 (XPG4)
  1777. // X/Open CAE Specification, Issue 4, Version 2 (XPG4v2)
  1778. // X/Open CAE Specification, Issue 5 (XPG5)
  1779. // Open Group Technical Standard, Issue 6 (XPG6), also referred to as
  1780. // IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002.
  1781. // Open Group Technical Standard, Issue 7 (XPG7), also referred to as
  1782. // IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009.
  1783. //
  1784. // XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1).
  1785. // XPG5 is also referred to as UNIX 98 or the Single Unix Specification,
  1786. // Version 2 (SUSv2)
  1787. // XPG6 is the result of a merge of the X/Open and POSIX specifications
  1788. // and as such is also referred to as IEEE Std. 1003.1-2001 in
  1789. // addition to UNIX 03 and SUSv3.
  1790. // XPG7 is also referred to as UNIX 08 and SUSv4.
  1791. //
  1792. // When writing a conforming X/Open application, as per the specification
  1793. // requirements, the appropriate feature test macros must be defined at
  1794. // compile time. These are as follows. For more info, see standards(7).
  1795. //
  1796. // Feature Test Macro Specification
  1797. // ------------------------------------------------ -------------
  1798. // _XOPEN_SOURCE XPG3
  1799. // _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4
  1800. // _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2
  1801. // _XOPEN_SOURCE = 500 XPG5
  1802. // _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6
  1803. // _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7
  1804. //
  1805. // In order to simplify the guards within the headers, the following
  1806. // implementation private test macros have been created. Applications
  1807. // must NOT use these private test macros as unexpected results will
  1808. // occur.
  1809. //
  1810. // Note that in general, the use of these private macros is cumulative.
  1811. // For example, the use of _XPG3 with no other restrictions on the X/Open
  1812. // namespace will make the symbols visible for XPG3 through XPG6
  1813. // compilation environments. The use of _XPG4_2 with no other X/Open
  1814. // namespace restrictions indicates that the symbols were introduced in
  1815. // XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation
  1816. // environments, but not for XPG3 or XPG4 compilation environments.
  1817. //
  1818. // _XPG3 X/Open Portability Guide, Issue 3 (XPG3)
  1819. // _XPG4 X/Open CAE Specification, Issue 4 (XPG4)
  1820. // _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS)
  1821. // _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2)
  1822. // _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3)
  1823. // _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4)
  1824. // X/Open Portability Guide, Issue 3
  1825. // _XOPEN_VERSION is defined by the X/Open specifications and is not
  1826. // normally defined by the application, except in the case of an XPG4
  1827. // application. On the implementation side, _XOPEN_VERSION defined with
  1828. // the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined
  1829. // with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application.
  1830. // _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98)
  1831. // application and with a value of 600 indicates an XPG6 (UNIX 03)
  1832. // application and with a value of 700 indicates an XPG7 (UNIX 08).
  1833. // The appropriate version is determined by the use of the
  1834. // feature test macros described earlier. The value of _XOPEN_VERSION
  1835. // defaults to 3 otherwise indicating support for XPG3 applications.
  1836. // ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly
  1837. // conforming environments. ISO 9899:1999 says it does.
  1838. //
  1839. // The presence of _LONGLONG_TYPE says "long long exists" which is therefore
  1840. // defined in all but strictly conforming environments that disallow it.
  1841. // The following macro defines a value for the ISO C99 restrict
  1842. // keyword so that _RESTRICT_KYWD resolves to "restrict" if
  1843. // an ISO C99 compiler is used, "__restrict" for c++ and "" (null string)
  1844. // if any other compiler is used. This allows for the use of single
  1845. // prototype declarations regardless of compiler version.
  1846. // The following macro defines a value for the ISO C11 _Noreturn
  1847. // keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
  1848. // an ISO C11 compiler is used and "" (null string) if any other
  1849. // compiler is used. This allows for the use of single prototype
  1850. // declarations regardless of compiler version.
  1851. // ISO/IEC 9899:2011 Annex K
  1852. // The following macro indicates header support for the ANSI C++
  1853. // standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882.
  1854. // The following macro indicates header support for the C99 standard,
  1855. // ISO/IEC 9899:1999, Programming Languages - C.
  1856. // The following macro indicates header support for the C11 standard,
  1857. // ISO/IEC 9899:2011, Programming Languages - C.
  1858. // The following macro indicates header support for the C11 standard,
  1859. // ISO/IEC 9899:2011 Annex K, Programming Languages - C.
  1860. // The following macro indicates header support for DTrace. The value is an
  1861. // integer that corresponds to the major version number for DTrace.
  1862. // CDDL HEADER START
  1863. //
  1864. // The contents of this file are subject to the terms of the
  1865. // Common Development and Distribution License, Version 1.0 only
  1866. // (the "License"). You may not use this file except in compliance
  1867. // with the License.
  1868. //
  1869. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1870. // or http://www.opensolaris.org/os/licensing.
  1871. // See the License for the specific language governing permissions
  1872. // and limitations under the License.
  1873. //
  1874. // When distributing Covered Code, include this CDDL HEADER in each
  1875. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1876. // If applicable, add the following below this CDDL HEADER, with the
  1877. // fields enclosed by brackets "[]" replaced with your own identifying
  1878. // information: Portions Copyright [yyyy] [name of copyright owner]
  1879. //
  1880. // CDDL HEADER END
  1881. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  1882. // All Rights Reserved
  1883. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  1884. //
  1885. // Copyright (c) 1995, 1998 by Sun Microsystems, Inc.
  1886. // All rights reserved.
  1887. // Copyright 2015, Joyent, Inc.
  1888. // Structure of file descriptor/event pairs supplied in
  1889. // the poll arrays.
  1890. type Pollfd_t = Pollfd /* poll.h:52:3 */
  1891. type Nfds_t = uint64 /* poll.h:54:23 */ // size of something in bytes
  1892. type Clock_t = int64 /* time_iso.h:70:14 */
  1893. type Time_t = int64 /* time_iso.h:75:14 */
  1894. type Tm = struct {
  1895. Ftm_sec int32
  1896. Ftm_min int32
  1897. Ftm_hour int32
  1898. Ftm_mday int32
  1899. Ftm_mon int32
  1900. Ftm_year int32
  1901. Ftm_wday int32
  1902. Ftm_yday int32
  1903. Ftm_isdst int32
  1904. } /* time_iso.h:80:1 */
  1905. // C11 requires sys/time_impl.h for the definition of the struct timespec.
  1906. // CDDL HEADER START
  1907. //
  1908. // The contents of this file are subject to the terms of the
  1909. // Common Development and Distribution License (the "License").
  1910. // You may not use this file except in compliance with the License.
  1911. //
  1912. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1913. // or http://www.opensolaris.org/os/licensing.
  1914. // See the License for the specific language governing permissions
  1915. // and limitations under the License.
  1916. //
  1917. // When distributing Covered Code, include this CDDL HEADER in each
  1918. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1919. // If applicable, add the following below this CDDL HEADER, with the
  1920. // fields enclosed by brackets "[]" replaced with your own identifying
  1921. // information: Portions Copyright [yyyy] [name of copyright owner]
  1922. //
  1923. // CDDL HEADER END
  1924. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  1925. // All Rights Reserved
  1926. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  1927. // Use is subject to license terms.
  1928. //
  1929. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  1930. // Copyright 2016 Joyent, Inc.
  1931. // Copyright 2021 Oxide Computer Company
  1932. // DO NOT EDIT THIS FILE.
  1933. //
  1934. // It has been auto-edited by fixincludes from:
  1935. //
  1936. // "/usr/include/sys/feature_tests.h"
  1937. //
  1938. // This had to be done to correct non-standard usages in the
  1939. // original, manufacturer supplied header file.
  1940. // CDDL HEADER START
  1941. //
  1942. // The contents of this file are subject to the terms of the
  1943. // Common Development and Distribution License (the "License").
  1944. // You may not use this file except in compliance with the License.
  1945. //
  1946. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1947. // or http://www.opensolaris.org/os/licensing.
  1948. // See the License for the specific language governing permissions
  1949. // and limitations under the License.
  1950. //
  1951. // When distributing Covered Code, include this CDDL HEADER in each
  1952. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1953. // If applicable, add the following below this CDDL HEADER, with the
  1954. // fields enclosed by brackets "[]" replaced with your own identifying
  1955. // information: Portions Copyright [yyyy] [name of copyright owner]
  1956. //
  1957. // CDDL HEADER END
  1958. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  1959. // Copyright 2016 Joyent, Inc.
  1960. // Copyright 2022 Oxide Computer Company
  1961. //
  1962. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  1963. // Use is subject to license terms.
  1964. // CDDL HEADER START
  1965. //
  1966. // The contents of this file are subject to the terms of the
  1967. // Common Development and Distribution License (the "License").
  1968. // You may not use this file except in compliance with the License.
  1969. //
  1970. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1971. // or http://www.opensolaris.org/os/licensing.
  1972. // See the License for the specific language governing permissions
  1973. // and limitations under the License.
  1974. //
  1975. //
  1976. // When distributing Covered Code, include this CDDL HEADER in each
  1977. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  1978. // If applicable, add the following below this CDDL HEADER, with the
  1979. // fields enclosed by brackets "[]" replaced with your own identifying
  1980. // information: Portions Copyright [yyyy] [name of copyright owner]
  1981. //
  1982. // CDDL HEADER END
  1983. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  1984. // Use is subject to license terms.
  1985. // Copyright 2016 Joyent, Inc.
  1986. // Machine dependent definitions moved to <sys/machtypes.h>.
  1987. // CDDL HEADER START
  1988. //
  1989. // The contents of this file are subject to the terms of the
  1990. // Common Development and Distribution License (the "License").
  1991. // You may not use this file except in compliance with the License.
  1992. //
  1993. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  1994. // or http://www.opensolaris.org/os/licensing.
  1995. // See the License for the specific language governing permissions
  1996. // and limitations under the License.
  1997. //
  1998. // When distributing Covered Code, include this CDDL HEADER in each
  1999. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2000. // If applicable, add the following below this CDDL HEADER, with the
  2001. // fields enclosed by brackets "[]" replaced with your own identifying
  2002. // information: Portions Copyright [yyyy] [name of copyright owner]
  2003. //
  2004. // CDDL HEADER END
  2005. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  2006. // Use is subject to license terms.
  2007. // Machine dependent types:
  2008. //
  2009. // intel ia32 Version
  2010. type X_label_t = struct{ Fval [8]int64 } /* machtypes.h:59:9 */
  2011. // C11 requires sys/time_impl.h for the definition of the struct timespec.
  2012. // CDDL HEADER START
  2013. //
  2014. // The contents of this file are subject to the terms of the
  2015. // Common Development and Distribution License (the "License").
  2016. // You may not use this file except in compliance with the License.
  2017. //
  2018. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2019. // or http://www.opensolaris.org/os/licensing.
  2020. // See the License for the specific language governing permissions
  2021. // and limitations under the License.
  2022. //
  2023. // When distributing Covered Code, include this CDDL HEADER in each
  2024. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2025. // If applicable, add the following below this CDDL HEADER, with the
  2026. // fields enclosed by brackets "[]" replaced with your own identifying
  2027. // information: Portions Copyright [yyyy] [name of copyright owner]
  2028. //
  2029. // CDDL HEADER END
  2030. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2031. // All Rights Reserved
  2032. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  2033. // Use is subject to license terms.
  2034. //
  2035. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2036. // Copyright 2016 Joyent, Inc.
  2037. // Copyright 2021 Oxide Computer Company
  2038. // DO NOT EDIT THIS FILE.
  2039. //
  2040. // It has been auto-edited by fixincludes from:
  2041. //
  2042. // "/usr/include/sys/feature_tests.h"
  2043. //
  2044. // This had to be done to correct non-standard usages in the
  2045. // original, manufacturer supplied header file.
  2046. // CDDL HEADER START
  2047. //
  2048. // The contents of this file are subject to the terms of the
  2049. // Common Development and Distribution License (the "License").
  2050. // You may not use this file except in compliance with the License.
  2051. //
  2052. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2053. // or http://www.opensolaris.org/os/licensing.
  2054. // See the License for the specific language governing permissions
  2055. // and limitations under the License.
  2056. //
  2057. // When distributing Covered Code, include this CDDL HEADER in each
  2058. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2059. // If applicable, add the following below this CDDL HEADER, with the
  2060. // fields enclosed by brackets "[]" replaced with your own identifying
  2061. // information: Portions Copyright [yyyy] [name of copyright owner]
  2062. //
  2063. // CDDL HEADER END
  2064. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2065. // Copyright 2016 Joyent, Inc.
  2066. // Copyright 2022 Oxide Computer Company
  2067. //
  2068. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2069. // Use is subject to license terms.
  2070. // CDDL HEADER START
  2071. //
  2072. // The contents of this file are subject to the terms of the
  2073. // Common Development and Distribution License (the "License").
  2074. // You may not use this file except in compliance with the License.
  2075. //
  2076. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2077. // or http://www.opensolaris.org/os/licensing.
  2078. // See the License for the specific language governing permissions
  2079. // and limitations under the License.
  2080. //
  2081. //
  2082. // When distributing Covered Code, include this CDDL HEADER in each
  2083. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2084. // If applicable, add the following below this CDDL HEADER, with the
  2085. // fields enclosed by brackets "[]" replaced with your own identifying
  2086. // information: Portions Copyright [yyyy] [name of copyright owner]
  2087. //
  2088. // CDDL HEADER END
  2089. // Copyright 2008 Sun Microsystems, Inc. All rights reserved.
  2090. // Use is subject to license terms.
  2091. // Copyright 2016 Joyent, Inc.
  2092. // Machine dependent definitions moved to <sys/machtypes.h>.
  2093. // CDDL HEADER START
  2094. //
  2095. // The contents of this file are subject to the terms of the
  2096. // Common Development and Distribution License (the "License").
  2097. // You may not use this file except in compliance with the License.
  2098. //
  2099. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2100. // or http://www.opensolaris.org/os/licensing.
  2101. // See the License for the specific language governing permissions
  2102. // and limitations under the License.
  2103. //
  2104. // When distributing Covered Code, include this CDDL HEADER in each
  2105. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2106. // If applicable, add the following below this CDDL HEADER, with the
  2107. // fields enclosed by brackets "[]" replaced with your own identifying
  2108. // information: Portions Copyright [yyyy] [name of copyright owner]
  2109. //
  2110. // CDDL HEADER END
  2111. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  2112. // Use is subject to license terms.
  2113. // Machine dependent types:
  2114. //
  2115. // intel ia32 Version
  2116. type Label_t = X_label_t /* machtypes.h:59:54 */
  2117. type Lock_t = uint8 /* machtypes.h:63:23 */ // lock work for busy wait
  2118. // Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C
  2119. // committee's working draft for the revision of the current ISO C standard,
  2120. // ISO/IEC 9899:1990 Programming language - C. These are not currently
  2121. // required by any standard but constitute a useful, general purpose set
  2122. // of type definitions which is namespace clean with respect to all standards.
  2123. // CDDL HEADER START
  2124. //
  2125. // The contents of this file are subject to the terms of the
  2126. // Common Development and Distribution License, Version 1.0 only
  2127. // (the "License"). You may not use this file except in compliance
  2128. // with the License.
  2129. //
  2130. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2131. // or http://www.opensolaris.org/os/licensing.
  2132. // See the License for the specific language governing permissions
  2133. // and limitations under the License.
  2134. //
  2135. // When distributing Covered Code, include this CDDL HEADER in each
  2136. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2137. // If applicable, add the following below this CDDL HEADER, with the
  2138. // fields enclosed by brackets "[]" replaced with your own identifying
  2139. // information: Portions Copyright [yyyy] [name of copyright owner]
  2140. //
  2141. // CDDL HEADER END
  2142. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2143. //
  2144. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  2145. // Use is subject to license terms.
  2146. // This file, <sys/int_types.h>, is part of the Sun Microsystems implementation
  2147. // of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999
  2148. // Programming language - C.
  2149. //
  2150. // Programs/Modules should not directly include this file. Access to the
  2151. // types defined in this file should be through the inclusion of one of the
  2152. // following files:
  2153. //
  2154. // <sys/types.h> Provides only the "_t" types defined in this
  2155. // file which is a subset of the contents of
  2156. // <inttypes.h>. (This can be appropriate for
  2157. // all programs/modules except those claiming
  2158. // ANSI-C conformance.)
  2159. //
  2160. // <sys/inttypes.h> Provides the Kernel and Driver appropriate
  2161. // components of <inttypes.h>.
  2162. //
  2163. // <inttypes.h> For use by applications.
  2164. //
  2165. // See these files for more details.
  2166. // DO NOT EDIT THIS FILE.
  2167. //
  2168. // It has been auto-edited by fixincludes from:
  2169. //
  2170. // "/usr/include/sys/feature_tests.h"
  2171. //
  2172. // This had to be done to correct non-standard usages in the
  2173. // original, manufacturer supplied header file.
  2174. // CDDL HEADER START
  2175. //
  2176. // The contents of this file are subject to the terms of the
  2177. // Common Development and Distribution License (the "License").
  2178. // You may not use this file except in compliance with the License.
  2179. //
  2180. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2181. // or http://www.opensolaris.org/os/licensing.
  2182. // See the License for the specific language governing permissions
  2183. // and limitations under the License.
  2184. //
  2185. // When distributing Covered Code, include this CDDL HEADER in each
  2186. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2187. // If applicable, add the following below this CDDL HEADER, with the
  2188. // fields enclosed by brackets "[]" replaced with your own identifying
  2189. // information: Portions Copyright [yyyy] [name of copyright owner]
  2190. //
  2191. // CDDL HEADER END
  2192. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2193. // Copyright 2016 Joyent, Inc.
  2194. // Copyright 2022 Oxide Computer Company
  2195. //
  2196. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2197. // Use is subject to license terms.
  2198. // Basic / Extended integer types
  2199. //
  2200. // The following defines the basic fixed-size integer types.
  2201. //
  2202. // Implementations are free to typedef them to Standard C integer types or
  2203. // extensions that they support. If an implementation does not support one
  2204. // of the particular integer data types below, then it should not define the
  2205. // typedefs and macros corresponding to that data type. Note that int8_t
  2206. // is not defined in -Xs mode on ISAs for which the ABI specifies "char"
  2207. // as an unsigned entity because there is no way to define an eight bit
  2208. // signed integral.
  2209. type Int8_t = int8 /* int_types.h:75:16 */
  2210. type Int16_t = int16 /* int_types.h:79:17 */
  2211. type Int32_t = int32 /* int_types.h:80:15 */
  2212. type Int64_t = int64 /* int_types.h:83:16 */
  2213. type Uint8_t = uint8 /* int_types.h:91:24 */
  2214. type Uint16_t = uint16 /* int_types.h:92:25 */
  2215. type Uint32_t = uint32 /* int_types.h:93:23 */
  2216. type Uint64_t = uint64 /* int_types.h:95:24 */
  2217. // intmax_t and uintmax_t are to be the longest (in number of bits) signed
  2218. // and unsigned integer types supported by the implementation.
  2219. type Intmax_t = int64 /* int_types.h:107:19 */
  2220. type Uintmax_t = uint64 /* int_types.h:108:19 */
  2221. // intptr_t and uintptr_t are signed and unsigned integer types large enough
  2222. // to hold any data pointer; that is, data pointers can be assigned into or
  2223. // from these integer types without losing precision.
  2224. type Intptr_t = int64 /* int_types.h:120:16 */
  2225. type Uintptr_t = uint64 /* int_types.h:121:24 */
  2226. // The following define the fastest integer types that can hold the
  2227. // specified number of bits.
  2228. type Int_fast8_t = int8 /* int_types.h:132:16 */
  2229. type Int_fast16_t = int32 /* int_types.h:136:15 */
  2230. type Int_fast32_t = int32 /* int_types.h:137:15 */
  2231. type Int_fast64_t = int64 /* int_types.h:139:16 */
  2232. type Uint_fast8_t = uint8 /* int_types.h:146:24 */
  2233. type Uint_fast16_t = uint32 /* int_types.h:147:23 */
  2234. type Uint_fast32_t = uint32 /* int_types.h:148:23 */
  2235. type Uint_fast64_t = uint64 /* int_types.h:150:24 */
  2236. // The following define the smallest integer types that can hold the
  2237. // specified number of bits.
  2238. type Int_least8_t = int8 /* int_types.h:162:16 */
  2239. type Int_least16_t = int16 /* int_types.h:166:17 */
  2240. type Int_least32_t = int32 /* int_types.h:167:15 */
  2241. type Int_least64_t = int64 /* int_types.h:169:16 */
  2242. // If these are changed, please update char16_t and char32_t in head/uchar.h.
  2243. type Uint_least8_t = uint8 /* int_types.h:179:24 */
  2244. type Uint_least16_t = uint16 /* int_types.h:180:25 */
  2245. type Uint_least32_t = uint32 /* int_types.h:181:23 */
  2246. type Uint_least64_t = uint64 /* int_types.h:183:24 */
  2247. // Strictly conforming ANSI C environments prior to the 1999
  2248. // revision of the C Standard (ISO/IEC 9899:1999) do not have
  2249. // the long long data type.
  2250. type Longlong_t = int64 /* types.h:72:20 */
  2251. type U_longlong_t = uint64 /* types.h:73:28 */
  2252. // These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had
  2253. // to use them instead of int32_t and uint32_t because DEC had
  2254. // shipped 64-bit wide.
  2255. type T_scalar_t = int32 /* types.h:92:18 */
  2256. type T_uscalar_t = uint32 /* types.h:93:18 */
  2257. // POSIX Extensions
  2258. type Uchar_t = uint8 /* types.h:102:23 */
  2259. type Ushort_t = uint16 /* types.h:103:24 */
  2260. type Uint_t = uint32 /* types.h:104:22 */
  2261. type Ulong_t = uint64 /* types.h:105:23 */
  2262. type Caddr_t = uintptr /* types.h:107:15 */ // ?<core address> type
  2263. type Daddr_t = int64 /* types.h:108:15 */ // <disk address> type
  2264. type Cnt_t = int16 /* types.h:109:16 */ // pointer difference
  2265. // VM-related types
  2266. type Pfn_t = uint64 /* types.h:123:18 */ // page frame number
  2267. type Pgcnt_t = uint64 /* types.h:124:18 */ // number of pages
  2268. type Spgcnt_t = int64 /* types.h:125:15 */ // signed number of pages
  2269. type Use_t = uint8 /* types.h:127:18 */ // use count for swap.
  2270. type Sysid_t = int16 /* types.h:128:16 */
  2271. type Index_t = int16 /* types.h:129:16 */
  2272. type Timeout_id_t = uintptr /* types.h:130:15 */ // opaque handle from timeout(9F)
  2273. type Bufcall_id_t = uintptr /* types.h:131:15 */ // opaque handle from bufcall(9F)
  2274. // The size of off_t and related types depends on the setting of
  2275. // _FILE_OFFSET_BITS. (Note that other system headers define other types
  2276. // related to those defined here.)
  2277. //
  2278. // If _LARGEFILE64_SOURCE is defined, variants of these types that are
  2279. // explicitly 64 bits wide become available.
  2280. type Off_t = int64 /* types.h:145:15 */ // offsets within files
  2281. type Off64_t = int64 /* types.h:152:16 */ // offsets within files
  2282. type Ino_t = uint64 /* types.h:161:18 */ // expanded inode type
  2283. type Blkcnt_t = int64 /* types.h:162:15 */ // count of file blocks
  2284. type Fsblkcnt_t = uint64 /* types.h:163:18 */ // count of file system blocks
  2285. type Fsfilcnt_t = uint64 /* types.h:164:18 */ // count of files
  2286. type Ino64_t = uint64 /* types.h:174:16 */ // expanded inode type
  2287. type Blkcnt64_t = int64 /* types.h:175:18 */ // count of file blocks
  2288. type Fsblkcnt64_t = uint64 /* types.h:176:20 */ // count of file system blocks
  2289. type Fsfilcnt64_t = uint64 /* types.h:177:20 */ // count of files
  2290. type Blksize_t = int32 /* types.h:187:14 */ // used for block sizes
  2291. // The boolean_t type has had a varied amount of exposure over the years in
  2292. // terms of how its enumeration constants have been exposed. In particular, it
  2293. // originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the
  2294. // B_TRUE and B_FALSE with an underscore. This check never included the
  2295. // question of if we were in a strict ANSI C environment or whether extensions
  2296. // were defined.
  2297. //
  2298. // Compilers such as clang started defaulting to always including an
  2299. // XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__.
  2300. // This would lead most software that had used the non-underscore versions to
  2301. // need it. As such, we have adjusted the non-strict XOPEN environment to retain
  2302. // its old behavior so as to minimize namespace pollution; however, we instead
  2303. // include both variants of the definitions in the generally visible version
  2304. // allowing software written in either world to hopefully end up in a good
  2305. // place.
  2306. //
  2307. // This isn't perfect, but should hopefully minimize the pain for folks actually
  2308. // trying to build software.
  2309. type Boolean_t = uint32 /* types.h:215:69 */
  2310. // The {u,}pad64_t types can be used in structures such that those structures
  2311. // may be accessed by code produced by compilation environments which don't
  2312. // support a 64 bit integral datatype. The intention is not to allow
  2313. // use of these fields in such environments, but to maintain the alignment
  2314. // and offsets of the structure.
  2315. //
  2316. // Similar comments for {u,}pad128_t.
  2317. //
  2318. // Note that these types do NOT generate any stronger alignment constraints
  2319. // than those available in the underlying ABI. See <sys/isa_defs.h>
  2320. type Pad64_t = int64 /* types.h:240:18 */
  2321. type Upad64_t = uint64 /* types.h:241:18 */
  2322. type Pad128_t = struct {
  2323. F_q float64
  2324. F__ccgo_pad1 [8]byte
  2325. } /* types.h:257:3 */
  2326. type Upad128_t = struct {
  2327. F_q float64
  2328. F__ccgo_pad1 [8]byte
  2329. } /* types.h:262:3 */
  2330. type Offset_t = int64 /* types.h:264:20 */
  2331. type U_offset_t = uint64 /* types.h:265:22 */
  2332. type Len_t = uint64 /* types.h:266:22 */
  2333. type Diskaddr_t = uint64 /* types.h:267:22 */
  2334. // Definitions remaining from previous partial support for 64-bit file
  2335. // offsets. This partial support for devices greater than 2gb requires
  2336. // compiler support for long long.
  2337. type Lloff_t = struct{ F_f int64 } /* types.h:284:3 */
  2338. type Lldaddr_t = struct{ F_f int64 } /* types.h:304:3 */
  2339. type K_fltset_t = uint32 /* types.h:317:16 */ // kernel fault set type
  2340. // The following type is for various kinds of identifiers. The
  2341. // actual type must be the same for all since some system calls
  2342. // (such as sigsend) take arguments that may be any of these
  2343. // types. The enumeration type idtype_t defined in sys/procset.h
  2344. // is used to indicate what type of id is being specified --
  2345. // a process id, process group id, session id, scheduling class id,
  2346. // user id, group id, project id, task id or zone id.
  2347. type Id_t = int32 /* types.h:329:14 */
  2348. type Lgrp_id_t = int32 /* types.h:334:15 */ // lgroup ID
  2349. // Type useconds_t is an unsigned integral type capable of storing
  2350. // values at least in the range of zero to 1,000,000.
  2351. type Useconds_t = uint32 /* types.h:340:17 */ // Time, in microseconds
  2352. type Suseconds_t = int64 /* types.h:344:14 */ // signed # of microseconds
  2353. // Typedefs for dev_t components.
  2354. type Major_t = uint32 /* types.h:351:16 */ // major part of device number
  2355. type Minor_t = uint32 /* types.h:352:16 */ // minor part of device number
  2356. // The data type of a thread priority.
  2357. type Pri_t = int16 /* types.h:361:15 */
  2358. // The data type for a CPU flags field. (Can be extended to larger unsigned
  2359. // types, if needed, limited by ability to update atomically.)
  2360. type Cpu_flag_t = uint16 /* types.h:367:18 */
  2361. // For compatibility reasons the following typedefs (prefixed o_)
  2362. // can't grow regardless of the EFT definition. Although,
  2363. // applications should not explicitly use these typedefs
  2364. // they may be included via a system header definition.
  2365. // WARNING: These typedefs may be removed in a future
  2366. // release.
  2367. //
  2368. // ex. the definitions in s5inode.h (now obsoleted)
  2369. // remained small to preserve compatibility
  2370. // in the S5 file system type.
  2371. type O_mode_t = uint16 /* types.h:380:18 */ // old file attribute type
  2372. type O_dev_t = int16 /* types.h:381:15 */ // old device type
  2373. type O_uid_t = uint16 /* types.h:382:18 */ // old UID type
  2374. type O_gid_t = uint16 /* types.h:383:17 */ // old GID type
  2375. type O_nlink_t = int16 /* types.h:384:15 */ // old file link type
  2376. type O_pid_t = int16 /* types.h:385:15 */ // old process id type
  2377. type O_ino_t = uint16 /* types.h:386:18 */ // old inode type
  2378. // POSIX and XOPEN Declarations
  2379. type Key_t = int32 /* types.h:392:13 */ // IPC key type
  2380. type Mode_t = uint32 /* types.h:394:16 */ // file attribute type
  2381. type Uid_t = uint32 /* types.h:401:22 */ // UID type
  2382. type Gid_t = uint32 /* types.h:404:15 */ // GID type
  2383. type Datalink_id_t = uint32 /* types.h:406:18 */
  2384. type Vrid_t = uint32 /* types.h:407:18 */
  2385. type Taskid_t = int32 /* types.h:409:17 */
  2386. type Projid_t = int32 /* types.h:410:17 */
  2387. type Poolid_t = int32 /* types.h:411:14 */
  2388. type Zoneid_t = int32 /* types.h:412:14 */
  2389. type Ctid_t = int32 /* types.h:413:14 */
  2390. // POSIX definitions are same as defined in thread.h and synch.h.
  2391. // Any changes made to here should be reflected in corresponding
  2392. // files as described in comments.
  2393. type Pthread_t = uint32 /* types.h:420:16 */ // = thread_t in thread.h
  2394. type Pthread_key_t = uint32 /* types.h:421:16 */ // = thread_key_t in thread.h
  2395. // "Magic numbers" tagging synchronization object types
  2396. type X_pthread_mutex = struct {
  2397. F__pthread_mutex_flags struct {
  2398. F__pthread_mutex_flag1 uint16
  2399. F__pthread_mutex_flag2 uint8
  2400. F__pthread_mutex_ceiling uint8
  2401. F__pthread_mutex_type uint16
  2402. F__pthread_mutex_magic uint16
  2403. }
  2404. F__pthread_mutex_lock struct {
  2405. F__ccgo_pad1 [0]uint64
  2406. F__pthread_mutex_lock64 struct{ F__pthread_mutex_pad [8]uint8 }
  2407. }
  2408. F__pthread_mutex_data uint64
  2409. } /* types.h:429:9 */
  2410. // = thread_key_t in thread.h
  2411. // "Magic numbers" tagging synchronization object types
  2412. type Pthread_mutex_t = X_pthread_mutex /* types.h:448:3 */
  2413. type X_pthread_cond = struct {
  2414. F__pthread_cond_flags struct {
  2415. F__pthread_cond_flag [4]uint8
  2416. F__pthread_cond_type uint16
  2417. F__pthread_cond_magic uint16
  2418. }
  2419. F__pthread_cond_data uint64
  2420. } /* types.h:450:9 */
  2421. type Pthread_cond_t = X_pthread_cond /* types.h:457:3 */
  2422. // UNIX 98 Extension
  2423. type X_pthread_rwlock = struct {
  2424. F__pthread_rwlock_readers int32
  2425. F__pthread_rwlock_type uint16
  2426. F__pthread_rwlock_magic uint16
  2427. F__pthread_rwlock_mutex Pthread_mutex_t
  2428. F__pthread_rwlock_readercv Pthread_cond_t
  2429. F__pthread_rwlock_writercv Pthread_cond_t
  2430. } /* types.h:462:9 */
  2431. // UNIX 98 Extension
  2432. type Pthread_rwlock_t = X_pthread_rwlock /* types.h:469:3 */
  2433. // SUSV3
  2434. type Pthread_barrier_t = struct {
  2435. F__pthread_barrier_count uint32
  2436. F__pthread_barrier_current uint32
  2437. F__pthread_barrier_cycle uint64
  2438. F__pthread_barrier_reserved uint64
  2439. F__pthread_barrier_lock Pthread_mutex_t
  2440. F__pthread_barrier_cond Pthread_cond_t
  2441. } /* types.h:481:3 */
  2442. type Pthread_spinlock_t = Pthread_mutex_t /* types.h:483:25 */
  2443. // attributes for threads, dynamically allocated by library
  2444. type X_pthread_attr = struct{ F__pthread_attrp uintptr } /* types.h:488:9 */
  2445. // attributes for threads, dynamically allocated by library
  2446. type Pthread_attr_t = X_pthread_attr /* types.h:490:3 */
  2447. // attributes for mutex, dynamically allocated by library
  2448. type X_pthread_mutexattr = struct{ F__pthread_mutexattrp uintptr } /* types.h:495:9 */
  2449. // attributes for mutex, dynamically allocated by library
  2450. type Pthread_mutexattr_t = X_pthread_mutexattr /* types.h:497:3 */
  2451. // attributes for cond, dynamically allocated by library
  2452. type X_pthread_condattr = struct{ F__pthread_condattrp uintptr } /* types.h:502:9 */
  2453. // attributes for cond, dynamically allocated by library
  2454. type Pthread_condattr_t = X_pthread_condattr /* types.h:504:3 */
  2455. // pthread_once
  2456. type X_once = struct{ F__pthread_once_pad [4]uint64 } /* types.h:509:9 */
  2457. // pthread_once
  2458. type Pthread_once_t = X_once /* types.h:511:3 */
  2459. // UNIX 98 Extensions
  2460. // attributes for rwlock, dynamically allocated by library
  2461. type X_pthread_rwlockattr = struct{ F__pthread_rwlockattrp uintptr } /* types.h:517:9 */
  2462. // UNIX 98 Extensions
  2463. // attributes for rwlock, dynamically allocated by library
  2464. type Pthread_rwlockattr_t = X_pthread_rwlockattr /* types.h:519:3 */
  2465. // SUSV3
  2466. // attributes for pthread_barrier_t, dynamically allocated by library
  2467. type Pthread_barrierattr_t = struct{ F__pthread_barrierattrp uintptr } /* types.h:527:3 */
  2468. type Dev_t = uint64 /* types.h:529:17 */ // expanded device type
  2469. type Nlink_t = uint32 /* types.h:532:16 */ // file link type
  2470. type Pid_t = int32 /* types.h:533:13 */ // process id type
  2471. type Ssize_t = int64 /* types.h:551:14 */ // size of something in bytes or -1
  2472. type Clockid_t = int32 /* types.h:569:13 */ // clock identifier type
  2473. type Timer_t = int32 /* types.h:574:13 */ // timer identifier type
  2474. // BEGIN CSTYLED
  2475. type Unchar = uint8 /* types.h:580:23 */
  2476. type Ushort = uint16 /* types.h:581:24 */
  2477. type Uint = uint32 /* types.h:582:22 */
  2478. type Ulong = uint64 /* types.h:583:23 */
  2479. // END CSTYLED
  2480. // The following is the value of type id_t to use to indicate the
  2481. // caller's current id. See procset.h for the type idtype_t
  2482. // which defines which kind of id is being specified.
  2483. // The following value of type pfn_t is used to indicate
  2484. // invalid page frame number.
  2485. // BEGIN CSTYLED
  2486. type U_char = uint8 /* types.h:650:23 */
  2487. type U_short = uint16 /* types.h:651:24 */
  2488. type U_int = uint32 /* types.h:652:22 */
  2489. type U_long = uint64 /* types.h:653:23 */
  2490. type X_quad = struct{ Fval [2]int32 } /* types.h:654:9 */
  2491. type Quad_t = X_quad /* types.h:654:38 */ // used by UFS
  2492. type Quad = Quad_t /* types.h:655:17 */ // used by UFS
  2493. // END CSTYLED
  2494. // Nested include for BSD/sockets source compatibility.
  2495. // (The select macros used to be defined here).
  2496. // CDDL HEADER START
  2497. //
  2498. // The contents of this file are subject to the terms of the
  2499. // Common Development and Distribution License (the "License").
  2500. // You may not use this file except in compliance with the License.
  2501. //
  2502. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2503. // or http://www.opensolaris.org/os/licensing.
  2504. // See the License for the specific language governing permissions
  2505. // and limitations under the License.
  2506. //
  2507. // When distributing Covered Code, include this CDDL HEADER in each
  2508. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2509. // If applicable, add the following below this CDDL HEADER, with the
  2510. // fields enclosed by brackets "[]" replaced with your own identifying
  2511. // information: Portions Copyright [yyyy] [name of copyright owner]
  2512. //
  2513. // CDDL HEADER END
  2514. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2515. //
  2516. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2517. //
  2518. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  2519. // Use is subject to license terms.
  2520. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2521. // All Rights Reserved
  2522. // University Copyright- Copyright (c) 1982, 1986, 1988
  2523. // The Regents of the University of California
  2524. // All Rights Reserved
  2525. //
  2526. // University Acknowledgment- Portions of this document are derived from
  2527. // software developed by the University of California, Berkeley, and its
  2528. // contributors.
  2529. // DO NOT EDIT THIS FILE.
  2530. //
  2531. // It has been auto-edited by fixincludes from:
  2532. //
  2533. // "/usr/include/sys/feature_tests.h"
  2534. //
  2535. // This had to be done to correct non-standard usages in the
  2536. // original, manufacturer supplied header file.
  2537. // CDDL HEADER START
  2538. //
  2539. // The contents of this file are subject to the terms of the
  2540. // Common Development and Distribution License (the "License").
  2541. // You may not use this file except in compliance with the License.
  2542. //
  2543. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2544. // or http://www.opensolaris.org/os/licensing.
  2545. // See the License for the specific language governing permissions
  2546. // and limitations under the License.
  2547. //
  2548. // When distributing Covered Code, include this CDDL HEADER in each
  2549. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2550. // If applicable, add the following below this CDDL HEADER, with the
  2551. // fields enclosed by brackets "[]" replaced with your own identifying
  2552. // information: Portions Copyright [yyyy] [name of copyright owner]
  2553. //
  2554. // CDDL HEADER END
  2555. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2556. // Copyright 2016 Joyent, Inc.
  2557. // Copyright 2022 Oxide Computer Company
  2558. //
  2559. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2560. // Use is subject to license terms.
  2561. // CDDL HEADER START
  2562. //
  2563. // The contents of this file are subject to the terms of the
  2564. // Common Development and Distribution License, Version 1.0 only
  2565. // (the "License"). You may not use this file except in compliance
  2566. // with the License.
  2567. //
  2568. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2569. // or http://www.opensolaris.org/os/licensing.
  2570. // See the License for the specific language governing permissions
  2571. // and limitations under the License.
  2572. //
  2573. // When distributing Covered Code, include this CDDL HEADER in each
  2574. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2575. // If applicable, add the following below this CDDL HEADER, with the
  2576. // fields enclosed by brackets "[]" replaced with your own identifying
  2577. // information: Portions Copyright [yyyy] [name of copyright owner]
  2578. //
  2579. // CDDL HEADER END
  2580. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  2581. // Use is subject to license terms.
  2582. // Implementation-private. This header should not be included
  2583. // directly by an application. The application should instead
  2584. // include <time.h> which includes this header conditionally
  2585. // depending on which feature test macros are defined. By default,
  2586. // this header is included by <time.h>. X/Open and POSIX
  2587. // standards requirements result in this header being included
  2588. // by <time.h> only under a restricted set of conditions.
  2589. // DO NOT EDIT THIS FILE.
  2590. //
  2591. // It has been auto-edited by fixincludes from:
  2592. //
  2593. // "/usr/include/sys/feature_tests.h"
  2594. //
  2595. // This had to be done to correct non-standard usages in the
  2596. // original, manufacturer supplied header file.
  2597. // CDDL HEADER START
  2598. //
  2599. // The contents of this file are subject to the terms of the
  2600. // Common Development and Distribution License (the "License").
  2601. // You may not use this file except in compliance with the License.
  2602. //
  2603. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2604. // or http://www.opensolaris.org/os/licensing.
  2605. // See the License for the specific language governing permissions
  2606. // and limitations under the License.
  2607. //
  2608. // When distributing Covered Code, include this CDDL HEADER in each
  2609. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2610. // If applicable, add the following below this CDDL HEADER, with the
  2611. // fields enclosed by brackets "[]" replaced with your own identifying
  2612. // information: Portions Copyright [yyyy] [name of copyright owner]
  2613. //
  2614. // CDDL HEADER END
  2615. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2616. // Copyright 2016 Joyent, Inc.
  2617. // Copyright 2022 Oxide Computer Company
  2618. //
  2619. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2620. // Use is subject to license terms.
  2621. // Time expressed in seconds and nanoseconds
  2622. type Timespec = struct {
  2623. Ftv_sec int64
  2624. Ftv_nsec int64
  2625. } /* time_impl.h:57:9 */
  2626. // used by UFS
  2627. // END CSTYLED
  2628. // Nested include for BSD/sockets source compatibility.
  2629. // (The select macros used to be defined here).
  2630. // CDDL HEADER START
  2631. //
  2632. // The contents of this file are subject to the terms of the
  2633. // Common Development and Distribution License (the "License").
  2634. // You may not use this file except in compliance with the License.
  2635. //
  2636. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2637. // or http://www.opensolaris.org/os/licensing.
  2638. // See the License for the specific language governing permissions
  2639. // and limitations under the License.
  2640. //
  2641. // When distributing Covered Code, include this CDDL HEADER in each
  2642. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2643. // If applicable, add the following below this CDDL HEADER, with the
  2644. // fields enclosed by brackets "[]" replaced with your own identifying
  2645. // information: Portions Copyright [yyyy] [name of copyright owner]
  2646. //
  2647. // CDDL HEADER END
  2648. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2649. //
  2650. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2651. //
  2652. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  2653. // Use is subject to license terms.
  2654. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2655. // All Rights Reserved
  2656. // University Copyright- Copyright (c) 1982, 1986, 1988
  2657. // The Regents of the University of California
  2658. // All Rights Reserved
  2659. //
  2660. // University Acknowledgment- Portions of this document are derived from
  2661. // software developed by the University of California, Berkeley, and its
  2662. // contributors.
  2663. // DO NOT EDIT THIS FILE.
  2664. //
  2665. // It has been auto-edited by fixincludes from:
  2666. //
  2667. // "/usr/include/sys/feature_tests.h"
  2668. //
  2669. // This had to be done to correct non-standard usages in the
  2670. // original, manufacturer supplied header file.
  2671. // CDDL HEADER START
  2672. //
  2673. // The contents of this file are subject to the terms of the
  2674. // Common Development and Distribution License (the "License").
  2675. // You may not use this file except in compliance with the License.
  2676. //
  2677. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2678. // or http://www.opensolaris.org/os/licensing.
  2679. // See the License for the specific language governing permissions
  2680. // and limitations under the License.
  2681. //
  2682. // When distributing Covered Code, include this CDDL HEADER in each
  2683. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2684. // If applicable, add the following below this CDDL HEADER, with the
  2685. // fields enclosed by brackets "[]" replaced with your own identifying
  2686. // information: Portions Copyright [yyyy] [name of copyright owner]
  2687. //
  2688. // CDDL HEADER END
  2689. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2690. // Copyright 2016 Joyent, Inc.
  2691. // Copyright 2022 Oxide Computer Company
  2692. //
  2693. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2694. // Use is subject to license terms.
  2695. // CDDL HEADER START
  2696. //
  2697. // The contents of this file are subject to the terms of the
  2698. // Common Development and Distribution License, Version 1.0 only
  2699. // (the "License"). You may not use this file except in compliance
  2700. // with the License.
  2701. //
  2702. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2703. // or http://www.opensolaris.org/os/licensing.
  2704. // See the License for the specific language governing permissions
  2705. // and limitations under the License.
  2706. //
  2707. // When distributing Covered Code, include this CDDL HEADER in each
  2708. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2709. // If applicable, add the following below this CDDL HEADER, with the
  2710. // fields enclosed by brackets "[]" replaced with your own identifying
  2711. // information: Portions Copyright [yyyy] [name of copyright owner]
  2712. //
  2713. // CDDL HEADER END
  2714. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  2715. // Use is subject to license terms.
  2716. // Implementation-private. This header should not be included
  2717. // directly by an application. The application should instead
  2718. // include <time.h> which includes this header conditionally
  2719. // depending on which feature test macros are defined. By default,
  2720. // this header is included by <time.h>. X/Open and POSIX
  2721. // standards requirements result in this header being included
  2722. // by <time.h> only under a restricted set of conditions.
  2723. // DO NOT EDIT THIS FILE.
  2724. //
  2725. // It has been auto-edited by fixincludes from:
  2726. //
  2727. // "/usr/include/sys/feature_tests.h"
  2728. //
  2729. // This had to be done to correct non-standard usages in the
  2730. // original, manufacturer supplied header file.
  2731. // CDDL HEADER START
  2732. //
  2733. // The contents of this file are subject to the terms of the
  2734. // Common Development and Distribution License (the "License").
  2735. // You may not use this file except in compliance with the License.
  2736. //
  2737. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2738. // or http://www.opensolaris.org/os/licensing.
  2739. // See the License for the specific language governing permissions
  2740. // and limitations under the License.
  2741. //
  2742. // When distributing Covered Code, include this CDDL HEADER in each
  2743. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2744. // If applicable, add the following below this CDDL HEADER, with the
  2745. // fields enclosed by brackets "[]" replaced with your own identifying
  2746. // information: Portions Copyright [yyyy] [name of copyright owner]
  2747. //
  2748. // CDDL HEADER END
  2749. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2750. // Copyright 2016 Joyent, Inc.
  2751. // Copyright 2022 Oxide Computer Company
  2752. //
  2753. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2754. // Use is subject to license terms.
  2755. // Time expressed in seconds and nanoseconds
  2756. type Timespec_t = Timespec /* time_impl.h:60:3 */
  2757. type Timestruc_t = Timespec /* time_impl.h:81:25 */ // definition per SVr4
  2758. // The following has been left in for backward compatibility. Portable
  2759. // applications should not use the structure name timestruc.
  2760. // Timer specification
  2761. type Itimerspec = struct {
  2762. Fit_interval struct {
  2763. Ftv_sec int64
  2764. Ftv_nsec int64
  2765. }
  2766. Fit_value struct {
  2767. Ftv_sec int64
  2768. Ftv_nsec int64
  2769. }
  2770. } /* time_impl.h:95:9 */
  2771. // definition per SVr4
  2772. // The following has been left in for backward compatibility. Portable
  2773. // applications should not use the structure name timestruc.
  2774. // Timer specification
  2775. type Itimerspec_t = Itimerspec /* time_impl.h:98:3 */
  2776. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2777. // All Rights Reserved
  2778. // Copyright (c) 1982, 1986, 1993 Regents of the University of California.
  2779. // All rights reserved. The Berkeley software License Agreement
  2780. // specifies the terms and conditions for redistribution.
  2781. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2782. //
  2783. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  2784. // Use is subject to license terms.
  2785. //
  2786. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2787. // Copyright 2016 Joyent, Inc.
  2788. // Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
  2789. // Copyright (c) 2013, 2016 by Delphix. All rights reserved.
  2790. // DO NOT EDIT THIS FILE.
  2791. //
  2792. // It has been auto-edited by fixincludes from:
  2793. //
  2794. // "/usr/include/sys/feature_tests.h"
  2795. //
  2796. // This had to be done to correct non-standard usages in the
  2797. // original, manufacturer supplied header file.
  2798. // CDDL HEADER START
  2799. //
  2800. // The contents of this file are subject to the terms of the
  2801. // Common Development and Distribution License (the "License").
  2802. // You may not use this file except in compliance with the License.
  2803. //
  2804. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2805. // or http://www.opensolaris.org/os/licensing.
  2806. // See the License for the specific language governing permissions
  2807. // and limitations under the License.
  2808. //
  2809. // When distributing Covered Code, include this CDDL HEADER in each
  2810. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2811. // If applicable, add the following below this CDDL HEADER, with the
  2812. // fields enclosed by brackets "[]" replaced with your own identifying
  2813. // information: Portions Copyright [yyyy] [name of copyright owner]
  2814. //
  2815. // CDDL HEADER END
  2816. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  2817. // Copyright 2016 Joyent, Inc.
  2818. // Copyright 2022 Oxide Computer Company
  2819. //
  2820. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  2821. // Use is subject to license terms.
  2822. // Structure returned by gettimeofday(2) system call,
  2823. // and used in other calls.
  2824. type Timeval = struct {
  2825. Ftv_sec int64
  2826. Ftv_usec int64
  2827. } /* time.h:54:1 */
  2828. type Timezone = struct {
  2829. Ftz_minuteswest int32
  2830. Ftz_dsttime int32
  2831. } /* time.h:86:1 */
  2832. // Needed for longlong_t type. Placement of this due to <sys/types.h>
  2833. // including <sys/select.h> which relies on the presense of the itimerval
  2834. // structure.
  2835. // CDDL HEADER START
  2836. //
  2837. // The contents of this file are subject to the terms of the
  2838. // Common Development and Distribution License (the "License").
  2839. // You may not use this file except in compliance with the License.
  2840. //
  2841. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2842. // or http://www.opensolaris.org/os/licensing.
  2843. // See the License for the specific language governing permissions
  2844. // and limitations under the License.
  2845. //
  2846. // When distributing Covered Code, include this CDDL HEADER in each
  2847. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2848. // If applicable, add the following below this CDDL HEADER, with the
  2849. // fields enclosed by brackets "[]" replaced with your own identifying
  2850. // information: Portions Copyright [yyyy] [name of copyright owner]
  2851. //
  2852. // CDDL HEADER END
  2853. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2854. // All Rights Reserved
  2855. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  2856. // Use is subject to license terms.
  2857. //
  2858. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2859. // Copyright 2016 Joyent, Inc.
  2860. // Copyright 2021 Oxide Computer Company
  2861. // Operations on timevals.
  2862. // Names of the interval timers, and structure
  2863. // defining a timer setting.
  2864. // time and when system is running on
  2865. // behalf of the process.
  2866. // time profiling of multithreaded
  2867. // programs.
  2868. type Itimerval = struct {
  2869. Fit_interval struct {
  2870. Ftv_sec int64
  2871. Ftv_usec int64
  2872. }
  2873. Fit_value struct {
  2874. Ftv_sec int64
  2875. Ftv_usec int64
  2876. }
  2877. } /* time.h:209:1 */
  2878. // Definitions for commonly used resolutions.
  2879. // Time expressed as a 64-bit nanosecond counter.
  2880. type Hrtime_t = int64 /* time.h:265:20 */
  2881. // The inclusion of <time.h> is historical and was added for
  2882. // backward compatibility in delta 1.2 when a number of definitions
  2883. // were moved out of <sys/time.h>. More recently, the timespec and
  2884. // itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*,
  2885. // _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>,
  2886. // which is now included by <time.h>. This change was due to POSIX
  2887. // 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and
  2888. // non-X/Open applications, including this header will still make
  2889. // visible these definitions.
  2890. // CDDL HEADER START
  2891. //
  2892. // The contents of this file are subject to the terms of the
  2893. // Common Development and Distribution License (the "License").
  2894. // You may not use this file except in compliance with the License.
  2895. //
  2896. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2897. // or http://www.opensolaris.org/os/licensing.
  2898. // See the License for the specific language governing permissions
  2899. // and limitations under the License.
  2900. //
  2901. // When distributing Covered Code, include this CDDL HEADER in each
  2902. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2903. // If applicable, add the following below this CDDL HEADER, with the
  2904. // fields enclosed by brackets "[]" replaced with your own identifying
  2905. // information: Portions Copyright [yyyy] [name of copyright owner]
  2906. //
  2907. // CDDL HEADER END
  2908. // Copyright (c) 1988 AT&T
  2909. // All Rights Reserved
  2910. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2911. //
  2912. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  2913. // Use is subject to license terms.
  2914. // Copyright 2010 Nexenta Systems, Inc. Al rights reserved.
  2915. // Copyright 2016 Joyent, Inc.
  2916. // The inclusion of <sys/select.h> is needed for the FD_CLR,
  2917. // FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the
  2918. // select() prototype defined in the XOpen specifications
  2919. // beginning with XSH4v2. Placement required after definition
  2920. // for itimerval.
  2921. // CDDL HEADER START
  2922. //
  2923. // The contents of this file are subject to the terms of the
  2924. // Common Development and Distribution License (the "License").
  2925. // You may not use this file except in compliance with the License.
  2926. //
  2927. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  2928. // or http://www.opensolaris.org/os/licensing.
  2929. // See the License for the specific language governing permissions
  2930. // and limitations under the License.
  2931. //
  2932. // When distributing Covered Code, include this CDDL HEADER in each
  2933. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  2934. // If applicable, add the following below this CDDL HEADER, with the
  2935. // fields enclosed by brackets "[]" replaced with your own identifying
  2936. // information: Portions Copyright [yyyy] [name of copyright owner]
  2937. //
  2938. // CDDL HEADER END
  2939. // Copyright 2014 Garrett D'Amore <garrett@damore.org>
  2940. //
  2941. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  2942. //
  2943. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  2944. // Use is subject to license terms.
  2945. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  2946. // All Rights Reserved
  2947. // University Copyright- Copyright (c) 1982, 1986, 1988
  2948. // The Regents of the University of California
  2949. // All Rights Reserved
  2950. //
  2951. // University Acknowledgment- Portions of this document are derived from
  2952. // software developed by the University of California, Berkeley, and its
  2953. // contributors.
  2954. // The sigset_t type is defined in <sys/signal.h> and duplicated
  2955. // in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6
  2956. // now allows the visibility of signal.h in this header, however
  2957. // an order of inclusion problem occurs as a result of inclusion
  2958. // of <sys/select.h> in <signal.h> under certain conditions.
  2959. // Rather than include <sys/signal.h> here, we've duplicated
  2960. // the sigset_t type instead. This type is required for the XPG6
  2961. // introduced pselect() function also declared in this header.
  2962. type Sigset_t = struct{ F__sigbits [4]uint32 } /* select.h:76:3 */
  2963. // Select uses bit masks of file descriptors in longs.
  2964. // These macros manipulate such bit fields.
  2965. // FD_SETSIZE may be defined by the user, but the default here
  2966. // should be >= RLIM_FD_MAX.
  2967. type Fd_mask = int64 /* select.h:92:14 */
  2968. type Fds_mask = int64 /* select.h:94:14 */
  2969. // The value of _NBBY needs to be consistant with the value
  2970. // of NBBY in <sys/param.h>.
  2971. type Fd_set1 = struct{ Ffds_bits [1024]int64 } /* select.h:120:9 */
  2972. // The value of _NBBY needs to be consistant with the value
  2973. // of NBBY in <sys/param.h>.
  2974. type Fd_set = Fd_set1 /* select.h:125:3 */
  2975. // Neither X/Open nor POSIX allow the inclusion of <signal.h> for the
  2976. // definition of the sigevent structure. Both require the inclusion
  2977. // of <signal.h> and <time.h> when using the timer_create() function.
  2978. // However, X/Open also specifies that the sigevent structure be defined
  2979. // in <time.h> as described in the header <signal.h>. This prevents
  2980. // compiler warnings for applications that only include <time.h> and not
  2981. // also <signal.h>. The sigval union and the sigevent structure is
  2982. // therefore defined both here and in <sys/siginfo.h> which gets included
  2983. // via inclusion of <signal.h>.
  2984. type Sigval = struct {
  2985. F__ccgo_pad1 [0]uint64
  2986. Fsival_int int32
  2987. F__ccgo_pad2 [4]byte
  2988. } /* time.h:125:1 */
  2989. type Sigevent = struct {
  2990. Fsigev_notify int32
  2991. Fsigev_signo int32
  2992. Fsigev_value struct {
  2993. F__ccgo_pad1 [0]uint64
  2994. Fsival_int int32
  2995. F__ccgo_pad2 [4]byte
  2996. }
  2997. Fsigev_notify_function uintptr
  2998. Fsigev_notify_attributes uintptr
  2999. F__sigev_pad2 int32
  3000. F__ccgo_pad1 [4]byte
  3001. } /* time.h:133:1 */
  3002. type Locale_t = uintptr /* time.h:292:24 */ // System Private interface to sysconf()
  3003. type Sig_atomic_t = int32 /* signal_iso.h:58:13 */
  3004. // CDDL HEADER START
  3005. //
  3006. // The contents of this file are subject to the terms of the
  3007. // Common Development and Distribution License (the "License").
  3008. // You may not use this file except in compliance with the License.
  3009. //
  3010. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3011. // or http://www.opensolaris.org/os/licensing.
  3012. // See the License for the specific language governing permissions
  3013. // and limitations under the License.
  3014. //
  3015. // When distributing Covered Code, include this CDDL HEADER in each
  3016. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3017. // If applicable, add the following below this CDDL HEADER, with the
  3018. // fields enclosed by brackets "[]" replaced with your own identifying
  3019. // information: Portions Copyright [yyyy] [name of copyright owner]
  3020. //
  3021. // CDDL HEADER END
  3022. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3023. // Use is subject to license terms.
  3024. // Copyright 2015, Joyent, Inc.
  3025. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3026. // All Rights Reserved
  3027. // University Copyright- Copyright (c) 1982, 1986, 1988
  3028. // The Regents of the University of California
  3029. // All Rights Reserved
  3030. //
  3031. // University Acknowledgment- Portions of this document are derived from
  3032. // software developed by the University of California, Berkeley, and its
  3033. // contributors.
  3034. // DO NOT EDIT THIS FILE.
  3035. //
  3036. // It has been auto-edited by fixincludes from:
  3037. //
  3038. // "/usr/include/sys/feature_tests.h"
  3039. //
  3040. // This had to be done to correct non-standard usages in the
  3041. // original, manufacturer supplied header file.
  3042. // CDDL HEADER START
  3043. //
  3044. // The contents of this file are subject to the terms of the
  3045. // Common Development and Distribution License (the "License").
  3046. // You may not use this file except in compliance with the License.
  3047. //
  3048. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3049. // or http://www.opensolaris.org/os/licensing.
  3050. // See the License for the specific language governing permissions
  3051. // and limitations under the License.
  3052. //
  3053. // When distributing Covered Code, include this CDDL HEADER in each
  3054. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3055. // If applicable, add the following below this CDDL HEADER, with the
  3056. // fields enclosed by brackets "[]" replaced with your own identifying
  3057. // information: Portions Copyright [yyyy] [name of copyright owner]
  3058. //
  3059. // CDDL HEADER END
  3060. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3061. // Copyright 2016 Joyent, Inc.
  3062. // Copyright 2022 Oxide Computer Company
  3063. //
  3064. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3065. // Use is subject to license terms.
  3066. // CDDL HEADER START
  3067. //
  3068. // The contents of this file are subject to the terms of the
  3069. // Common Development and Distribution License (the "License").
  3070. // You may not use this file except in compliance with the License.
  3071. //
  3072. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3073. // or http://www.opensolaris.org/os/licensing.
  3074. // See the License for the specific language governing permissions
  3075. // and limitations under the License.
  3076. //
  3077. // When distributing Covered Code, include this CDDL HEADER in each
  3078. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3079. // If applicable, add the following below this CDDL HEADER, with the
  3080. // fields enclosed by brackets "[]" replaced with your own identifying
  3081. // information: Portions Copyright [yyyy] [name of copyright owner]
  3082. //
  3083. // CDDL HEADER END
  3084. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3085. // Use is subject to license terms.
  3086. // Copyright 2015, Joyent, Inc.
  3087. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3088. // All Rights Reserved
  3089. // An application should not include this header directly. Instead it
  3090. // should be included only through the inclusion of other Sun headers.
  3091. //
  3092. // The contents of this header is limited to identifiers specified in the
  3093. // C Standard. Any new identifiers specified in future amendments to the
  3094. // C Standard must be placed in this header. If these new identifiers
  3095. // are required to also be in the C++ Standard "std" namespace, then for
  3096. // anything other than macro definitions, corresponding "using" directives
  3097. // must also be added to <sys/signal.h.h>.
  3098. // We need <sys/siginfo.h> for the declaration of siginfo_t.
  3099. // CDDL HEADER START
  3100. //
  3101. // The contents of this file are subject to the terms of the
  3102. // Common Development and Distribution License, Version 1.0 only
  3103. // (the "License"). You may not use this file except in compliance
  3104. // with the License.
  3105. //
  3106. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3107. // or http://www.opensolaris.org/os/licensing.
  3108. // See the License for the specific language governing permissions
  3109. // and limitations under the License.
  3110. //
  3111. // When distributing Covered Code, include this CDDL HEADER in each
  3112. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3113. // If applicable, add the following below this CDDL HEADER, with the
  3114. // fields enclosed by brackets "[]" replaced with your own identifying
  3115. // information: Portions Copyright [yyyy] [name of copyright owner]
  3116. //
  3117. // CDDL HEADER END
  3118. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  3119. // Use is subject to license terms.
  3120. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3121. // All Rights Reserved
  3122. // DO NOT EDIT THIS FILE.
  3123. //
  3124. // It has been auto-edited by fixincludes from:
  3125. //
  3126. // "/usr/include/sys/feature_tests.h"
  3127. //
  3128. // This had to be done to correct non-standard usages in the
  3129. // original, manufacturer supplied header file.
  3130. // CDDL HEADER START
  3131. //
  3132. // The contents of this file are subject to the terms of the
  3133. // Common Development and Distribution License (the "License").
  3134. // You may not use this file except in compliance with the License.
  3135. //
  3136. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3137. // or http://www.opensolaris.org/os/licensing.
  3138. // See the License for the specific language governing permissions
  3139. // and limitations under the License.
  3140. //
  3141. // When distributing Covered Code, include this CDDL HEADER in each
  3142. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3143. // If applicable, add the following below this CDDL HEADER, with the
  3144. // fields enclosed by brackets "[]" replaced with your own identifying
  3145. // information: Portions Copyright [yyyy] [name of copyright owner]
  3146. //
  3147. // CDDL HEADER END
  3148. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3149. // Copyright 2016 Joyent, Inc.
  3150. // Copyright 2022 Oxide Computer Company
  3151. //
  3152. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3153. // Use is subject to license terms.
  3154. // CDDL HEADER START
  3155. //
  3156. // The contents of this file are subject to the terms of the
  3157. // Common Development and Distribution License (the "License").
  3158. // You may not use this file except in compliance with the License.
  3159. //
  3160. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3161. // or http://www.opensolaris.org/os/licensing.
  3162. // See the License for the specific language governing permissions
  3163. // and limitations under the License.
  3164. //
  3165. // When distributing Covered Code, include this CDDL HEADER in each
  3166. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3167. // If applicable, add the following below this CDDL HEADER, with the
  3168. // fields enclosed by brackets "[]" replaced with your own identifying
  3169. // information: Portions Copyright [yyyy] [name of copyright owner]
  3170. //
  3171. // CDDL HEADER END
  3172. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3173. // All Rights Reserved
  3174. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3175. // Use is subject to license terms.
  3176. //
  3177. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3178. // Copyright 2016 Joyent, Inc.
  3179. // Copyright 2021 Oxide Computer Company
  3180. // The union sigval is also defined in <time.h> as per X/Open and
  3181. // POSIX requirements.
  3182. // The sigevent structure is also defined in <time.h> as per X/Open and
  3183. // POSIX requirements.
  3184. // values of sigev_notify
  3185. // negative signal codes are reserved for future use for user generated
  3186. // signals
  3187. // Get the machine dependent signal codes (SIGILL, SIGFPE, SIGSEGV, and
  3188. // SIGBUS) from <sys/machsig.h>
  3189. // CDDL HEADER START
  3190. //
  3191. // The contents of this file are subject to the terms of the
  3192. // Common Development and Distribution License, Version 1.0 only
  3193. // (the "License"). You may not use this file except in compliance
  3194. // 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 2003 Sun Microsystems, Inc. All rights reserved.
  3209. // Use is subject to license terms.
  3210. // Copyright (c) 1988 AT&T
  3211. // All Rights Reserved
  3212. // DO NOT EDIT THIS FILE.
  3213. //
  3214. // It has been auto-edited by fixincludes from:
  3215. //
  3216. // "/usr/include/sys/feature_tests.h"
  3217. //
  3218. // This had to be done to correct non-standard usages in the
  3219. // original, manufacturer supplied header file.
  3220. // CDDL HEADER START
  3221. //
  3222. // The contents of this file are subject to the terms of the
  3223. // Common Development and Distribution License (the "License").
  3224. // You may not use this file except in compliance with the License.
  3225. //
  3226. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3227. // or http://www.opensolaris.org/os/licensing.
  3228. // See the License for the specific language governing permissions
  3229. // and limitations under the License.
  3230. //
  3231. // When distributing Covered Code, include this CDDL HEADER in each
  3232. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3233. // If applicable, add the following below this CDDL HEADER, with the
  3234. // fields enclosed by brackets "[]" replaced with your own identifying
  3235. // information: Portions Copyright [yyyy] [name of copyright owner]
  3236. //
  3237. // CDDL HEADER END
  3238. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3239. // Copyright 2016 Joyent, Inc.
  3240. // Copyright 2022 Oxide Computer Company
  3241. //
  3242. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3243. // Use is subject to license terms.
  3244. // machsig.h is the machine dependent portion of siginfo.h (and is
  3245. // included by siginfo.h). A version of machsig.h should exist for
  3246. // each architecture. The codes for SIGILL, SIGFPU, SIGSEGV and SIGBUS
  3247. // are in this file. The codes for SIGTRAP, SIGCLD(SIGCHLD), and
  3248. // SIGPOLL are architecture independent and may be found in siginfo.h.
  3249. // CDDL HEADER START
  3250. //
  3251. // The contents of this file are subject to the terms of the
  3252. // Common Development and Distribution License (the "License").
  3253. // You may not use this file except in compliance with the License.
  3254. //
  3255. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3256. // or http://www.opensolaris.org/os/licensing.
  3257. // See the License for the specific language governing permissions
  3258. // and limitations under the License.
  3259. //
  3260. // When distributing Covered Code, include this CDDL HEADER in each
  3261. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3262. // If applicable, add the following below this CDDL HEADER, with the
  3263. // fields enclosed by brackets "[]" replaced with your own identifying
  3264. // information: Portions Copyright [yyyy] [name of copyright owner]
  3265. //
  3266. // CDDL HEADER END
  3267. // Copyright 2007 Sun Microsystems, Inc. All rights reserved.
  3268. // Use is subject to license terms.
  3269. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3270. // All Rights Reserved
  3271. // University Copyright- Copyright (c) 1982, 1986, 1988
  3272. // The Regents of the University of California
  3273. // All Rights Reserved
  3274. //
  3275. // University Acknowledgment- Portions of this document are derived from
  3276. // software developed by the University of California, Berkeley, and its
  3277. // contributors.
  3278. // This file describes the data type returned by vm routines
  3279. // which handle faults.
  3280. //
  3281. // If FC_CODE(fc) == FC_OBJERR, then FC_ERRNO(fc) contains the errno value
  3282. // returned by the underlying object mapped at the fault address.
  3283. type Faultcode_t = int32 /* faultcode.h:66:13 */
  3284. // SIGILL signal codes
  3285. // SIGEMT signal codes
  3286. // SIGFPE signal codes
  3287. // SIGSEGV signal codes
  3288. // SIGBUS signal codes
  3289. // SIGTRAP signal codes
  3290. // SIGCLD signal codes
  3291. // SIGPOLL signal codes
  3292. // SIGPROF signal codes
  3293. // Inclusion of <sys/time_impl.h> is needed for the declaration of
  3294. // timestruc_t. However, since inclusion of <sys/time_impl.h> results
  3295. // in X/Open and POSIX namespace pollution, the definition for
  3296. // timestruct_t has been duplicated in a standards namespace safe header
  3297. // <sys/time_std_impl.h>. In <sys/time_std_impl.h>, the structure
  3298. // name, tag, and member names, as well as the type itself, all have
  3299. // leading underscores to protect namespace.
  3300. // CDDL HEADER START
  3301. //
  3302. // The contents of this file are subject to the terms of the
  3303. // Common Development and Distribution License, Version 1.0 only
  3304. // (the "License"). You may not use this file except in compliance
  3305. // with the License.
  3306. //
  3307. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3308. // or http://www.opensolaris.org/os/licensing.
  3309. // See the License for the specific language governing permissions
  3310. // and limitations under the License.
  3311. //
  3312. // When distributing Covered Code, include this CDDL HEADER in each
  3313. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3314. // If applicable, add the following below this CDDL HEADER, with the
  3315. // fields enclosed by brackets "[]" replaced with your own identifying
  3316. // information: Portions Copyright [yyyy] [name of copyright owner]
  3317. //
  3318. // CDDL HEADER END
  3319. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  3320. // Use is subject to license terms.
  3321. // Implementation-private. This header should not be included
  3322. // directly by an application. The application should instead
  3323. // include <time.h> which includes this header conditionally
  3324. // depending on which feature test macros are defined. By default,
  3325. // this header is included by <time.h>. X/Open and POSIX
  3326. // standards requirements result in this header being included
  3327. // by <time.h> only under a restricted set of conditions.
  3328. // The inclusion of <sys/types.h> is needed for definitions of pid_t, etc.
  3329. // Placement here is due to a dependency in <sys/select.h> which is included
  3330. // by <sys/types.h> for the sigevent structure. Hence this inclusion must
  3331. // follow that definition.
  3332. // CDDL HEADER START
  3333. //
  3334. // The contents of this file are subject to the terms of the
  3335. // Common Development and Distribution License (the "License").
  3336. // You may not use this file except in compliance with the License.
  3337. //
  3338. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3339. // or http://www.opensolaris.org/os/licensing.
  3340. // See the License for the specific language governing permissions
  3341. // and limitations under the License.
  3342. //
  3343. // When distributing Covered Code, include this CDDL HEADER in each
  3344. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3345. // If applicable, add the following below this CDDL HEADER, with the
  3346. // fields enclosed by brackets "[]" replaced with your own identifying
  3347. // information: Portions Copyright [yyyy] [name of copyright owner]
  3348. //
  3349. // CDDL HEADER END
  3350. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3351. // All Rights Reserved
  3352. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3353. // Use is subject to license terms.
  3354. //
  3355. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3356. // Copyright 2016 Joyent, Inc.
  3357. // Copyright 2021 Oxide Computer Company
  3358. type Siginfo = struct {
  3359. Fsi_signo int32
  3360. Fsi_code int32
  3361. Fsi_errno int32
  3362. Fsi_pad int32
  3363. F__data struct {
  3364. F__ccgo_pad1 [0]uint64
  3365. F__pad [60]int32
  3366. }
  3367. } /* siginfo.h:237:9 */
  3368. // SIGILL signal codes
  3369. // SIGEMT signal codes
  3370. // SIGFPE signal codes
  3371. // SIGSEGV signal codes
  3372. // SIGBUS signal codes
  3373. // SIGTRAP signal codes
  3374. // SIGCLD signal codes
  3375. // SIGPOLL signal codes
  3376. // SIGPROF signal codes
  3377. // Inclusion of <sys/time_impl.h> is needed for the declaration of
  3378. // timestruc_t. However, since inclusion of <sys/time_impl.h> results
  3379. // in X/Open and POSIX namespace pollution, the definition for
  3380. // timestruct_t has been duplicated in a standards namespace safe header
  3381. // <sys/time_std_impl.h>. In <sys/time_std_impl.h>, the structure
  3382. // name, tag, and member names, as well as the type itself, all have
  3383. // leading underscores to protect namespace.
  3384. // CDDL HEADER START
  3385. //
  3386. // The contents of this file are subject to the terms of the
  3387. // Common Development and Distribution License, Version 1.0 only
  3388. // (the "License"). You may not use this file except in compliance
  3389. // with the License.
  3390. //
  3391. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3392. // or http://www.opensolaris.org/os/licensing.
  3393. // See the License for the specific language governing permissions
  3394. // and limitations under the License.
  3395. //
  3396. // When distributing Covered Code, include this CDDL HEADER in each
  3397. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3398. // If applicable, add the following below this CDDL HEADER, with the
  3399. // fields enclosed by brackets "[]" replaced with your own identifying
  3400. // information: Portions Copyright [yyyy] [name of copyright owner]
  3401. //
  3402. // CDDL HEADER END
  3403. // Copyright 2005 Sun Microsystems, Inc. All rights reserved.
  3404. // Use is subject to license terms.
  3405. // Implementation-private. This header should not be included
  3406. // directly by an application. The application should instead
  3407. // include <time.h> which includes this header conditionally
  3408. // depending on which feature test macros are defined. By default,
  3409. // this header is included by <time.h>. X/Open and POSIX
  3410. // standards requirements result in this header being included
  3411. // by <time.h> only under a restricted set of conditions.
  3412. // The inclusion of <sys/types.h> is needed for definitions of pid_t, etc.
  3413. // Placement here is due to a dependency in <sys/select.h> which is included
  3414. // by <sys/types.h> for the sigevent structure. Hence this inclusion must
  3415. // follow that definition.
  3416. // CDDL HEADER START
  3417. //
  3418. // The contents of this file are subject to the terms of the
  3419. // Common Development and Distribution License (the "License").
  3420. // You may not use this file except in compliance with the License.
  3421. //
  3422. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3423. // or http://www.opensolaris.org/os/licensing.
  3424. // See the License for the specific language governing permissions
  3425. // and limitations under the License.
  3426. //
  3427. // When distributing Covered Code, include this CDDL HEADER in each
  3428. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3429. // If applicable, add the following below this CDDL HEADER, with the
  3430. // fields enclosed by brackets "[]" replaced with your own identifying
  3431. // information: Portions Copyright [yyyy] [name of copyright owner]
  3432. //
  3433. // CDDL HEADER END
  3434. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3435. // All Rights Reserved
  3436. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3437. // Use is subject to license terms.
  3438. //
  3439. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3440. // Copyright 2016 Joyent, Inc.
  3441. // Copyright 2021 Oxide Computer Company
  3442. type Siginfo_t = Siginfo /* siginfo.h:304:3 */
  3443. // XXX -- internal version is identical to siginfo_t but without the padding.
  3444. // This must be maintained in sync with it.
  3445. type K_siginfo = struct {
  3446. Fsi_signo int32
  3447. Fsi_code int32
  3448. Fsi_errno int32
  3449. Fsi_pad int32
  3450. F__data struct {
  3451. F__proc struct {
  3452. F__pid int32
  3453. F__ccgo_pad1 [4]byte
  3454. F__pdata struct {
  3455. F__kill struct {
  3456. F__uid uint32
  3457. F__ccgo_pad1 [4]byte
  3458. F__value struct {
  3459. F__ccgo_pad1 [0]uint64
  3460. Fsival_int int32
  3461. F__ccgo_pad2 [4]byte
  3462. }
  3463. }
  3464. F__ccgo_pad1 [8]byte
  3465. }
  3466. F__ctid int32
  3467. F__zoneid int32
  3468. }
  3469. }
  3470. } /* siginfo.h:379:9 */
  3471. // XXX -- internal version is identical to siginfo_t but without the padding.
  3472. // This must be maintained in sync with it.
  3473. type K_siginfo_t = K_siginfo /* siginfo.h:438:3 */
  3474. type Sigqueue = struct {
  3475. Fsq_next uintptr
  3476. Fsq_info K_siginfo_t
  3477. Fsq_func uintptr
  3478. Fsq_backptr uintptr
  3479. Fsq_external int32
  3480. F__ccgo_pad1 [4]byte
  3481. } /* siginfo.h:440:9 */
  3482. type Sigqueue_t = Sigqueue /* siginfo.h:447:3 */
  3483. // indication whether to queue the signal or not
  3484. // Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements
  3485. type K_sigset_t = struct{ F__sigbits [3]uint32 } /* signal.h:73:3 */
  3486. // The signal handler routine can have either one or three arguments.
  3487. // Existing C code has used either form so not specifing the arguments
  3488. // neatly finesses the problem. C++ doesn't accept this. To C++
  3489. // "(*sa_handler)()" indicates a routine with no arguments (ANSI C would
  3490. // specify this as "(*sa_handler)(void)"). One or the other form must be
  3491. // used for C++ and the only logical choice is "(*sa_handler)(int)" to allow
  3492. // the SIG_* defines to work. "(*sa_sigaction)(int, siginfo_t *, void *)"
  3493. // can be used for the three argument form.
  3494. // Note: storage overlap by sa_handler and sa_sigaction
  3495. type Sigaction = struct {
  3496. Fsa_flags int32
  3497. F__ccgo_pad1 [4]byte
  3498. F_funcptr struct{ F_handler uintptr }
  3499. Fsa_mask Sigset_t
  3500. } /* signal.h:89:1 */
  3501. // this is only valid for SIGCLD
  3502. // non-conformant ANSI compilation
  3503. // definitions for the sa_flags field
  3504. // this is only valid for SIGCLD
  3505. // use of these symbols by applications is injurious
  3506. // to binary compatibility
  3507. // Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements.
  3508. type Sigaltstack = struct {
  3509. Fss_sp uintptr
  3510. Fss_size uint64
  3511. Fss_flags int32
  3512. F__ccgo_pad1 [4]byte
  3513. } /* signal.h:176:9 */
  3514. // this is only valid for SIGCLD
  3515. // non-conformant ANSI compilation
  3516. // definitions for the sa_flags field
  3517. // this is only valid for SIGCLD
  3518. // use of these symbols by applications is injurious
  3519. // to binary compatibility
  3520. // Duplicated in <sys/ucontext.h> as a result of XPG4v2 requirements.
  3521. type Stack_t = Sigaltstack /* signal.h:183:3 */
  3522. // signotify id used only by libc for mq_notify()/aio_notify()
  3523. type Signotify_id = struct {
  3524. Fsn_pid int32
  3525. Fsn_index int32
  3526. Fsn_pad int32
  3527. } /* signal.h:205:9 */
  3528. // signotify id used only by libc for mq_notify()/aio_notify()
  3529. type Signotify_id_t = Signotify_id /* signal.h:209:3 */
  3530. // Command codes for sig_notify call
  3531. // Added as per XPG4v2
  3532. type Sigstack = struct {
  3533. Fss_sp uintptr
  3534. Fss_onstack int32
  3535. F__ccgo_pad1 [4]byte
  3536. } /* signal.h:235:1 */
  3537. // CDDL HEADER START
  3538. //
  3539. // The contents of this file are subject to the terms of the
  3540. // Common Development and Distribution License, Version 1.0 only
  3541. // (the "License"). You may not use this file except in compliance
  3542. // with the License.
  3543. //
  3544. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3545. // or http://www.opensolaris.org/os/licensing.
  3546. // See the License for the specific language governing permissions
  3547. // and limitations under the License.
  3548. //
  3549. // When distributing Covered Code, include this CDDL HEADER in each
  3550. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3551. // If applicable, add the following below this CDDL HEADER, with the
  3552. // fields enclosed by brackets "[]" replaced with your own identifying
  3553. // information: Portions Copyright [yyyy] [name of copyright owner]
  3554. //
  3555. // CDDL HEADER END
  3556. // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  3557. // Use is subject to license terms.
  3558. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3559. // All Rights Reserved
  3560. // DO NOT EDIT THIS FILE.
  3561. //
  3562. // It has been auto-edited by fixincludes from:
  3563. //
  3564. // "/usr/include/sys/feature_tests.h"
  3565. //
  3566. // This had to be done to correct non-standard usages in the
  3567. // original, manufacturer supplied header file.
  3568. // CDDL HEADER START
  3569. //
  3570. // The contents of this file are subject to the terms of the
  3571. // Common Development and Distribution License (the "License").
  3572. // You may not use this file except in compliance with the License.
  3573. //
  3574. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3575. // or http://www.opensolaris.org/os/licensing.
  3576. // See the License for the specific language governing permissions
  3577. // and limitations under the License.
  3578. //
  3579. // When distributing Covered Code, include this CDDL HEADER in each
  3580. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3581. // If applicable, add the following below this CDDL HEADER, with the
  3582. // fields enclosed by brackets "[]" replaced with your own identifying
  3583. // information: Portions Copyright [yyyy] [name of copyright owner]
  3584. //
  3585. // CDDL HEADER END
  3586. // Copyright 2013 Garrett D'Amore <garrett@damore.org>
  3587. // Copyright 2016 Joyent, Inc.
  3588. // Copyright 2022 Oxide Computer Company
  3589. //
  3590. // Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  3591. // Use is subject to license terms.
  3592. // CDDL HEADER START
  3593. //
  3594. // The contents of this file are subject to the terms of the
  3595. // Common Development and Distribution License (the "License").
  3596. // You may not use this file except in compliance with the License.
  3597. //
  3598. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3599. // or http://www.opensolaris.org/os/licensing.
  3600. // See the License for the specific language governing permissions
  3601. // and limitations under the License.
  3602. //
  3603. // When distributing Covered Code, include this CDDL HEADER in each
  3604. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3605. // If applicable, add the following below this CDDL HEADER, with the
  3606. // fields enclosed by brackets "[]" replaced with your own identifying
  3607. // information: Portions Copyright [yyyy] [name of copyright owner]
  3608. //
  3609. // CDDL HEADER END
  3610. // Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
  3611. // All Rights Reserved
  3612. // Copyright 2009 Sun Microsystems, Inc. All rights reserved.
  3613. // Use is subject to license terms.
  3614. //
  3615. // Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  3616. // Copyright 2016 Joyent, Inc.
  3617. // Copyright 2021 Oxide Computer Company
  3618. // CDDL HEADER START
  3619. //
  3620. // The contents of this file are subject to the terms of the
  3621. // Common Development and Distribution License (the "License").
  3622. // You may not use this file except in compliance with the License.
  3623. //
  3624. // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  3625. // or http://www.opensolaris.org/os/licensing.
  3626. // See the License for the specific language governing permissions
  3627. // and limitations under the License.
  3628. //
  3629. // When distributing Covered Code, include this CDDL HEADER in each
  3630. // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  3631. // If applicable, add the following below this CDDL HEADER, with the
  3632. // fields enclosed by brackets "[]" replaced with your own identifying
  3633. // information: Portions Copyright [yyyy] [name of copyright owner]
  3634. //
  3635. // CDDL HEADER END
  3636. // Copyright 2010 Sun Microsystems, Inc. All rights reserved.
  3637. // Use is subject to license terms.
  3638. // Copyright 2015, Joyent, Inc.
  3639. // Copyright (c) 1984, 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. // This file defines the data needed to specify a set of
  3649. // processes. These types are used by the sigsend, sigsendset,
  3650. // priocntl, priocntlset, waitid, evexit, and evexitset system
  3651. // calls.
  3652. // The following defines the values for an identifier type. It
  3653. // specifies the interpretation of an id value. An idtype and
  3654. // id together define a simple set of processes.
  3655. type Idtype_t = uint32 /* procset.h:80:3 */
  3656. // The following defines the operations which can be performed to
  3657. // combine two simple sets of processes to form another set of
  3658. // processes.
  3659. type Idop_t = uint32 /* procset.h:102:3 */
  3660. // The following structure is used to define a set of processes.
  3661. // The set is defined in terms of two simple sets of processes
  3662. // and an operator which operates on these two operand sets.
  3663. type Procset = struct {
  3664. Fp_op uint32
  3665. Fp_lidtype uint32
  3666. Fp_lid int32
  3667. Fp_ridtype uint32
  3668. Fp_rid int32
  3669. } /* procset.h:110:9 */
  3670. // The following structure is used to define a set of processes.
  3671. // The set is defined in terms of two simple sets of processes
  3672. // and an operator which operates on these two operand sets.
  3673. type Procset_t = Procset /* procset.h:125:3 */
  3674. var _ int8 /* gen.c:2:13: */