From 1a57267a17c2fc17fb6e104846fabc3e363c326c Mon Sep 17 00:00:00 2001 From: Emile Date: Fri, 16 Aug 2024 19:50:26 +0200 Subject: initial commit --- .../libc/termios/termios_illumos_amd64.go | 2689 ++++++++++++++++++++ 1 file changed, 2689 insertions(+) create mode 100644 vendor/modernc.org/libc/termios/termios_illumos_amd64.go (limited to 'vendor/modernc.org/libc/termios/termios_illumos_amd64.go') diff --git a/vendor/modernc.org/libc/termios/termios_illumos_amd64.go b/vendor/modernc.org/libc/termios/termios_illumos_amd64.go new file mode 100644 index 0000000..6af3344 --- /dev/null +++ b/vendor/modernc.org/libc/termios/termios_illumos_amd64.go @@ -0,0 +1,2689 @@ +// Code generated by 'ccgo termios/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 termios/termios_illumos_amd64.go -pkgname termios', DO NOT EDIT. + +package termios + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + B0 = 0 // termios.h:543:1: + B1000000 = 24 // termios.h:567:1: + B110 = 3 // termios.h:546:1: + B115200 = 18 // termios.h:561:1: + B1152000 = 25 // termios.h:568:1: + B1200 = 9 // termios.h:552:1: + B134 = 4 // termios.h:547:1: + B150 = 5 // termios.h:548:1: + B1500000 = 26 // termios.h:569:1: + B153600 = 19 // termios.h:562:1: + B1800 = 10 // termios.h:553:1: + B19200 = 14 // termios.h:557:1: + B200 = 6 // termios.h:549:1: + B2000000 = 27 // termios.h:570:1: + B230400 = 20 // termios.h:563:1: + B2400 = 11 // termios.h:554:1: + B2500000 = 28 // termios.h:571:1: + B300 = 7 // termios.h:550:1: + B3000000 = 29 // termios.h:572:1: + B307200 = 21 // termios.h:564:1: + B3500000 = 30 // termios.h:573:1: + B38400 = 15 // termios.h:558:1: + B4000000 = 31 // termios.h:574:1: + B460800 = 22 // termios.h:565:1: + B4800 = 12 // termios.h:555:1: + B50 = 1 // termios.h:544:1: + B57600 = 16 // termios.h:559:1: + B600 = 8 // termios.h:551:1: + B75 = 2 // termios.h:545:1: + B76800 = 17 // termios.h:560:1: + B921600 = 23 // termios.h:566:1: + B9600 = 13 // termios.h:556:1: + BRKINT = 0000002 // termios.h:187:1: + BS0 = 0 // termios.h:244:1: + BS1 = 0020000 // termios.h:245:1: + BSDLY = 0020000 // termios.h:243:1: + CBAUD = 0000017 // termios.h:258:1: + CBAUDEXT = 010000000 // termios.h:280:1: + CCTS_OFLOW = 020000000000 // termios.h:287:1: + CDEL = 0177 // termios.h:157:1: + CDSUSP = 25 // termios.h:176:1: + CEOF = 04 // termios.h:170:1: + CEOL = 0 // termios.h:168:1: + CEOL2 = 0 // termios.h:169:1: + CEOT = 04 // termios.h:167:1: + CERASE = 0177 // termios.h:164:1: + CERASE2 = 8 // termios.h:165:1: + CESC = 92 // termios.h:161:1: + CFLUSH = 15 // termios.h:178:1: + CIBAUD = 03600000 // termios.h:278:1: + CIBAUDEXT = 020000000 // termios.h:281:1: + CINTR = 3 // termios.h:162:1: + CKILL = 21 // termios.h:166:1: + CLNEXT = 22 // termios.h:180:1: + CLOCAL = 0004000 // termios.h:270:1: + CLOCKS_PER_SEC = 1000000 // time_iso.h:78:1: + CLOCK_HIGHRES = 4 // time_impl.h:126:1: + CLOCK_MONOTONIC = 4 // time_impl.h:124:1: + CLOCK_PROCESS_CPUTIME_ID = 5 // time_impl.h:125:1: + CLOCK_PROF = 2 // time_impl.h:127:1: + CLOCK_REALTIME = 3 // time_impl.h:123:1: + CLOCK_THREAD_CPUTIME_ID = 2 // time_impl.h:122:1: + CLOCK_VIRTUAL = 1 // time_impl.h:121:1: + CNSWTCH = 0 // termios.h:174:1: + CNUL = 0 // termios.h:156:1: + CQUIT = 034 // termios.h:163:1: + CR0 = 0 // termios.h:228:1: + CR1 = 0001000 // termios.h:229:1: + CR2 = 0002000 // termios.h:230:1: + CR3 = 0003000 // termios.h:231:1: + CRDLY = 0003000 // termios.h:227:1: + CREAD = 0000200 // termios.h:266:1: + CRPRNT = 18 // termios.h:177:1: + CRTSCTS = 020000000000 // termios.h:277:1: + CRTSXOFF = 010000000000 // termios.h:276:1: + CRTS_IFLOW = 010000000000 // termios.h:286:1: + CS5 = 0 // termios.h:261:1: + CS6 = 0000020 // termios.h:262:1: + CS7 = 0000040 // termios.h:263:1: + CS8 = 0000060 // termios.h:264:1: + CSIZE = 0000060 // termios.h:260:1: + CSTART = 021 // termios.h:171:1: + CSTATUS = 20 // termios.h:181:1: + CSTOP = 023 // termios.h:172:1: + CSTOPB = 0000100 // termios.h:265:1: + CSUSP = 26 // termios.h:175:1: + CSWTCH = 032 // termios.h:173:1: + CWERASE = 23 // termios.h:179:1: + DEFECHO = 0010000 // termios.h:309:1: + DIOC = 25600 // termios.h:524:1: + DIOCGETP = 25608 // termios.h:525:1: + DIOCSETP = 25609 // termios.h:526:1: + DOSMODE = 0100000 // termios.h:208:1: + DST_AUST = 2 // time.h:115:1: + DST_AUSTALT = 10 // time.h:123:1: + DST_CAN = 6 // time.h:119:1: + DST_EET = 5 // time.h:118:1: + DST_GB = 7 // time.h:120:1: + DST_MET = 4 // time.h:117:1: + DST_NONE = 0 // time.h:113:1: + DST_RUM = 8 // time.h:121:1: + DST_TUR = 9 // time.h:122:1: + DST_USA = 1 // time.h:114:1: + DST_WET = 3 // time.h:116:1: + ECHO = 0000010 // termios.h:299:1: + ECHOCTL = 0001000 // termios.h:306:1: + ECHOE = 0000020 // termios.h:300:1: + ECHOK = 0000040 // termios.h:301:1: + ECHOKE = 0004000 // termios.h:308:1: + ECHONL = 0000100 // termios.h:302:1: + ECHOPRT = 0002000 // termios.h:307:1: + EXTA = 14 // ttydev.h:56:1: + EXTB = 15 // ttydev.h:57:1: + FD_SETSIZE = 65536 // select.h:88:1: + FF0 = 0 // termios.h:250:1: + FF1 = 0100000 // termios.h:251:1: + FFDLY = 0100000 // termios.h:249:1: + FIORDCHK = 26115 // termios.h:537:1: + FLUSHO = 0020000 // termios.h:310:1: + HUPCL = 0002000 // termios.h:269:1: + IBSHIFT = 16 // termios.h:65:1: + ICANON = 0000002 // termios.h:293:1: + ICRNL = 0000400 // termios.h:194:1: + IEXTEN = 0100000 // termios.h:314:1: + IGNBRK = 0000001 // termios.h:186:1: + IGNCR = 0000200 // termios.h:193:1: + IGNPAR = 0000004 // termios.h:188:1: + IMAXBEL = 0020000 // termios.h:207:1: + INLCR = 0000100 // termios.h:192:1: + INPCK = 0000020 // termios.h:190:1: + IOCTYPE = 0xff00 // termios.h:336:1: + ISIG = 0000001 // termios.h:292:1: + ISTRIP = 0000040 // termios.h:191:1: + ITIMER_PROF = 2 // time.h:201:1: + ITIMER_REAL = 0 // time.h:199:1: + ITIMER_REALPROF = 3 // time.h:204:1: + ITIMER_VIRTUAL = 1 // time.h:200:1: + IUCLC = 0001000 // termios.h:198:1: + IXANY = 0004000 // termios.h:203:1: + IXOFF = 0010000 // termios.h:205:1: + IXON = 0002000 // termios.h:200:1: + KBENABLED = 21514 // termios.h:333:1: + LDCHG = 17410 // termios.h:508:1: + LDCLOSE = 17409 // termios.h:507:1: + LDDMAP = 17522 // termios.h:518:1: + LDEMAP = 17521 // termios.h:517:1: + LDGETT = 17416 // termios.h:509:1: + LDGMAP = 17519 // termios.h:515:1: + LDIOC = 17408 // termios.h:504:1: + LDNMAP = 17520 // termios.h:516:1: + LDOPEN = 17408 // termios.h:506:1: + LDSETT = 17417 // termios.h:510:1: + LDSMAP = 17518 // termios.h:514:1: + LOBLK = 0040000 // termios.h:274:1: + MICROSEC = 1000000 // time.h:246:1: + MILLISEC = 1000 // time.h:245:1: + NANOSEC = 1000000000 // time.h:247:1: + NBBY = 8 // select.h:103:1: + NCC = 8 // termios.h:71:1: + NCCS = 19 // termios.h:75:1: + NL0 = 0 // termios.h:225:1: + NL1 = 0000400 // termios.h:226:1: + NLDLY = 0000400 // termios.h:224:1: + NOFLSH = 0000200 // termios.h:303:1: + OCRNL = 0000010 // termios.h:219:1: + OFDEL = 0000200 // termios.h:223:1: + OFILL = 0000100 // termios.h:222:1: + OLCUC = 0000002 // termios.h:216:1: + ONLCR = 0000004 // termios.h:218:1: + ONLRET = 0000040 // termios.h:221:1: + ONOCR = 0000020 // termios.h:220:1: + OPOST = 0000001 // termios.h:212:1: + PAGEOUT = 0200000 // termios.h:254:1: + PARENB = 0000400 // termios.h:267:1: + PAREXT = 04000000 // termios.h:279:1: + PARMRK = 0000010 // termios.h:189:1: + PARODD = 0001000 // termios.h:268:1: + PENDIN = 0040000 // termios.h:311:1: + P_MYID = -1 // types.h:632:1: + RCV1EN = 0010000 // termios.h:272:1: + REG_LABEL_BP = 2 // machtypes.h:44:1: + REG_LABEL_MAX = 8 // machtypes.h:51:1: + REG_LABEL_PC = 0 // machtypes.h:42:1: + REG_LABEL_R12 = 4 // machtypes.h:47:1: + REG_LABEL_R13 = 5 // machtypes.h:48:1: + REG_LABEL_R14 = 6 // machtypes.h:49:1: + REG_LABEL_R15 = 7 // machtypes.h:50:1: + REG_LABEL_RBX = 3 // machtypes.h:46:1: + REG_LABEL_SP = 1 // machtypes.h:43:1: + RTS_TOG = 21537 // termios.h:340:1: + SEC = 1 // time.h:244:1: + TAB0 = 0 // termios.h:233:1: + TAB1 = 0004000 // termios.h:234:1: + TAB2 = 0010000 // termios.h:235:1: + TAB3 = 0014000 // termios.h:236:1: + TABDLY = 0014000 // termios.h:232:1: + TCDSET = 21536 // termios.h:339:1: + TCFLSH = 21511 // termios.h:327:1: + TCGETA = 21505 // termios.h:321:1: + TCGETS = 21517 // termios.h:354:1: + TCIFLUSH = 0 // termios.h:409:1: + TCIOFF = 2 // termios.h:415:1: + TCIOFLUSH = 2 // termios.h:411:1: + TCION = 3 // termios.h:416:1: + TCOFLUSH = 1 // termios.h:410:1: + TCOOFF = 0 // termios.h:413:1: + TCOON = 1 // termios.h:414:1: + TCSADRAIN = 21519 // termios.h:361:1: + TCSAFLUSH = 21520 // termios.h:405:1: + TCSANOW = 21518 // termios.h:357:1: + TCSBRK = 21509 // termios.h:325:1: + TCSETA = 21506 // termios.h:322:1: + TCSETAF = 21508 // termios.h:324:1: + TCSETAW = 21507 // termios.h:323:1: + TCSETS = 21518 // termios.h:355:1: + TCSETSF = 21520 // termios.h:363:1: + TCSETSW = 21519 // termios.h:359:1: + TCXONC = 21510 // termios.h:326:1: + TIMER_ABSTIME = 0x1 // time_impl.h:134:1: + TIMER_RELTIME = 0x0 // time_impl.h:133:1: + TIME_UTC = 0x1 // time.h:306:1: + TIOC = 21504 // termios.h:319:1: + TIOCCBRK = 29818 // termios.h:452:1: + TIOCCDTR = 29816 // termios.h:454:1: + TIOCCILOOP = 29804 // termios.h:463:1: + TIOCEXCL = 29709 // termios.h:436:1: + TIOCFLUSH = 29712 // termios.h:438:1: + TIOCGETC = 29714 // termios.h:440:1: + TIOCGETD = 29696 // termios.h:430:1: + TIOCGETLD = 21628 // termios.h:369:1: + TIOCGETP = 29704 // termios.h:433:1: + TIOCGLTC = 29812 // termios.h:456:1: + TIOCGPGRP = 29716 // termios.h:472:1: + TIOCGPPS = 21629 // termios.h:386:1: + TIOCGPPSEV = 21631 // termios.h:388:1: + TIOCGSID = 29718 // termios.h:474:1: + TIOCGSOFTCAR = 21609 // termios.h:348:1: + TIOCGWINSZ = 21608 // termios.h:342:1: + TIOCHPCL = 29698 // termios.h:432:1: + TIOCKBOF = 21513 // termios.h:332:1: + TIOCKBON = 21512 // termios.h:331:1: + TIOCLBIC = 29822 // termios.h:448:1: + TIOCLBIS = 29823 // termios.h:447:1: + TIOCLGET = 29820 // termios.h:450:1: + TIOCLSET = 29821 // termios.h:449:1: + TIOCMBIC = 29724 // termios.h:482:1: + TIOCMBIS = 29723 // termios.h:481:1: + TIOCMGET = 29725 // termios.h:483:1: + TIOCMSET = 29722 // termios.h:480:1: + TIOCM_CAR = 0100 // termios.h:490:1: + TIOCM_CD = 64 // termios.h:491:1: + TIOCM_CTS = 0040 // termios.h:489:1: + TIOCM_DSR = 0400 // termios.h:494:1: + TIOCM_DTR = 0002 // termios.h:485:1: + TIOCM_LE = 0001 // termios.h:484:1: + TIOCM_RI = 128 // termios.h:493:1: + TIOCM_RNG = 0200 // termios.h:492:1: + TIOCM_RTS = 0004 // termios.h:486:1: + TIOCM_SR = 0020 // termios.h:488:1: + TIOCM_ST = 0010 // termios.h:487:1: + TIOCNOTTY = 29809 // termios.h:458:1: + TIOCNXCL = 29710 // termios.h:437:1: + TIOCOUTQ = 29811 // termios.h:457:1: + TIOCREMOTE = 29726 // termios.h:498:1: + TIOCSBRK = 29819 // termios.h:451:1: + TIOCSCTTY = 29828 // termios.h:459:1: + TIOCSDTR = 29817 // termios.h:453:1: + TIOCSETC = 29713 // termios.h:439:1: + TIOCSETD = 29697 // termios.h:431:1: + TIOCSETLD = 21627 // termios.h:368:1: + TIOCSETN = 29706 // termios.h:435:1: + TIOCSETP = 29705 // termios.h:434:1: + TIOCSIGNAL = 29727 // termios.h:499:1: + TIOCSILOOP = 29805 // termios.h:462:1: + TIOCSLTC = 29813 // termios.h:455:1: + TIOCSPGRP = 29717 // termios.h:473:1: + TIOCSPPS = 21630 // termios.h:387:1: + TIOCSSOFTCAR = 21610 // termios.h:349:1: + TIOCSTART = 29806 // termios.h:461:1: + TIOCSTI = 29719 // termios.h:477:1: + TIOCSTOP = 29807 // termios.h:460:1: + TIOCSWINSZ = 21607 // termios.h:343:1: + TOSTOP = 0000400 // termios.h:304:1: + VCEOF = 8 // termios.h:153:1: + VCEOL = 9 // termios.h:154:1: + VDISCARD = 13 // termios.h:143:1: + VDSUSP = 11 // termios.h:141:1: + VEOF = 4 // termios.h:127:1: + VEOL = 5 // termios.h:128:1: + VEOL2 = 6 // termios.h:130:1: + VERASE = 2 // termios.h:125:1: + VERASE2 = 17 // termios.h:147:1: + VINTR = 0 // termios.h:123:1: + VKILL = 3 // termios.h:126:1: + VLNEXT = 15 // termios.h:145:1: + VMIN = 4 // termios.h:132:1: + VQUIT = 1 // termios.h:124:1: + VREPRINT = 12 // termios.h:142:1: + VSTART = 8 // termios.h:137:1: + VSTATUS = 16 // termios.h:146:1: + VSTOP = 9 // termios.h:138:1: + VSUSP = 10 // termios.h:139:1: + VSWTCH = 7 // termios.h:135:1: + VT0 = 0 // termios.h:247:1: + VT1 = 0040000 // termios.h:248:1: + VTDLY = 0040000 // termios.h:246:1: + VTIME = 5 // termios.h:133:1: + VWERASE = 14 // termios.h:144:1: + WRAP = 0400000 // termios.h:255:1: + XCASE = 0000004 // termios.h:297:1: + XCLUDE = 0100000 // termios.h:275:1: + XMT1EN = 0020000 // termios.h:273:1: + XTABS = 0014000 // termios.h:239:1: + X_ALIGNMENT_REQUIRED = 1 // isa_defs.h:262:1: + X_BIT_FIELDS_LTOH = 0 // isa_defs.h:245:1: + X_BOOL_ALIGNMENT = 1 // isa_defs.h:248:1: + X_CHAR_ALIGNMENT = 1 // isa_defs.h:249:1: + X_CHAR_IS_SIGNED = 0 // isa_defs.h:247:1: + X_CLOCKID_T = 0 // types.h:568:1: + X_CLOCK_T = 0 // types.h:563:1: + X_COND_MAGIC = 0x4356 // types.h:426:1: + X_DMA_USES_PHYSADDR = 0 // isa_defs.h:281:1: + X_DONT_USE_1275_GENERIC_NAMES = 0 // isa_defs.h:287:1: + X_DOUBLE_ALIGNMENT = 8 // isa_defs.h:256:1: + X_DOUBLE_COMPLEX_ALIGNMENT = 8 // isa_defs.h:257:1: + X_DTRACE_VERSION = 1 // feature_tests.h:490:1: + X_FILE_OFFSET_BITS = 64 // :25:1: + X_FIRMWARE_NEEDS_FDISK = 0 // isa_defs.h:282:1: + X_FLOAT_ALIGNMENT = 4 // isa_defs.h:252:1: + X_FLOAT_COMPLEX_ALIGNMENT = 4 // isa_defs.h:253:1: + X_HAVE_CPUID_INSN = 0 // isa_defs.h:288:1: + X_IEEE_754 = 0 // isa_defs.h:246:1: + X_INT64_TYPE = 0 // int_types.h:82:1: + X_INT_ALIGNMENT = 4 // isa_defs.h:251:1: + X_ISO_CPP_14882_1998 = 0 // feature_tests.h:466:1: + X_ISO_C_9899_1999 = 0 // feature_tests.h:472:1: + X_ISO_C_9899_2011 = 0 // feature_tests.h:478:1: + X_ISO_TIME_ISO_H = 0 // time_iso.h:46:1: + X_LARGEFILE64_SOURCE = 1 // feature_tests.h:231:1: + X_LARGEFILE_SOURCE = 1 // feature_tests.h:235:1: + X_LITTLE_ENDIAN = 0 // isa_defs.h:242:1: + X_LOCALE_T = 0 // time.h:291:1: + X_LONGLONG_TYPE = 0 // feature_tests.h:412:1: + X_LONG_ALIGNMENT = 8 // isa_defs.h:254:1: + X_LONG_DOUBLE_ALIGNMENT = 16 // isa_defs.h:258:1: + X_LONG_DOUBLE_COMPLEX_ALIGNMENT = 16 // isa_defs.h:259:1: + X_LONG_LONG_ALIGNMENT = 8 // isa_defs.h:255:1: + X_LONG_LONG_ALIGNMENT_32 = 4 // isa_defs.h:268:1: + X_LONG_LONG_LTOH = 0 // isa_defs.h:244:1: + X_LP64 = 1 // :286:1: + X_MAX_ALIGNMENT = 16 // isa_defs.h:261:1: + X_MULTI_DATAMODEL = 0 // isa_defs.h:279:1: + X_MUTEX_MAGIC = 0x4d58 // types.h:424:1: + X_NBBY = 8 // select.h:100:1: + X_NCC = 8 // termios.h:69:1: + X_NORETURN_KYWD = 0 // feature_tests.h:448:1: + X_OFF_T = 0 // types.h:142:1: + X_POINTER_ALIGNMENT = 8 // isa_defs.h:260:1: + X_POSIX_VDISABLE = 0 // termios.h:59:1: + X_PSM_MODULES = 0 // isa_defs.h:284:1: + X_PTRDIFF_T = 0 // types.h:112:1: + X_RESTRICT_KYWD = 0 // feature_tests.h:435:1: + X_RTC_CONFIG = 0 // isa_defs.h:285:1: + X_RWL_MAGIC = 0x5257 // types.h:427:1: + X_SEMA_MAGIC = 0x534d // types.h:425:1: + X_SHORT_ALIGNMENT = 2 // isa_defs.h:250:1: + X_SIGEVENT = 0 // time.h:132:1: + X_SIGSET_T = 0 // select.h:73:1: + X_SIGVAL = 0 // time.h:124:1: + X_SIZE_T = 0 // types.h:540:1: + X_SOFT_HOSTID = 0 // isa_defs.h:286:1: + X_SSIZE_T = 0 // types.h:549:1: + X_STACK_GROWS_DOWNWARD = 0 // isa_defs.h:243:1: + X_STDC_C11 = 0 // feature_tests.h:165:1: + X_STDC_C99 = 0 // feature_tests.h:169:1: + X_SUNOS_VTOC_16 = 0 // isa_defs.h:280:1: + X_SUSECONDS_T = 0 // time.h:50:1: + X_SYS_CCOMPILE_H = 0 // ccompile.h:32:1: + X_SYS_FEATURE_TESTS_H = 0 // feature_tests.h:41:1: + X_SYS_INT_TYPES_H = 0 // int_types.h:30:1: + X_SYS_ISA_DEFS_H = 0 // isa_defs.h:30:1: + X_SYS_MACHTYPES_H = 0 // machtypes.h:27:1: + X_SYS_NULL_H = 0 // null.h:17:1: + X_SYS_SELECT_H = 0 // select.h:45:1: + X_SYS_TERMIOS_H = 0 // termios.h:32:1: + X_SYS_TIME_H = 0 // time.h:27:1: + X_SYS_TIME_IMPL_H = 0 // time_impl.h:38:1: + X_SYS_TTYDEV_H = 0 // ttydev.h:27:1: + X_SYS_TYPES_H = 0 // types.h:35:1: + X_TERMIOS_H = 0 // termios.h:27:1: + X_TIMER_T = 0 // types.h:573:1: + X_TIME_H = 0 // time.h:37:1: + X_TIME_T = 0 // time.h:45:1: + X_TIOC = 21504 // termios.h:315:1: + X_UID_T = 0 // types.h:400:1: + X_XOPEN_VERSION = 3 // feature_tests.h:392:1: + Sun = 1 // :172:1: + TIOC1 = 29696 // termios.h:421:1: + Unix = 1 // :175:1: +) + +// used for block sizes + +// The boolean_t type has had a varied amount of exposure over the years in +// terms of how its enumeration constants have been exposed. In particular, it +// originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the +// B_TRUE and B_FALSE with an underscore. This check never included the +// question of if we were in a strict ANSI C environment or whether extensions +// were defined. +// +// Compilers such as clang started defaulting to always including an +// XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__. +// This would lead most software that had used the non-underscore versions to +// need it. As such, we have adjusted the non-strict XOPEN environment to retain +// its old behavior so as to minimize namespace pollution; however, we instead +// include both variants of the definitions in the generally visible version +// allowing software written in either world to hopefully end up in a good +// place. +// +// This isn't perfect, but should hopefully minimize the pain for folks actually +// trying to build software. +const ( /* types.h:215:1: */ + B_FALSE = 0 + B_TRUE = 1 + X_B_FALSE = 0 + X_B_TRUE = 1 +) + +type Ptrdiff_t = int64 /* :3:26 */ + +type Size_t = uint64 /* :9:23 */ + +type Wchar_t = int32 /* :15:24 */ + +type X__int128_t = struct { + Flo int64 + Fhi int64 +} /* :21:43 */ // must match modernc.org/mathutil.Int128 +type X__uint128_t = struct { + Flo uint64 + Fhi uint64 +} /* :22:44 */ // must match modernc.org/mathutil.Int128 + +type X__builtin_va_list = uintptr /* :46:14 */ +type X__float128 = float64 /* :47:21 */ + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright 2014 Garrett D'Amore +// +// Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2015 EveryCity Ltd. All rights reserved. +// Copyright 2019 Joyent, Inc. + +// This file contains definitions designed to enable different compilers +// to be used harmoniously on Solaris systems. + +// Allow for version tests for compiler bugs and features. + +// analogous to lint's PRINTFLIKEn + +// Handle the kernel printf routines that can take '%b' too + +// This one's pretty obvious -- the function never returns + +// The function is 'extern inline' and expects GNU C89 behaviour, not C99 +// behaviour. +// +// Should only be used on 'extern inline' definitions for GCC. + +// The function has control flow such that it may return multiple times (in +// the manner of setjmp or vfork) + +// This is an appropriate label for functions that do not +// modify their arguments, e.g. strlen() + +// This is a stronger form of __pure__. Can be used for functions +// that do not modify their arguments and don't depend on global +// memory. + +// This attribute, attached to a variable, means that the variable is meant to +// be possibly unused. GCC will not produce a warning for this variable. + +// Shorthand versions for readability + +// In release build, disable warnings about variables +// which are used only for debugging. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2008 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2016 Joyent, Inc. + +// This header file serves to group a set of well known defines and to +// set these for each instruction set architecture. These defines may +// be divided into two groups; characteristics of the processor and +// implementation choices for Solaris on a processor. +// +// Processor Characteristics: +// +// _LITTLE_ENDIAN / _BIG_ENDIAN: +// The natural byte order of the processor. A pointer to an int points +// to the least/most significant byte of that int. +// +// _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: +// The processor specific direction of stack growth. A push onto the +// stack increases/decreases the stack pointer, so it stores data at +// successively higher/lower addresses. (Stackless machines ignored +// without regrets). +// +// _LONG_LONG_HTOL / _LONG_LONG_LTOH: +// A pointer to a long long points to the most/least significant long +// within that long long. +// +// _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: +// The C compiler assigns bit fields from the high/low to the low/high end +// of an int (most to least significant vs. least to most significant). +// +// _IEEE_754: +// The processor (or supported implementations of the processor) +// supports the ieee-754 floating point standard. No other floating +// point standards are supported (or significant). Any other supported +// floating point formats are expected to be cased on the ISA processor +// symbol. +// +// _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: +// The C Compiler implements objects of type `char' as `unsigned' or +// `signed' respectively. This is really an implementation choice of +// the compiler writer, but it is specified in the ABI and tends to +// be uniform across compilers for an instruction set architecture. +// Hence, it has the properties of a processor characteristic. +// +// _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / +// _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / +// _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT: +// The ABI defines alignment requirements of each of the primitive +// object types. Some, if not all, may be hardware requirements as +// well. The values are expressed in "byte-alignment" units. +// +// _MAX_ALIGNMENT: +// The most stringent alignment requirement as specified by the ABI. +// Equal to the maximum of all the above _XXX_ALIGNMENT values. +// +// _MAX_ALIGNMENT_TYPE: +// The name of the C type that has the value descried in _MAX_ALIGNMENT. +// +// _ALIGNMENT_REQUIRED: +// True or false (1 or 0) whether or not the hardware requires the ABI +// alignment. +// +// _LONG_LONG_ALIGNMENT_32 +// The 32-bit ABI supported by a 64-bit kernel may have different +// alignment requirements for primitive object types. The value of this +// identifier is expressed in "byte-alignment" units. +// +// _HAVE_CPUID_INSN +// This indicates that the architecture supports the 'cpuid' +// instruction as defined by Intel. (Intel allows other vendors +// to extend the instruction for their own purposes.) +// +// +// Implementation Choices: +// +// _ILP32 / _LP64: +// This specifies the compiler data type implementation as specified in +// the relevant ABI. The choice between these is strongly influenced +// by the underlying hardware, but is not absolutely tied to it. +// Currently only two data type models are supported: +// +// _ILP32: +// Int/Long/Pointer are 32 bits. This is the historical UNIX +// and Solaris implementation. Due to its historical standing, +// this is the default case. +// +// _LP64: +// Long/Pointer are 64 bits, Int is 32 bits. This is the chosen +// implementation for 64-bit ABIs such as SPARC V9. +// +// _I32LPx: +// A compilation environment where 'int' is 32-bit, and +// longs and pointers are simply the same size. +// +// In all cases, Char is 8 bits and Short is 16 bits. +// +// _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: +// This specifies the form of the disk VTOC (or label): +// +// _SUNOS_VTOC_8: +// This is a VTOC form which is upwardly compatible with the +// SunOS 4.x disk label and allows 8 partitions per disk. +// +// _SUNOS_VTOC_16: +// In this format the incore vtoc image matches the ondisk +// version. It allows 16 slices per disk, and is not +// compatible with the SunOS 4.x disk label. +// +// Note that these are not the only two VTOC forms possible and +// additional forms may be added. One possible form would be the +// SVr4 VTOC form. The symbol for that is reserved now, although +// it is not implemented. +// +// _SVR4_VTOC_16: +// This VTOC form is compatible with the System V Release 4 +// VTOC (as implemented on the SVr4 Intel and 3b ports) with +// 16 partitions per disk. +// +// +// _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR +// This describes the type of addresses used by system DMA: +// +// _DMA_USES_PHYSADDR: +// This type of DMA, used in the x86 implementation, +// requires physical addresses for DMA buffers. The 24-bit +// addresses used by some legacy boards is the source of the +// "low-memory" (<16MB) requirement for some devices using DMA. +// +// _DMA_USES_VIRTADDR: +// This method of DMA allows the use of virtual addresses for +// DMA transfers. +// +// _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT +// This indicates the presence/absence of an fdisk table. +// +// _FIRMWARE_NEEDS_FDISK +// The fdisk table is required by system firmware. If present, +// it allows a disk to be subdivided into multiple fdisk +// partitions, each of which is equivalent to a separate, +// virtual disk. This enables the co-existence of multiple +// operating systems on a shared hard disk. +// +// _NO_FDISK_PRESENT +// If the fdisk table is absent, it is assumed that the entire +// media is allocated for a single operating system. +// +// _HAVE_TEM_FIRMWARE +// Defined if this architecture has the (fallback) option of +// using prom_* calls for doing I/O if a suitable kernel driver +// is not available to do it. +// +// _DONT_USE_1275_GENERIC_NAMES +// Controls whether or not device tree node names should +// comply with the IEEE 1275 "Generic Names" Recommended +// Practice. With _DONT_USE_GENERIC_NAMES, device-specific +// names identifying the particular device will be used. +// +// __i386_COMPAT +// This indicates whether the i386 ABI is supported as a *non-native* +// mode for the platform. When this symbol is defined: +// - 32-bit xstat-style system calls are enabled +// - 32-bit xmknod-style system calls are enabled +// - 32-bit system calls use i386 sizes -and- alignments +// +// Note that this is NOT defined for the i386 native environment! +// +// __x86 +// This is ONLY a synonym for defined(__i386) || defined(__amd64) +// which is useful only insofar as these two architectures share +// common attributes. Analogous to __sparc. +// +// _PSM_MODULES +// This indicates whether or not the implementation uses PSM +// modules for processor support, reading /etc/mach from inside +// the kernel to extract a list. +// +// _RTC_CONFIG +// This indicates whether or not the implementation uses /etc/rtc_config +// to configure the real-time clock in the kernel. +// +// _UNIX_KRTLD +// This indicates that the implementation uses a dynamically +// linked unix + krtld to form the core kernel image at boot +// time, or (in the absence of this symbol) a prelinked kernel image. +// +// _OBP +// This indicates the firmware interface is OBP. +// +// _SOFT_HOSTID +// This indicates that the implementation obtains the hostid +// from the file /etc/hostid, rather than from hardware. + +// The following set of definitions characterize Solaris on AMD's +// 64-bit systems. + +// Define the appropriate "processor characteristics" + +// Different alignment constraints for the i386 ABI in compatibility mode + +// Define the appropriate "implementation choices". + +// The feature test macro __i386 is generic for all processors implementing +// the Intel 386 instruction set or a superset of it. Specifically, this +// includes all members of the 386, 486, and Pentium family of processors. + +// Values of _POSIX_C_SOURCE +// +// undefined not a POSIX compilation +// 1 POSIX.1-1990 compilation +// 2 POSIX.2-1992 compilation +// 199309L POSIX.1b-1993 compilation (Real Time) +// 199506L POSIX.1c-1995 compilation (POSIX Threads) +// 200112L POSIX.1-2001 compilation (Austin Group Revision) +// 200809L POSIX.1-2008 compilation + +// The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, +// and _STDC_C99 are Sun implementation specific macros created in order to +// compress common standards specified feature test macros for easier reading. +// These macros should not be used by the application developer as +// unexpected results may occur. Instead, the user should reference +// standards(7) for correct usage of the standards feature test macros. +// +// __XOPEN_OR_POSIX Used in cases where a symbol is defined by both +// X/Open or POSIX or in the negative, when neither +// X/Open or POSIX defines a symbol. +// +// _STRICT_STDC __STDC__ is specified by the C Standards and defined +// by the compiler. For Sun compilers the value of +// __STDC__ is either 1, 0, or not defined based on the +// compilation mode (see cc(1)). When the value of +// __STDC__ is 1 and in the absence of any other feature +// test macros, the namespace available to the application +// is limited to only those symbols defined by the C +// Standard. _STRICT_STDC provides a more readable means +// of identifying symbols defined by the standard, or in +// the negative, symbols that are extensions to the C +// Standard. See additional comments for GNU C differences. +// +// _STDC_C99 __STDC_VERSION__ is specified by the C standards and +// defined by the compiler and indicates the version of +// the C standard. A value of 199901L indicates a +// compiler that complies with ISO/IEC 9899:1999, other- +// wise known as the C99 standard. +// +// _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__ +// is 201112L indicating a compiler that compiles with +// ISO/IEC 9899:2011, otherwise known as the C11 standard. +// +// _STRICT_SYMBOLS Used in cases where symbol visibility is restricted +// by the standards, and the user has not explicitly +// relaxed the strictness via __EXTENSIONS__. + +// ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC +// 99899:2011 specify the following predefined macro name: +// +// __STDC__ The integer constant 1, intended to indicate a conforming +// implementation. +// +// Furthermore, a strictly conforming program shall use only those features +// of the language and library specified in these standards. A conforming +// implementation shall accept any strictly conforming program. +// +// Based on these requirements, Sun's C compiler defines __STDC__ to 1 for +// strictly conforming environments and __STDC__ to 0 for environments that +// use ANSI C semantics but allow extensions to the C standard. For non-ANSI +// C semantics, Sun's C compiler does not define __STDC__. +// +// The GNU C project interpretation is that __STDC__ should always be defined +// to 1 for compilation modes that accept ANSI C syntax regardless of whether +// or not extensions to the C standard are used. Violations of conforming +// behavior are conditionally flagged as warnings via the use of the +// -pedantic option. In addition to defining __STDC__ to 1, the GNU C +// compiler also defines __STRICT_ANSI__ as a means of specifying strictly +// conforming environments using the -ansi or -std= options. +// +// In the absence of any other compiler options, Sun and GNU set the value +// of __STDC__ as follows when using the following options: +// +// Value of __STDC__ __STRICT_ANSI__ +// +// cc -Xa (default) 0 undefined +// cc -Xt (transitional) 0 undefined +// cc -Xc (strictly conforming) 1 undefined +// cc -Xs (K&R C) undefined undefined +// +// gcc (default) 1 undefined +// gcc -ansi, -std={c89, c99,...) 1 defined +// gcc -traditional (K&R) undefined undefined +// +// The default compilation modes for Sun C compilers versus GNU C compilers +// results in a differing value for __STDC__ which results in a more +// restricted namespace when using Sun compilers. To allow both GNU and Sun +// interpretations to peacefully co-exist, we use the following Sun +// implementation _STRICT_STDC_ macro: + +// Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011 + +// Use strict symbol visibility. + +// This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are +// governed by POSIX, but have not been governed by ISO C. One can go two ways +// on what should happen if an application actively includes (not transitively) +// a header that isn't part of the ISO C spec, we opt to say that if someone has +// gone out of there way then they're doing it for a reason and that is an act +// of non-compliance and therefore it's not up to us to hide away every symbol. +// +// In general, prefer using _STRICT_SYMBOLS, but this is here in particular for +// cases where in the past we have only used a POSIX related check and we don't +// wish to make something stricter. Often applications are relying on the +// ability to, or more realistically unwittingly, have _STRICT_STDC declared and +// still use these interfaces. + +// Large file interfaces: +// +// _LARGEFILE_SOURCE +// 1 large file-related additions to POSIX +// interfaces requested (fseeko, etc.) +// _LARGEFILE64_SOURCE +// 1 transitional large-file-related interfaces +// requested (seek64, stat64, etc.) +// +// The corresponding announcement macros are respectively: +// _LFS_LARGEFILE +// _LFS64_LARGEFILE +// (These are set in .) +// +// Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as +// well. +// +// The large file interfaces are made visible regardless of the initial values +// of the feature test macros under certain circumstances: +// - If no explicit standards-conforming environment is requested (neither +// of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of +// __STDC__ does not imply standards conformance). +// - Extended system interfaces are explicitly requested (__EXTENSIONS__ +// is defined). +// - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is +// defined). (Note that this dependency is an artifact of the current +// kernel implementation and may change in future releases.) + +// Large file compilation environment control: +// +// The setting of _FILE_OFFSET_BITS controls the size of various file-related +// types and governs the mapping between file-related source function symbol +// names and the corresponding binary entry points. +// +// In the 32-bit environment, the default value is 32; if not set, set it to +// the default here, to simplify tests in other headers. +// +// In the 64-bit compilation environment, the only value allowed is 64. + +// Use of _XOPEN_SOURCE +// +// The following X/Open specifications are supported: +// +// X/Open Portability Guide, Issue 3 (XPG3) +// X/Open CAE Specification, Issue 4 (XPG4) +// X/Open CAE Specification, Issue 4, Version 2 (XPG4v2) +// X/Open CAE Specification, Issue 5 (XPG5) +// Open Group Technical Standard, Issue 6 (XPG6), also referred to as +// IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. +// Open Group Technical Standard, Issue 7 (XPG7), also referred to as +// IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. +// +// XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). +// XPG5 is also referred to as UNIX 98 or the Single Unix Specification, +// Version 2 (SUSv2) +// XPG6 is the result of a merge of the X/Open and POSIX specifications +// and as such is also referred to as IEEE Std. 1003.1-2001 in +// addition to UNIX 03 and SUSv3. +// XPG7 is also referred to as UNIX 08 and SUSv4. +// +// When writing a conforming X/Open application, as per the specification +// requirements, the appropriate feature test macros must be defined at +// compile time. These are as follows. For more info, see standards(7). +// +// Feature Test Macro Specification +// ------------------------------------------------ ------------- +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE = 500 XPG5 +// _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 +// _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 +// +// In order to simplify the guards within the headers, the following +// implementation private test macros have been created. Applications +// must NOT use these private test macros as unexpected results will +// occur. +// +// Note that in general, the use of these private macros is cumulative. +// For example, the use of _XPG3 with no other restrictions on the X/Open +// namespace will make the symbols visible for XPG3 through XPG6 +// compilation environments. The use of _XPG4_2 with no other X/Open +// namespace restrictions indicates that the symbols were introduced in +// XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation +// environments, but not for XPG3 or XPG4 compilation environments. +// +// _XPG3 X/Open Portability Guide, Issue 3 (XPG3) +// _XPG4 X/Open CAE Specification, Issue 4 (XPG4) +// _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) +// _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) +// _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) +// _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) + +// X/Open Portability Guide, Issue 3 + +// _XOPEN_VERSION is defined by the X/Open specifications and is not +// normally defined by the application, except in the case of an XPG4 +// application. On the implementation side, _XOPEN_VERSION defined with +// the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined +// with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. +// _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) +// application and with a value of 600 indicates an XPG6 (UNIX 03) +// application and with a value of 700 indicates an XPG7 (UNIX 08). +// The appropriate version is determined by the use of the +// feature test macros described earlier. The value of _XOPEN_VERSION +// defaults to 3 otherwise indicating support for XPG3 applications. + +// ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly +// conforming environments. ISO 9899:1999 says it does. +// +// The presence of _LONGLONG_TYPE says "long long exists" which is therefore +// defined in all but strictly conforming environments that disallow it. + +// The following macro defines a value for the ISO C99 restrict +// keyword so that _RESTRICT_KYWD resolves to "restrict" if +// an ISO C99 compiler is used, "__restrict" for c++ and "" (null string) +// if any other compiler is used. This allows for the use of single +// prototype declarations regardless of compiler version. + +// The following macro defines a value for the ISO C11 _Noreturn +// keyword so that _NORETURN_KYWD resolves to "_Noreturn" if +// an ISO C11 compiler is used and "" (null string) if any other +// compiler is used. This allows for the use of single prototype +// declarations regardless of compiler version. + +// ISO/IEC 9899:2011 Annex K + +// The following macro indicates header support for the ANSI C++ +// standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882. + +// The following macro indicates header support for the C99 standard, +// ISO/IEC 9899:1999, Programming Languages - C. + +// The following macro indicates header support for the C11 standard, +// ISO/IEC 9899:2011, Programming Languages - C. + +// The following macro indicates header support for the C11 standard, +// ISO/IEC 9899:2011 Annex K, Programming Languages - C. + +// The following macro indicates header support for DTrace. The value is an +// integer that corresponds to the major version number for DTrace. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Terminal definitions related to underlying hardware. + +// Speeds + +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright (c) 1982, 1986, 1993 Regents of the University of California. +// All rights reserved. The Berkeley software License Agreement +// specifies the terms and conditions for redistribution. + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2009 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// Copyright 2016 Joyent, Inc. +// Copyright 2020 OmniOS Community Edition (OmniOSce) Association. + +// Copyright (c) 2013, 2016 by Delphix. All rights reserved. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Structure returned by gettimeofday(2) system call, +// and used in other calls. + +type Time_t = int64 /* time.h:46:14 */ // time of day in seconds + +type Suseconds_t = int64 /* time.h:51:14 */ // signed # of microseconds + +type Timeval = struct { + Ftv_sec int64 + Ftv_usec int64 +} /* time.h:54:1 */ + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:86:1 */ + +// Needed for longlong_t type. Placement of this due to +// including which relies on the presense of the itimerval +// structure. +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright 2009 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// Copyright 2016 Joyent, Inc. +// Copyright 2021 Oxide Computer Company + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2008 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2016 Joyent, Inc. + +// Machine dependent definitions moved to . +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2007 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Machine dependent types: +// +// intel ia32 Version + +type X_label_t = struct{ Fval [8]int64 } /* machtypes.h:59:9 */ + +// Needed for longlong_t type. Placement of this due to +// including which relies on the presense of the itimerval +// structure. +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright 2009 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// Copyright 2016 Joyent, Inc. +// Copyright 2021 Oxide Computer Company + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2008 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2016 Joyent, Inc. + +// Machine dependent definitions moved to . +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2007 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Machine dependent types: +// +// intel ia32 Version + +type Label_t = X_label_t /* machtypes.h:59:54 */ + +type Lock_t = uint8 /* machtypes.h:63:23 */ // lock work for busy wait + +// Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C +// committee's working draft for the revision of the current ISO C standard, +// ISO/IEC 9899:1990 Programming language - C. These are not currently +// required by any standard but constitute a useful, general purpose set +// of type definitions which is namespace clean with respect to all standards. +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2014 Garrett D'Amore +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// This file, , is part of the Sun Microsystems implementation +// of defined in the ISO C standard, ISO/IEC 9899:1999 +// Programming language - C. +// +// Programs/Modules should not directly include this file. Access to the +// types defined in this file should be through the inclusion of one of the +// following files: +// +// Provides only the "_t" types defined in this +// file which is a subset of the contents of +// . (This can be appropriate for +// all programs/modules except those claiming +// ANSI-C conformance.) +// +// Provides the Kernel and Driver appropriate +// components of . +// +// For use by applications. +// +// See these files for more details. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Basic / Extended integer types +// +// The following defines the basic fixed-size integer types. +// +// Implementations are free to typedef them to Standard C integer types or +// extensions that they support. If an implementation does not support one +// of the particular integer data types below, then it should not define the +// typedefs and macros corresponding to that data type. Note that int8_t +// is not defined in -Xs mode on ISAs for which the ABI specifies "char" +// as an unsigned entity because there is no way to define an eight bit +// signed integral. +type Int8_t = int8 /* int_types.h:75:16 */ +type Int16_t = int16 /* int_types.h:79:17 */ +type Int32_t = int32 /* int_types.h:80:15 */ +type Int64_t = int64 /* int_types.h:83:16 */ + +type Uint8_t = uint8 /* int_types.h:91:24 */ +type Uint16_t = uint16 /* int_types.h:92:25 */ +type Uint32_t = uint32 /* int_types.h:93:23 */ +type Uint64_t = uint64 /* int_types.h:95:24 */ + +// intmax_t and uintmax_t are to be the longest (in number of bits) signed +// and unsigned integer types supported by the implementation. +type Intmax_t = int64 /* int_types.h:107:19 */ +type Uintmax_t = uint64 /* int_types.h:108:19 */ + +// intptr_t and uintptr_t are signed and unsigned integer types large enough +// to hold any data pointer; that is, data pointers can be assigned into or +// from these integer types without losing precision. +type Intptr_t = int64 /* int_types.h:120:16 */ +type Uintptr_t = uint64 /* int_types.h:121:24 */ + +// The following define the fastest integer types that can hold the +// specified number of bits. +type Int_fast8_t = int8 /* int_types.h:132:16 */ +type Int_fast16_t = int32 /* int_types.h:136:15 */ +type Int_fast32_t = int32 /* int_types.h:137:15 */ +type Int_fast64_t = int64 /* int_types.h:139:16 */ + +type Uint_fast8_t = uint8 /* int_types.h:146:24 */ +type Uint_fast16_t = uint32 /* int_types.h:147:23 */ +type Uint_fast32_t = uint32 /* int_types.h:148:23 */ +type Uint_fast64_t = uint64 /* int_types.h:150:24 */ + +// The following define the smallest integer types that can hold the +// specified number of bits. +type Int_least8_t = int8 /* int_types.h:162:16 */ +type Int_least16_t = int16 /* int_types.h:166:17 */ +type Int_least32_t = int32 /* int_types.h:167:15 */ +type Int_least64_t = int64 /* int_types.h:169:16 */ + +// If these are changed, please update char16_t and char32_t in head/uchar.h. +type Uint_least8_t = uint8 /* int_types.h:179:24 */ +type Uint_least16_t = uint16 /* int_types.h:180:25 */ +type Uint_least32_t = uint32 /* int_types.h:181:23 */ +type Uint_least64_t = uint64 /* int_types.h:183:24 */ + +// Strictly conforming ANSI C environments prior to the 1999 +// revision of the C Standard (ISO/IEC 9899:1999) do not have +// the long long data type. +type Longlong_t = int64 /* types.h:72:20 */ +type U_longlong_t = uint64 /* types.h:73:28 */ + +// These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had +// to use them instead of int32_t and uint32_t because DEC had +// shipped 64-bit wide. +type T_scalar_t = int32 /* types.h:92:18 */ +type T_uscalar_t = uint32 /* types.h:93:18 */ + +// POSIX Extensions +type Uchar_t = uint8 /* types.h:102:23 */ +type Ushort_t = uint16 /* types.h:103:24 */ +type Uint_t = uint32 /* types.h:104:22 */ +type Ulong_t = uint64 /* types.h:105:23 */ + +type Caddr_t = uintptr /* types.h:107:15 */ // ? type +type Daddr_t = int64 /* types.h:108:15 */ // type +type Cnt_t = int16 /* types.h:109:16 */ // pointer difference + +// VM-related types +type Pfn_t = uint64 /* types.h:123:18 */ // page frame number +type Pgcnt_t = uint64 /* types.h:124:18 */ // number of pages +type Spgcnt_t = int64 /* types.h:125:15 */ // signed number of pages + +type Use_t = uint8 /* types.h:127:18 */ // use count for swap. +type Sysid_t = int16 /* types.h:128:16 */ +type Index_t = int16 /* types.h:129:16 */ +type Timeout_id_t = uintptr /* types.h:130:15 */ // opaque handle from timeout(9F) +type Bufcall_id_t = uintptr /* types.h:131:15 */ // opaque handle from bufcall(9F) + +// The size of off_t and related types depends on the setting of +// _FILE_OFFSET_BITS. (Note that other system headers define other types +// related to those defined here.) +// +// If _LARGEFILE64_SOURCE is defined, variants of these types that are +// explicitly 64 bits wide become available. + +type Off_t = int64 /* types.h:145:15 */ // offsets within files + +type Off64_t = int64 /* types.h:152:16 */ // offsets within files + +type Ino_t = uint64 /* types.h:161:18 */ // expanded inode type +type Blkcnt_t = int64 /* types.h:162:15 */ // count of file blocks +type Fsblkcnt_t = uint64 /* types.h:163:18 */ // count of file system blocks +type Fsfilcnt_t = uint64 /* types.h:164:18 */ // count of files + +type Ino64_t = uint64 /* types.h:174:16 */ // expanded inode type +type Blkcnt64_t = int64 /* types.h:175:18 */ // count of file blocks +type Fsblkcnt64_t = uint64 /* types.h:176:20 */ // count of file system blocks +type Fsfilcnt64_t = uint64 /* types.h:177:20 */ // count of files + +type Blksize_t = int32 /* types.h:187:14 */ // used for block sizes + +// The boolean_t type has had a varied amount of exposure over the years in +// terms of how its enumeration constants have been exposed. In particular, it +// originally used the __XOPEN_OR_POSIX macro to determine whether to prefix the +// B_TRUE and B_FALSE with an underscore. This check never included the +// question of if we were in a strict ANSI C environment or whether extensions +// were defined. +// +// Compilers such as clang started defaulting to always including an +// XOPEN_SOURCE declaration on behalf of users, but also noted __EXTENSIONS__. +// This would lead most software that had used the non-underscore versions to +// need it. As such, we have adjusted the non-strict XOPEN environment to retain +// its old behavior so as to minimize namespace pollution; however, we instead +// include both variants of the definitions in the generally visible version +// allowing software written in either world to hopefully end up in a good +// place. +// +// This isn't perfect, but should hopefully minimize the pain for folks actually +// trying to build software. +type Boolean_t = uint32 /* types.h:215:69 */ + +// The {u,}pad64_t types can be used in structures such that those structures +// may be accessed by code produced by compilation environments which don't +// support a 64 bit integral datatype. The intention is not to allow +// use of these fields in such environments, but to maintain the alignment +// and offsets of the structure. +// +// Similar comments for {u,}pad128_t. +// +// Note that these types do NOT generate any stronger alignment constraints +// than those available in the underlying ABI. See +type Pad64_t = int64 /* types.h:240:18 */ +type Upad64_t = uint64 /* types.h:241:18 */ + +type Pad128_t = struct { + F_q float64 + F__ccgo_pad1 [8]byte +} /* types.h:257:3 */ + +type Upad128_t = struct { + F_q float64 + F__ccgo_pad1 [8]byte +} /* types.h:262:3 */ + +type Offset_t = int64 /* types.h:264:20 */ +type U_offset_t = uint64 /* types.h:265:22 */ +type Len_t = uint64 /* types.h:266:22 */ +type Diskaddr_t = uint64 /* types.h:267:22 */ + +// Definitions remaining from previous partial support for 64-bit file +// offsets. This partial support for devices greater than 2gb requires +// compiler support for long long. +type Lloff_t = struct{ F_f int64 } /* types.h:284:3 */ + +type Lldaddr_t = struct{ F_f int64 } /* types.h:304:3 */ + +type K_fltset_t = uint32 /* types.h:317:16 */ // kernel fault set type + +// The following type is for various kinds of identifiers. The +// actual type must be the same for all since some system calls +// (such as sigsend) take arguments that may be any of these +// types. The enumeration type idtype_t defined in sys/procset.h +// is used to indicate what type of id is being specified -- +// a process id, process group id, session id, scheduling class id, +// user id, group id, project id, task id or zone id. +type Id_t = int32 /* types.h:329:14 */ + +type Lgrp_id_t = int32 /* types.h:334:15 */ // lgroup ID + +// Type useconds_t is an unsigned integral type capable of storing +// values at least in the range of zero to 1,000,000. +type Useconds_t = uint32 /* types.h:340:17 */ // Time, in microseconds + +// Typedefs for dev_t components. +type Major_t = uint32 /* types.h:351:16 */ // major part of device number +type Minor_t = uint32 /* types.h:352:16 */ // minor part of device number + +// The data type of a thread priority. +type Pri_t = int16 /* types.h:361:15 */ + +// The data type for a CPU flags field. (Can be extended to larger unsigned +// types, if needed, limited by ability to update atomically.) +type Cpu_flag_t = uint16 /* types.h:367:18 */ + +// For compatibility reasons the following typedefs (prefixed o_) +// can't grow regardless of the EFT definition. Although, +// applications should not explicitly use these typedefs +// they may be included via a system header definition. +// WARNING: These typedefs may be removed in a future +// release. +// +// ex. the definitions in s5inode.h (now obsoleted) +// remained small to preserve compatibility +// in the S5 file system type. +type O_mode_t = uint16 /* types.h:380:18 */ // old file attribute type +type O_dev_t = int16 /* types.h:381:15 */ // old device type +type O_uid_t = uint16 /* types.h:382:18 */ // old UID type +type O_gid_t = uint16 /* types.h:383:17 */ // old GID type +type O_nlink_t = int16 /* types.h:384:15 */ // old file link type +type O_pid_t = int16 /* types.h:385:15 */ // old process id type +type O_ino_t = uint16 /* types.h:386:18 */ // old inode type + +// POSIX and XOPEN Declarations +type Key_t = int32 /* types.h:392:13 */ // IPC key type +type Mode_t = uint32 /* types.h:394:16 */ // file attribute type + +type Uid_t = uint32 /* types.h:401:22 */ // UID type + +type Gid_t = uint32 /* types.h:404:15 */ // GID type + +type Datalink_id_t = uint32 /* types.h:406:18 */ +type Vrid_t = uint32 /* types.h:407:18 */ + +type Taskid_t = int32 /* types.h:409:17 */ +type Projid_t = int32 /* types.h:410:17 */ +type Poolid_t = int32 /* types.h:411:14 */ +type Zoneid_t = int32 /* types.h:412:14 */ +type Ctid_t = int32 /* types.h:413:14 */ + +// POSIX definitions are same as defined in thread.h and synch.h. +// Any changes made to here should be reflected in corresponding +// files as described in comments. +type Pthread_t = uint32 /* types.h:420:16 */ // = thread_t in thread.h +type Pthread_key_t = uint32 /* types.h:421:16 */ // = thread_key_t in thread.h + +// "Magic numbers" tagging synchronization object types + +type X_pthread_mutex = struct { + F__pthread_mutex_flags struct { + F__pthread_mutex_flag1 uint16 + F__pthread_mutex_flag2 uint8 + F__pthread_mutex_ceiling uint8 + F__pthread_mutex_type uint16 + F__pthread_mutex_magic uint16 + } + F__pthread_mutex_lock struct { + F__ccgo_pad1 [0]uint64 + F__pthread_mutex_lock64 struct{ F__pthread_mutex_pad [8]uint8 } + } + F__pthread_mutex_data uint64 +} /* types.h:429:9 */ + +// = thread_key_t in thread.h + +// "Magic numbers" tagging synchronization object types + +type Pthread_mutex_t = X_pthread_mutex /* types.h:448:3 */ + +type X_pthread_cond = struct { + F__pthread_cond_flags struct { + F__pthread_cond_flag [4]uint8 + F__pthread_cond_type uint16 + F__pthread_cond_magic uint16 + } + F__pthread_cond_data uint64 +} /* types.h:450:9 */ + +type Pthread_cond_t = X_pthread_cond /* types.h:457:3 */ + +// UNIX 98 Extension +type X_pthread_rwlock = struct { + F__pthread_rwlock_readers int32 + F__pthread_rwlock_type uint16 + F__pthread_rwlock_magic uint16 + F__pthread_rwlock_mutex Pthread_mutex_t + F__pthread_rwlock_readercv Pthread_cond_t + F__pthread_rwlock_writercv Pthread_cond_t +} /* types.h:462:9 */ + +// UNIX 98 Extension +type Pthread_rwlock_t = X_pthread_rwlock /* types.h:469:3 */ + +// SUSV3 +type Pthread_barrier_t = struct { + F__pthread_barrier_count uint32 + F__pthread_barrier_current uint32 + F__pthread_barrier_cycle uint64 + F__pthread_barrier_reserved uint64 + F__pthread_barrier_lock Pthread_mutex_t + F__pthread_barrier_cond Pthread_cond_t +} /* types.h:481:3 */ + +type Pthread_spinlock_t = Pthread_mutex_t /* types.h:483:25 */ + +// attributes for threads, dynamically allocated by library +type X_pthread_attr = struct{ F__pthread_attrp uintptr } /* types.h:488:9 */ + +// attributes for threads, dynamically allocated by library +type Pthread_attr_t = X_pthread_attr /* types.h:490:3 */ + +// attributes for mutex, dynamically allocated by library +type X_pthread_mutexattr = struct{ F__pthread_mutexattrp uintptr } /* types.h:495:9 */ + +// attributes for mutex, dynamically allocated by library +type Pthread_mutexattr_t = X_pthread_mutexattr /* types.h:497:3 */ + +// attributes for cond, dynamically allocated by library +type X_pthread_condattr = struct{ F__pthread_condattrp uintptr } /* types.h:502:9 */ + +// attributes for cond, dynamically allocated by library +type Pthread_condattr_t = X_pthread_condattr /* types.h:504:3 */ + +// pthread_once +type X_once = struct{ F__pthread_once_pad [4]uint64 } /* types.h:509:9 */ + +// pthread_once +type Pthread_once_t = X_once /* types.h:511:3 */ + +// UNIX 98 Extensions +// attributes for rwlock, dynamically allocated by library +type X_pthread_rwlockattr = struct{ F__pthread_rwlockattrp uintptr } /* types.h:517:9 */ + +// UNIX 98 Extensions +// attributes for rwlock, dynamically allocated by library +type Pthread_rwlockattr_t = X_pthread_rwlockattr /* types.h:519:3 */ + +// SUSV3 +// attributes for pthread_barrier_t, dynamically allocated by library +type Pthread_barrierattr_t = struct{ F__pthread_barrierattrp uintptr } /* types.h:527:3 */ + +type Dev_t = uint64 /* types.h:529:17 */ // expanded device type + +type Nlink_t = uint32 /* types.h:532:16 */ // file link type +type Pid_t = int32 /* types.h:533:13 */ // size of something in bytes + +type Ssize_t = int64 /* types.h:551:14 */ // size of something in bytes or -1 + +type Clock_t = int64 /* types.h:564:15 */ // relative time in a specified resolution + +type Clockid_t = int32 /* types.h:569:13 */ // clock identifier type + +type Timer_t = int32 /* types.h:574:13 */ // timer identifier type + +// BEGIN CSTYLED +type Unchar = uint8 /* types.h:580:23 */ +type Ushort = uint16 /* types.h:581:24 */ +type Uint = uint32 /* types.h:582:22 */ +type Ulong = uint64 /* types.h:583:23 */ +// END CSTYLED + +// The following is the value of type id_t to use to indicate the +// caller's current id. See procset.h for the type idtype_t +// which defines which kind of id is being specified. + +// The following value of type pfn_t is used to indicate +// invalid page frame number. + +// BEGIN CSTYLED +type U_char = uint8 /* types.h:650:23 */ +type U_short = uint16 /* types.h:651:24 */ +type U_int = uint32 /* types.h:652:22 */ +type U_long = uint64 /* types.h:653:23 */ +type X_quad = struct{ Fval [2]int32 } /* types.h:654:9 */ + +type Quad_t = X_quad /* types.h:654:38 */ // used by UFS +type Quad = Quad_t /* types.h:655:17 */ // used by UFS +// END CSTYLED + +// Nested include for BSD/sockets source compatibility. +// (The select macros used to be defined here). +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// +// Copyright 2010 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// University Copyright- Copyright (c) 1982, 1986, 1988 +// The Regents of the University of California +// All Rights Reserved +// +// University Acknowledgment- Portions of this document are derived from +// software developed by the University of California, Berkeley, and its +// contributors. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2005 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Implementation-private. This header should not be included +// directly by an application. The application should instead +// include which includes this header conditionally +// depending on which feature test macros are defined. By default, +// this header is included by . X/Open and POSIX +// standards requirements result in this header being included +// by only under a restricted set of conditions. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Time expressed in seconds and nanoseconds + +type Timespec = struct { + Ftv_sec int64 + Ftv_nsec int64 +} /* time_impl.h:57:9 */ + +// used by UFS +// END CSTYLED + +// Nested include for BSD/sockets source compatibility. +// (The select macros used to be defined here). +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// +// Copyright 2010 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// University Copyright- Copyright (c) 1982, 1986, 1988 +// The Regents of the University of California +// All Rights Reserved +// +// University Acknowledgment- Portions of this document are derived from +// software developed by the University of California, Berkeley, and its +// contributors. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2005 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Implementation-private. This header should not be included +// directly by an application. The application should instead +// include which includes this header conditionally +// depending on which feature test macros are defined. By default, +// this header is included by . X/Open and POSIX +// standards requirements result in this header being included +// by only under a restricted set of conditions. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Time expressed in seconds and nanoseconds + +type Timespec_t = Timespec /* time_impl.h:60:3 */ + +type Timestruc_t = Timespec /* time_impl.h:81:25 */ // definition per SVr4 + +// The following has been left in for backward compatibility. Portable +// applications should not use the structure name timestruc. + +// Timer specification +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec int64 + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec int64 + Ftv_nsec int64 + } +} /* time_impl.h:95:9 */ + +// definition per SVr4 + +// The following has been left in for backward compatibility. Portable +// applications should not use the structure name timestruc. + +// Timer specification +type Itimerspec_t = Itimerspec /* time_impl.h:98:3 */ + +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright (c) 1982, 1986, 1993 Regents of the University of California. +// All rights reserved. The Berkeley software License Agreement +// specifies the terms and conditions for redistribution. + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2009 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// Copyright 2016 Joyent, Inc. +// Copyright 2020 OmniOS Community Edition (OmniOSce) Association. + +// Copyright (c) 2013, 2016 by Delphix. All rights reserved. + +// The sigset_t type is defined in and duplicated +// in as a result of XPG4v2 requirements. XPG6 +// now allows the visibility of signal.h in this header, however +// an order of inclusion problem occurs as a result of inclusion +// of in under certain conditions. +// Rather than include here, we've duplicated +// the sigset_t type instead. This type is required for the XPG6 +// introduced pselect() function also declared in this header. +type Sigset_t = struct{ F__sigbits [4]uint32 } /* select.h:76:3 */ + +// Select uses bit masks of file descriptors in longs. +// These macros manipulate such bit fields. +// FD_SETSIZE may be defined by the user, but the default here +// should be >= RLIM_FD_MAX. + +type Fd_mask = int64 /* select.h:92:14 */ +type Fds_mask = int64 /* select.h:94:14 */ + +// The value of _NBBY needs to be consistant with the value +// of NBBY in . + +type Fd_set1 = struct{ Ffds_bits [1024]int64 } /* select.h:120:9 */ + +// The value of _NBBY needs to be consistant with the value +// of NBBY in . + +type Fd_set = Fd_set1 /* select.h:125:3 */ + +// _VOID was defined to be either void or char but this is not +// required because previous SunOS compilers have accepted the void +// type. However, because many system header and source files use the +// void keyword, the volatile keyword, and ANSI C function prototypes, +// non-ANSI compilers cannot compile the system anyway. The _VOID macro +// should therefore not be used and remains for source compatibility +// only. +// CSTYLED + +// Operations on timevals. + +// Names of the interval timers, and structure +// defining a timer setting. +// time and when system is running on +// behalf of the process. +// time profiling of multithreaded +// programs. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec int64 + Ftv_usec int64 + } + Fit_value struct { + Ftv_sec int64 + Ftv_usec int64 + } +} /* time.h:209:1 */ + +// Definitions for commonly used resolutions. + +// Time expressed as a 64-bit nanosecond counter. +type Hrtime_t = int64 /* time.h:265:20 */ + +// The inclusion of is historical and was added for +// backward compatibility in delta 1.2 when a number of definitions +// were moved out of . More recently, the timespec and +// itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*, +// _TIMER_*, and TIMER_* symbols were moved to , +// which is now included by . This change was due to POSIX +// 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and +// non-X/Open applications, including this header will still make +// visible these definitions. +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2007 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2010 Nexenta Systems, Inc. Al rights reserved. +// Copyright 2016 Joyent, Inc. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// Copyright 2014 Garrett D'Amore +// Copyright 2014 PALO, Richard. +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// An application should not include this header directly. Instead it +// should be included only through the inclusion of other Sun headers. +// +// The contents of this header is limited to identifiers specified in the +// C Standard. Any new identifiers specified in future amendments to the +// C Standard must be placed in this header. If these new identifiers +// are required to also be in the C++ Standard "std" namespace, then for +// anything other than macro definitions, corresponding "using" directives +// must also be added to . + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// This file and its contents are supplied under the terms of the +// Common Development and Distribution License ("CDDL"), version 1.0. +// You may only use this file in accordance with the terms of version +// 1.0 of the CDDL. +// +// A full copy of the text of the CDDL should have accompanied this +// source. A copy of the CDDL is also available via the Internet at +// http://www.illumos.org/license/CDDL. + +// Copyright 2014-2016 PALO, Richard. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// POSIX.1-2008 requires that the NULL macro be cast to type void *. + +type Tm = struct { + Ftm_sec int32 + Ftm_min int32 + Ftm_hour int32 + Ftm_mday int32 + Ftm_mon int32 + Ftm_year int32 + Ftm_wday int32 + Ftm_yday int32 + Ftm_isdst int32 +} /* time_iso.h:80:1 */ + +// Neither X/Open nor POSIX allow the inclusion of for the +// definition of the sigevent structure. Both require the inclusion +// of and when using the timer_create() function. +// However, X/Open also specifies that the sigevent structure be defined +// in as described in the header . This prevents +// compiler warnings for applications that only include and not +// also . The sigval union and the sigevent structure is +// therefore defined both here and in which gets included +// via inclusion of . +type Sigval = struct { + F__ccgo_pad1 [0]uint64 + Fsival_int int32 + F__ccgo_pad2 [4]byte +} /* time.h:125:1 */ + +type Sigevent = struct { + Fsigev_notify int32 + Fsigev_signo int32 + Fsigev_value struct { + F__ccgo_pad1 [0]uint64 + Fsival_int int32 + F__ccgo_pad2 [4]byte + } + Fsigev_notify_function uintptr + Fsigev_notify_attributes uintptr + F__sigev_pad2 int32 + F__ccgo_pad1 [4]byte +} /* time.h:133:1 */ + +type Locale_t = uintptr /* time.h:292:24 */ + +// The inclusion of is needed for the FD_CLR, +// FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the +// select() prototype defined in the XOpen specifications +// beginning with XSH4v2. Placement required after definition +// for itimerval. +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2014 Garrett D'Amore +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// +// Copyright 2010 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// University Copyright- Copyright (c) 1982, 1986, 1988 +// The Regents of the University of California +// All Rights Reserved +// +// University Acknowledgment- Portions of this document are derived from +// software developed by the University of California, Berkeley, and its +// contributors. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright 2009 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2013 Nexenta Systems, Inc. All rights reserved. +// Copyright 2016 Joyent, Inc. +// Copyright 2021 Oxide Computer Company + +// _POSIX_VDISABLE has been defined in since the +// introduction of the header. The POSIX standard, IEEE Std. +// 1003.1-1988 also required the existence of _POSIX_VDISABLE in +// this header. Subsequent versions of the IEEE Standard as well +// as the X/Open specifications required that _POSIX_VDISABLE be +// defined in while still allowing for it's existence +// here. With the introduction of XPG6, _POSIX_VDISABLE can only +// be defined in . + +// required by termio.h and VCEOF/VCEOL + +// some defines required by POSIX + +// types defined by POSIX. These are better off in types.h, but +// the standard says that they have to be in termios.h. +type Tcflag_t = uint32 /* termios.h:81:22 */ +type Cc_t = uint8 /* termios.h:82:23 */ +type Speed_t = uint32 /* termios.h:83:22 */ + +// Ioctl control packet +type Termios = struct { + Fc_iflag uint32 + Fc_oflag uint32 + Fc_cflag uint32 + Fc_lflag uint32 + Fc_cc [19]uint8 + F__ccgo_pad1 [1]byte +} /* termios.h:88:1 */ + +// control characters +// 18 through 19 reserved for future use + +// control characters form Xenix termio.h + +// S5 default control chars +// CINTR, CERASE and CKILL modified to SunOS traditional values + +// input modes + +// output modes + +// control modes + +// 4.4BSD hardware flow control flags + +// line discipline 0 modes + +// Slots reserved for 386/XENIX compatibility - keyboard control + +// Softcarrier ioctls + +// termios ioctls + +// linux terminal ioctls we need to be aware of + +// The VMIN and VTIME and solaris overlap with VEOF and VEOL - This is +// perfectly legal except, linux expects them to be separate. So we keep +// them separately. +type Lx_cc = struct { + Fveof uint8 + Fveol uint8 + Fvmin uint8 + Fvtime uint8 +} /* termios.h:376:1 */ + +// NTP PPS ioctls + +// Argument filled in by TIOCGPPSEV +type Ppsclockev = struct { + Ftv struct { + Ftv_sec int64 + Ftv_usec int64 + } + Fserial uint32 + F__ccgo_pad1 [4]byte +} /* termios.h:391:1 */ + +// termios option flags + +// TIOC ioctls for BSD, ptys, job control and modem control + +// Slots for 386/XENIX compatibility +// BSD includes these ioctls in ttold.h + +// BSD ioctls that are not the same as XENIX are included here. +// There are also some relevant ioctls from SUN/BSD sys/ttycom.h +// BSD pty ioctls like TIOCPKT are not supported in SVR4. + +// POSIX job control ioctls + +// Miscellaneous + +// Modem control + +// pseudo-tty + +// Some more 386 xenix stuff + +// Slots for 386 compatibility + +// These are retained for 386/XENIX compatibility. + +// Returns a non-zero value if there +// are characters in the input queue. +// +// XXX - somebody is confused here. V7 had no such "ioctl", although XENIX may +// have added it; 4BSD had FIONREAD, which returned the number of characters +// waiting, and was supposed to work on all descriptors (i.e., every driver +// should make a stab at implementing it). + +// Speeds + +// Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ +type Winsize = struct { + Fws_row uint16 + Fws_col uint16 + Fws_xpixel uint16 + Fws_ypixel uint16 +} /* termios.h:580:1 */ + +var _ int8 /* gen.c:2:13: */ -- cgit 1.4.1