diff options
author | Emile <git@emile.space> | 2024-08-16 19:50:26 +0200 |
---|---|---|
committer | Emile <git@emile.space> | 2024-08-16 19:50:26 +0200 |
commit | 1a57267a17c2fc17fb6e104846fabc3e363c326c (patch) | |
tree | 1e574e3a80622086dc3c81ff9cba65ef7049b1a9 /vendor/modernc.org/libc/grp/grp_illumos_amd64.go |
initial commit
Diffstat (limited to 'vendor/modernc.org/libc/grp/grp_illumos_amd64.go')
-rw-r--r-- | vendor/modernc.org/libc/grp/grp_illumos_amd64.go | 3181 |
1 files changed, 3181 insertions, 0 deletions
diff --git a/vendor/modernc.org/libc/grp/grp_illumos_amd64.go b/vendor/modernc.org/libc/grp/grp_illumos_amd64.go new file mode 100644 index 0000000..54fb890 --- /dev/null +++ b/vendor/modernc.org/libc/grp/grp_illumos_amd64.go @@ -0,0 +1,3181 @@ +// Code generated by 'ccgo grp/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 grp/grp_illumos_amd64.go -pkgname grp', DO NOT EDIT. + +package grp + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BUFSIZ = 1024 // stdio_iso.h:124: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: + 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: + EOF = -1 // stdio_iso.h:152:1: + FD_SETSIZE = 65536 // select.h:88:1: + FILENAME_MAX = 1024 // stdio_iso.h:156:1: + FOPEN_MAX = 20 // stdio_iso.h:155: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: + L_ctermid = 9 // stdio.h:207:1: + L_cuserid = 9 // stdio.h:211:1: + L_tmpnam = 25 // stdio_iso.h:163: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: + P_MYID = -1 // types.h:632:1: + P_tmpdir = "/var/tmp/" // stdio.h:220: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: + SEC = 1 // time.h:244:1: + SEEK_CUR = 1 // stdio_iso.h:159:1: + SEEK_END = 2 // stdio_iso.h:160:1: + SEEK_SET = 0 // stdio_iso.h:158:1: + TIMER_ABSTIME = 0x1 // time_impl.h:134:1: + TIMER_RELTIME = 0x0 // time_impl.h:133:1: + TIME_UTC = 0x1 // time.h:306:1: + TMP_MAX = 17576 // stdio_iso.h:161: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_FILEDEFED = 0 // stdio_iso.h:101:1: + X_FILE_OFFSET_BITS = 64 // <builtin>: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_GRP_H = 0 // grp.h:36: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_IOEOF = 0020 // stdio_iso.h:143:1: + X_IOERR = 0040 // stdio_iso.h:144:1: + X_IOFBF = 0000 // stdio_iso.h:140:1: + X_IOLBF = 0100 // stdio_iso.h:141:1: + X_IOMYBUF = 0010 // stdio_iso.h:149:1: + X_IONBF = 0004 // stdio_iso.h:142:1: + X_IOREAD = 0001 // stdio_iso.h:146:1: + X_IORW = 0200 // stdio_iso.h:148:1: + X_IOWRT = 0002 // stdio_iso.h:147: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_STDIO_C99_H = 0 // stdio_c99.h:41:1: + X_ISO_STDIO_ISO_H = 0 // stdio_iso.h:59: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 // <predefined>: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_NFILE = 20 // stdio_iso.h:135: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_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_SBFSIZ = 8 // stdio_iso.h:138: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_STDIO_H = 0 // stdio.h:44:1: + X_STDIO_IMPL_H = 0 // stdio_impl.h:28:1: + X_STDIO_TAG_H = 0 // stdio_tag.h:28:1: + X_SUNOS_VTOC_16 = 0 // isa_defs.h:280:1: + X_SUSECONDS_T = 0 // types.h:343: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_TIME_H = 0 // time.h:27:1: + X_SYS_TIME_IMPL_H = 0 // time_impl.h:38:1: + X_SYS_TYPES_H = 0 // types.h:35:1: + X_SYS_VA_LIST_H = 0 // va_list.h:34:1: + X_TIMER_T = 0 // types.h:573:1: + X_TIME_H = 0 // time.h:37:1: + X_TIME_T = 0 // types.h:558:1: + X_UID_T = 0 // types.h:400:1: + X_XOPEN_VERSION = 3 // feature_tests.h:392:1: + Sun = 1 // <predefined>:172:1: + Unix = 1 // <predefined>: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 /* <builtin>:3:26 */ + +type Size_t = uint64 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__int128_t = struct { + Flo int64 + Fhi int64 +} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 +type X__uint128_t = struct { + Flo uint64 + Fhi uint64 +} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>: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 + +// Copyright 2014 Garrett D'Amore <garrett@damore.org> +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2020 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 <garrett@damore.org> +// 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=<standard> 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 <unistd.h>.) +// +// 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 (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 <garrett@damore.org> +// 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 <sys/machtypes.h>. +// 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 */ + +// 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 <garrett@damore.org> +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// +// Copyright 2020 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 <garrett@damore.org> +// 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=<standard> 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 <unistd.h>.) +// +// 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 (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 <garrett@damore.org> +// 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 <sys/machtypes.h>. +// 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 <garrett@damore.org> +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// This file, <sys/int_types.h>, is part of the Sun Microsystems implementation +// of <inttypes.h> 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: +// +// <sys/types.h> Provides only the "_t" types defined in this +// file which is a subset of the contents of +// <inttypes.h>. (This can be appropriate for +// all programs/modules except those claiming +// ANSI-C conformance.) +// +// <sys/inttypes.h> Provides the Kernel and Driver appropriate +// components of <inttypes.h>. +// +// <inttypes.h> 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 <garrett@damore.org> +// 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 */ // ?<core address> type +type Daddr_t = int64 /* types.h:108:15 */ // <disk address> 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 <sys/isa_defs.h> +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 + +type Suseconds_t = int64 /* types.h:344:14 */ // signed # of 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 Time_t = int64 /* types.h:559:15 */ // time of day in seconds + +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 <garrett@damore.org> +// +// 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 <garrett@damore.org> +// 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 <time.h> which includes this header conditionally +// depending on which feature test macros are defined. By default, +// this header is included by <time.h>. X/Open and POSIX +// standards requirements result in this header being included +// by <time.h> 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 <garrett@damore.org> +// 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 <garrett@damore.org> +// +// 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 <garrett@damore.org> +// 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 <time.h> which includes this header conditionally +// depending on which feature test macros are defined. By default, +// this header is included by <time.h>. X/Open and POSIX +// standards requirements result in this header being included +// by <time.h> 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 <garrett@damore.org> +// 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 <garrett@damore.org> +// +// 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 <garrett@damore.org> +// 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 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 <sys/types.h> +// including <sys/select.h> 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 + +// 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 <time.h> is historical and was added for +// backward compatibility in delta 1.2 when a number of definitions +// were moved out of <sys/time.h>. More recently, the timespec and +// itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*, +// _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>, +// which is now included by <time.h>. 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 <garrett@damore.org> +// +// 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 <garrett@damore.org> +// 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 <garrett@damore.org> +// 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 <time.h.h>. + +// 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 <garrett@damore.org> +// 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 <garrett@damore.org> +// 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 <signal.h> for the +// definition of the sigevent structure. Both require the inclusion +// of <signal.h> and <time.h> when using the timer_create() function. +// However, X/Open also specifies that the sigevent structure be defined +// in <time.h> as described in the header <signal.h>. This prevents +// compiler warnings for applications that only include <time.h> and not +// also <signal.h>. The sigval union and the sigevent structure is +// therefore defined both here and in <sys/siginfo.h> which gets included +// via inclusion of <signal.h>. +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 <sys/select.h> 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 <garrett@damore.org> +// +// 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. + +// The sigset_t type is defined in <sys/signal.h> and duplicated +// in <sys/ucontext.h> 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 <sys/select.h> in <signal.h> under certain conditions. +// Rather than include <sys/signal.h> 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 <sys/param.h>. + +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 <sys/param.h>. + +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 + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/stdio.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 2014 Garrett D'Amore <garrett@damore.org> +// Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. + +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// User-visible pieces of the ANSI C standard I/O package. + +// 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 <garrett@damore.org> +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Do all of our 'redefine_extname' processing before +// declarations of the associated functions are seen. +// This is necessary to keep gcc happy. + +// large file compilation environment setup + +// In the LP64 compilation environment, all APIs are already large file + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/iso/stdio_iso.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, 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 <garrett@damore.org> +// Copyright 2014 PALO, Richard. +// +// Copyright 2005 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// 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 <stdio.h>. + +// User-visible pieces of the ANSI C standard I/O package. + +// 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 <garrett@damore.org> +// 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. + +// 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 + +// Copyright 2014 Garrett D'Amore <garrett@damore.org> +// +// 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 purpose of this header is to provide the type definitions for +// the va_list argument used by a number of printf and printf like +// functions. The headers that define these various function prototypes +// #include this header directly. These include but are not necessarily +// limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and +// <syslog.h>. The type definitions included in this header are for +// the benefit of consumers of va_list. +// +// Any application that accepts variable argument lists must as documented, +// include either <varargs.h> or the preferred <stdarg.h>. Doing so will +// pull in the appropriate compiler protocols defined in <sys/va_impl.h> +// which is in turn is included by <varargs.h> and <stdarg.h>. See comments +// in <sys/va_impl.h> for more detailed information regarding implementation +// and compiler specific protocols. + +// The common definitions exported by this header or compilers using +// this header are: +// +// the identifier __builtin_va_alist for the variable list pseudo parameter +// the type __va_alist_type for the variable list pseudo parameter +// the type __va_list defining the type of the variable list iterator +// +// The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros +// (__GNUC__) and processor macros (e.g. __amd64) are intended to be +// defined by the compilation system, not the user of the system. + +// 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. + +type X__gnuc_va_list = uintptr /* va_list.h:108:27 */ +// XX64 This seems unnecessary .. but is needed because vcmn_err is +// +// defined with __va_list instead of plain old va_list. +// Perhaps that should be fixed! +type X__va_list = uintptr /* va_list.h:114:27 */ + +// 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. + +type X__FILE1 = struct{ F__pad [16]int64 } /* stdio_tag.h:40:9 */ + +// 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. + +type X__FILE = X__FILE1 /* stdio_tag.h:40:27 */ + +// If feature test macros are set that enable interfaces that use types +// defined in <sys/types.h>, get those types by doing the include. +// +// Note that in asking for the interfaces associated with this feature test +// macro one also asks for definitions of the POSIX types. + +type FILE = X__FILE /* stdio_iso.h:102:16 */ + +type Fpos_t = int64 /* stdio_iso.h:115:15 */ + +type Fpos64_t = int64 /* stdio.h:188:17 */ + +type Group = struct { + Fgr_name uintptr + Fgr_passwd uintptr + Fgr_gid uint32 + F__ccgo_pad1 [4]byte + Fgr_mem uintptr +} /* grp.h:50:1 */ + +var _ int8 /* gen.c:2:13: */ |