diff options
Diffstat (limited to 'vendor/modernc.org/libc')
260 files changed, 69177 insertions, 8720 deletions
diff --git a/vendor/modernc.org/libc/Makefile b/vendor/modernc.org/libc/Makefile index 293184176..c4727abf7 100644 --- a/vendor/modernc.org/libc/Makefile +++ b/vendor/modernc.org/libc/Makefile @@ -25,6 +25,7 @@ all: go test 2>&1 -timeout 1h | tee -a $(log) GOOS=darwin GOARCH=amd64 go build GOOS=darwin GOARCH=arm64 go build + GOOS=freebsd GOARCH=386 go build GOOS=freebsd GOARCH=amd64 go build GOOS=linux GOARCH=386 go build GOOS=linux GOARCH=amd64 go build @@ -32,6 +33,7 @@ all: GOOS=linux GOARCH=arm64 go build GOOS=linux GOARCH=s390x go build GOOS=netbsd GOARCH=amd64 go build + GOOS=openbsd GOARCH=amd64 go build GOOS=windows GOARCH=386 go build GOOS=windows GOARCH=amd64 go build go vet -unsafeptr=false 2>&1 | grep -v $(ngrep) || true @@ -60,6 +62,12 @@ freebsd_amd64: go generate 2>&1 | tee log-generate go build -v ./... +# only on freebsd/386 +freebsd_386: + @echo "Should be executed only on freebsd/386." + go generate 2>&1 | tee log-generate + go build -v ./... + # only on netbsd/amd64 netbsd_amd64: @echo "Should be executed only on netbsd/amd64." @@ -87,6 +95,12 @@ linux_s390x: CCGO_CPP=s390x-linux-gnu-cpp TARGET_GOOS=linux TARGET_GOARCH=s390x go generate GOOS=linux GOARCH=s390x go build -v ./... +# only on openbsd/amd64 +openbsd_amd64: + @echo "Should be executed only on openbsd/amd64." + go generate 2>&1 | tee log-generate + go build -v ./... + windows_amd64: @echo "Should be executed only on windows/amd64." go generate 2>&1 | tee log-generate @@ -105,6 +119,8 @@ build_all_targets: GOOS=darwin GOARCH=amd64 go test -c -o /dev/null GOOS=darwin GOARCH=arm64 go build -v ./... GOOS=darwin GOARCH=arm64 go test -c -o /dev/null + GOOS=freebsd GOARCH=386 go build -v ./... + GOOS=freebsd GOARCH=386 go test -c -o /dev/null GOOS=freebsd GOARCH=amd64 go build -v ./... GOOS=freebsd GOARCH=amd64 go test -c -o /dev/null GOOS=linux GOARCH=386 go build -v ./... @@ -119,6 +135,8 @@ build_all_targets: GOOS=linux GOARCH=s390x go test -c -o /dev/null GOOS=netbsd GOARCH=amd64 go build -v ./... GOOS=netbsd GOARCH=amd64 go test -c -o /dev/null + GOOS=openbsd GOARCH=amd64 go build -v ./... + GOOS=openbsd GOARCH=amd64 go test -c -o /dev/null GOOS=windows GOARCH=386 go build -v ./... GOOS=windows GOARCH=386 go test -c -o /dev/null GOOS=windows GOARCH=amd64 go build -v ./... diff --git a/vendor/modernc.org/libc/capi_darwin_amd64.go b/vendor/modernc.org/libc/capi_darwin_amd64.go index 08883e324..1a46043cf 100644 --- a/vendor/modernc.org/libc/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/capi_darwin_amd64.go @@ -3,6 +3,8 @@ package libc // import "modernc.org/libc" var CAPI = map[string]struct{}{ + "_CurrentRuneLocale": {}, + "_DefaultRuneLocale": {}, "_IO_putc": {}, "_NSGetEnviron": {}, "___errno_location": {}, @@ -36,6 +38,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -44,6 +48,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -77,6 +82,7 @@ var CAPI = map[string]struct{}{ "__ccgo_sqlite3_log": {}, "__cmsg_nxthdr": {}, "__ctype_get_mb_cur_max": {}, + "__darwin_check_fd_set_overflow": {}, "__darwin_fd_clr": {}, "__darwin_fd_isset": {}, "__darwin_fd_set": {}, @@ -93,33 +99,37 @@ var CAPI = map[string]struct{}{ "__inline_isnanf": {}, "__inline_isnanl": {}, "__intscan": {}, - "__isalnum_l": {}, - "__isalpha_l": {}, - "__isdigit_l": {}, - "__islower_l": {}, + "__isctype": {}, "__isnan": {}, "__isnanf": {}, "__isnanl": {}, "__isoc99_sscanf": {}, - "__isprint_l": {}, - "__isupper_l": {}, - "__isxdigit_l": {}, + "__istype": {}, "__lookup_ipliteral": {}, "__lookup_name": {}, "__lookup_serv": {}, + "__maskrune": {}, "__mb_cur_max": {}, "__putenv": {}, "__shgetc": {}, "__shlim": {}, + "__sincos_stret": {}, + "__sincosf_stret": {}, + "__sincospi_stret": {}, + "__sincospif_stret": {}, "__stderrp": {}, "__stdinp": {}, "__stdoutp": {}, "__strchrnul": {}, + "__strncasecmp_l": {}, "__sync_add_and_fetch_uint32": {}, "__sync_sub_and_fetch_uint32": {}, + "__tolower": {}, "__toread": {}, "__toread_needs_stdio_exit": {}, + "__toupper": {}, "__uflow": {}, + "__wcwidth": {}, "_exit": {}, "_longjmp": {}, "_obstack_begin": {}, @@ -143,6 +153,7 @@ var CAPI = map[string]struct{}{ "atoi": {}, "atol": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -167,11 +178,15 @@ var CAPI = map[string]struct{}{ "cos": {}, "cosf": {}, "cosh": {}, + "ctime": {}, + "ctime_r": {}, + "digittoint": {}, "dlclose": {}, "dlerror": {}, "dlopen": {}, "dlsym": {}, "dup2": {}, + "endpwent": {}, "environ": {}, "exit": {}, "exp": {}, @@ -227,7 +242,9 @@ var CAPI = map[string]struct{}{ "geteuid": {}, "getgid": {}, "getgrgid": {}, + "getgrgid_r": {}, "getgrnam": {}, + "getgrnam_r": {}, "gethostbyaddr": {}, "gethostbyaddr_r": {}, "gethostbyname": {}, @@ -238,6 +255,7 @@ var CAPI = map[string]struct{}{ "getnameinfo": {}, "getpeername": {}, "getpid": {}, + "getprogname": {}, "getpwnam": {}, "getpwnam_r": {}, "getpwuid": {}, @@ -258,19 +276,31 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, "ioctl": {}, "isalnum": {}, "isalpha": {}, "isascii": {}, "isatty": {}, + "isblank": {}, + "iscntrl": {}, "isdigit": {}, + "isgraph": {}, + "ishexnumber": {}, + "isideogram": {}, "islower": {}, "isnan": {}, "isnanf": {}, "isnanl": {}, + "isnumber": {}, + "isphonogram": {}, "isprint": {}, + "ispunct": {}, + "isrune": {}, "issetugid": {}, "isspace": {}, + "isspecial": {}, "isupper": {}, "iswalnum": {}, "iswspace": {}, @@ -279,6 +309,7 @@ var CAPI = map[string]struct{}{ "ldexp": {}, "link": {}, "listen": {}, + "localeconv": {}, "localtime": {}, "localtime_r": {}, "log": {}, @@ -303,7 +334,9 @@ var CAPI = map[string]struct{}{ "mkdir": {}, "mkfifo": {}, "mknod": {}, + "mkostemp": {}, "mkstemp": {}, + "mkstemp64": {}, "mkstemps": {}, "mkstemps64": {}, "mktime": {}, @@ -370,6 +403,7 @@ var CAPI = map[string]struct{}{ "rand": {}, "rand_r": {}, "random": {}, + "random_r": {}, "read": {}, "readdir": {}, "readlink": {}, @@ -401,6 +435,7 @@ var CAPI = map[string]struct{}{ "setlocale": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, @@ -433,9 +468,11 @@ var CAPI = map[string]struct{}{ "strcspn": {}, "strdup": {}, "strerror": {}, + "strerror_r": {}, "strlcat": {}, "strlcpy": {}, "strlen": {}, + "strncasecmp": {}, "strncat": {}, "strncmp": {}, "strncpy": {}, @@ -464,6 +501,7 @@ var CAPI = map[string]struct{}{ "tcsetattr": {}, "time": {}, "tmpfile": {}, + "toascii": {}, "tolower": {}, "toupper": {}, "trunc": {}, @@ -477,6 +515,10 @@ var CAPI = map[string]struct{}{ "usleep": {}, "utime": {}, "utimes": {}, + "uuid_copy": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, "vasprintf": {}, "vfprintf": {}, "vprintf": {}, diff --git a/vendor/modernc.org/libc/capi_darwin_arm64.go b/vendor/modernc.org/libc/capi_darwin_arm64.go index 935c61b44..1a46043cf 100644 --- a/vendor/modernc.org/libc/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/capi_darwin_arm64.go @@ -3,6 +3,8 @@ package libc // import "modernc.org/libc" var CAPI = map[string]struct{}{ + "_CurrentRuneLocale": {}, + "_DefaultRuneLocale": {}, "_IO_putc": {}, "_NSGetEnviron": {}, "___errno_location": {}, @@ -36,6 +38,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -44,6 +48,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -77,6 +82,7 @@ var CAPI = map[string]struct{}{ "__ccgo_sqlite3_log": {}, "__cmsg_nxthdr": {}, "__ctype_get_mb_cur_max": {}, + "__darwin_check_fd_set_overflow": {}, "__darwin_fd_clr": {}, "__darwin_fd_isset": {}, "__darwin_fd_set": {}, @@ -93,33 +99,37 @@ var CAPI = map[string]struct{}{ "__inline_isnanf": {}, "__inline_isnanl": {}, "__intscan": {}, - "__isalnum_l": {}, - "__isalpha_l": {}, - "__isdigit_l": {}, - "__islower_l": {}, + "__isctype": {}, "__isnan": {}, "__isnanf": {}, "__isnanl": {}, "__isoc99_sscanf": {}, - "__isprint_l": {}, - "__isupper_l": {}, - "__isxdigit_l": {}, + "__istype": {}, "__lookup_ipliteral": {}, "__lookup_name": {}, "__lookup_serv": {}, + "__maskrune": {}, "__mb_cur_max": {}, "__putenv": {}, "__shgetc": {}, "__shlim": {}, + "__sincos_stret": {}, + "__sincosf_stret": {}, + "__sincospi_stret": {}, + "__sincospif_stret": {}, "__stderrp": {}, "__stdinp": {}, "__stdoutp": {}, "__strchrnul": {}, + "__strncasecmp_l": {}, "__sync_add_and_fetch_uint32": {}, "__sync_sub_and_fetch_uint32": {}, + "__tolower": {}, "__toread": {}, "__toread_needs_stdio_exit": {}, + "__toupper": {}, "__uflow": {}, + "__wcwidth": {}, "_exit": {}, "_longjmp": {}, "_obstack_begin": {}, @@ -143,6 +153,7 @@ var CAPI = map[string]struct{}{ "atoi": {}, "atol": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -167,11 +178,15 @@ var CAPI = map[string]struct{}{ "cos": {}, "cosf": {}, "cosh": {}, + "ctime": {}, + "ctime_r": {}, + "digittoint": {}, "dlclose": {}, "dlerror": {}, "dlopen": {}, "dlsym": {}, "dup2": {}, + "endpwent": {}, "environ": {}, "exit": {}, "exp": {}, @@ -240,6 +255,7 @@ var CAPI = map[string]struct{}{ "getnameinfo": {}, "getpeername": {}, "getpid": {}, + "getprogname": {}, "getpwnam": {}, "getpwnam_r": {}, "getpwuid": {}, @@ -260,19 +276,31 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, "ioctl": {}, "isalnum": {}, "isalpha": {}, "isascii": {}, "isatty": {}, + "isblank": {}, + "iscntrl": {}, "isdigit": {}, + "isgraph": {}, + "ishexnumber": {}, + "isideogram": {}, "islower": {}, "isnan": {}, "isnanf": {}, "isnanl": {}, + "isnumber": {}, + "isphonogram": {}, "isprint": {}, + "ispunct": {}, + "isrune": {}, "issetugid": {}, "isspace": {}, + "isspecial": {}, "isupper": {}, "iswalnum": {}, "iswspace": {}, @@ -281,6 +309,7 @@ var CAPI = map[string]struct{}{ "ldexp": {}, "link": {}, "listen": {}, + "localeconv": {}, "localtime": {}, "localtime_r": {}, "log": {}, @@ -305,7 +334,9 @@ var CAPI = map[string]struct{}{ "mkdir": {}, "mkfifo": {}, "mknod": {}, + "mkostemp": {}, "mkstemp": {}, + "mkstemp64": {}, "mkstemps": {}, "mkstemps64": {}, "mktime": {}, @@ -372,6 +403,7 @@ var CAPI = map[string]struct{}{ "rand": {}, "rand_r": {}, "random": {}, + "random_r": {}, "read": {}, "readdir": {}, "readlink": {}, @@ -403,6 +435,7 @@ var CAPI = map[string]struct{}{ "setlocale": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, @@ -435,9 +468,11 @@ var CAPI = map[string]struct{}{ "strcspn": {}, "strdup": {}, "strerror": {}, + "strerror_r": {}, "strlcat": {}, "strlcpy": {}, "strlen": {}, + "strncasecmp": {}, "strncat": {}, "strncmp": {}, "strncpy": {}, @@ -466,6 +501,7 @@ var CAPI = map[string]struct{}{ "tcsetattr": {}, "time": {}, "tmpfile": {}, + "toascii": {}, "tolower": {}, "toupper": {}, "trunc": {}, @@ -479,6 +515,10 @@ var CAPI = map[string]struct{}{ "usleep": {}, "utime": {}, "utimes": {}, + "uuid_copy": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, "vasprintf": {}, "vfprintf": {}, "vprintf": {}, diff --git a/vendor/modernc.org/libc/capi_freebsd_386.go b/vendor/modernc.org/libc/capi_freebsd_386.go new file mode 100644 index 000000000..8ee74e0fe --- /dev/null +++ b/vendor/modernc.org/libc/capi_freebsd_386.go @@ -0,0 +1,486 @@ +// Code generated by 'go generate' - DO NOT EDIT. + +package libc // import "modernc.org/libc" + +var CAPI = map[string]struct{}{ + "_CurrentRuneLocale": {}, + "_DefaultRuneLocale": {}, + "_IO_putc": {}, + "_ThreadRuneLocale": {}, + "___errno_location": {}, + "___runetype": {}, + "__assert": {}, + "__assert_fail": {}, + "__builtin___memcpy_chk": {}, + "__builtin___memmove_chk": {}, + "__builtin___memset_chk": {}, + "__builtin___snprintf_chk": {}, + "__builtin___sprintf_chk": {}, + "__builtin___strcat_chk": {}, + "__builtin___strcpy_chk": {}, + "__builtin___strncpy_chk": {}, + "__builtin___vsnprintf_chk": {}, + "__builtin_abort": {}, + "__builtin_abs": {}, + "__builtin_add_overflowInt64": {}, + "__builtin_add_overflowUint32": {}, + "__builtin_add_overflowUint64": {}, + "__builtin_bswap16": {}, + "__builtin_bswap32": {}, + "__builtin_bswap64": {}, + "__builtin_bzero": {}, + "__builtin_clz": {}, + "__builtin_clzl": {}, + "__builtin_clzll": {}, + "__builtin_constant_p_impl": {}, + "__builtin_copysign": {}, + "__builtin_copysignf": {}, + "__builtin_copysignl": {}, + "__builtin_exit": {}, + "__builtin_expect": {}, + "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, + "__builtin_free": {}, + "__builtin_getentropy": {}, + "__builtin_huge_val": {}, + "__builtin_huge_valf": {}, + "__builtin_inf": {}, + "__builtin_inff": {}, + "__builtin_infl": {}, + "__builtin_isnan": {}, + "__builtin_isunordered": {}, + "__builtin_malloc": {}, + "__builtin_memcmp": {}, + "__builtin_memcpy": {}, + "__builtin_memset": {}, + "__builtin_mmap": {}, + "__builtin_mul_overflowInt64": {}, + "__builtin_mul_overflowUint128": {}, + "__builtin_mul_overflowUint64": {}, + "__builtin_nan": {}, + "__builtin_nanf": {}, + "__builtin_nanl": {}, + "__builtin_object_size": {}, + "__builtin_popcount": {}, + "__builtin_popcountl": {}, + "__builtin_prefetch": {}, + "__builtin_printf": {}, + "__builtin_snprintf": {}, + "__builtin_sprintf": {}, + "__builtin_strchr": {}, + "__builtin_strcmp": {}, + "__builtin_strcpy": {}, + "__builtin_strlen": {}, + "__builtin_sub_overflowInt64": {}, + "__builtin_trap": {}, + "__builtin_unreachable": {}, + "__ccgo_dmesg": {}, + "__ccgo_getMutexType": {}, + "__ccgo_in6addr_anyp": {}, + "__ccgo_pthreadAttrGetDetachState": {}, + "__ccgo_pthreadMutexattrGettype": {}, + "__ccgo_sqlite3_log": {}, + "__cmsg_nxthdr": {}, + "__ctype_get_mb_cur_max": {}, + "__errno_location": {}, + "__error": {}, + "__floatscan": {}, + "__h_errno_location": {}, + "__inet_aton": {}, + "__inet_ntoa": {}, + "__intscan": {}, + "__isalnum_l": {}, + "__isalpha_l": {}, + "__isdigit_l": {}, + "__isnan": {}, + "__isnanf": {}, + "__isnanl": {}, + "__isoc99_sscanf": {}, + "__isthreaded": {}, + "__lookup_ipliteral": {}, + "__lookup_name": {}, + "__lookup_serv": {}, + "__mb_sb_limit": {}, + "__runes_for_locale": {}, + "__shgetc": {}, + "__shlim": {}, + "__srget": {}, + "__stderrp": {}, + "__stdinp": {}, + "__stdoutp": {}, + "__swbuf": {}, + "__sync_add_and_fetch_uint32": {}, + "__sync_sub_and_fetch_uint32": {}, + "__syscall1": {}, + "__syscall3": {}, + "__syscall4": {}, + "__toread": {}, + "__toread_needs_stdio_exit": {}, + "__uflow": {}, + "__xuname": {}, + "_exit": {}, + "_longjmp": {}, + "_obstack_begin": {}, + "_obstack_newchunk": {}, + "_setjmp": {}, + "abort": {}, + "abs": {}, + "accept": {}, + "access": {}, + "acos": {}, + "acosh": {}, + "alarm": {}, + "asin": {}, + "asinh": {}, + "atan": {}, + "atan2": {}, + "atanh": {}, + "atexit": {}, + "atof": {}, + "atoi": {}, + "atol": {}, + "backtrace": {}, + "backtrace_symbols_fd": {}, + "bind": {}, + "bzero": {}, + "calloc": {}, + "ceil": {}, + "ceilf": {}, + "cfgetospeed": {}, + "cfsetispeed": {}, + "cfsetospeed": {}, + "chdir": {}, + "chflags": {}, + "chmod": {}, + "chown": {}, + "clock_gettime": {}, + "close": {}, + "closedir": {}, + "confstr": {}, + "connect": {}, + "copysign": {}, + "copysignf": {}, + "copysignl": {}, + "cos": {}, + "cosf": {}, + "cosh": {}, + "ctime": {}, + "ctime_r": {}, + "dlclose": {}, + "dlerror": {}, + "dlopen": {}, + "dlsym": {}, + "dup2": {}, + "endpwent": {}, + "environ": {}, + "execvp": {}, + "exit": {}, + "exp": {}, + "fabs": {}, + "fabsf": {}, + "fabsl": {}, + "fchmod": {}, + "fchown": {}, + "fclose": {}, + "fcntl": {}, + "fcntl64": {}, + "fdopen": {}, + "ferror": {}, + "fflush": {}, + "fgetc": {}, + "fgets": {}, + "fileno": {}, + "floor": {}, + "fmod": {}, + "fmodl": {}, + "fopen": {}, + "fopen64": {}, + "fork": {}, + "fprintf": {}, + "fputc": {}, + "fputs": {}, + "fread": {}, + "free": {}, + "freeaddrinfo": {}, + "frexp": {}, + "fscanf": {}, + "fseek": {}, + "fstat": {}, + "fstat64": {}, + "fsync": {}, + "ftell": {}, + "ftruncate": {}, + "fts64_close": {}, + "fts64_open": {}, + "fts64_read": {}, + "fts_close": {}, + "fts_open": {}, + "fts_read": {}, + "fwrite": {}, + "gai_strerror": {}, + "getaddrinfo": {}, + "getc": {}, + "getcwd": {}, + "getegid": {}, + "getentropy": {}, + "getenv": {}, + "geteuid": {}, + "getgid": {}, + "getgrgid": {}, + "getgrgid_r": {}, + "getgrnam": {}, + "getgrnam_r": {}, + "gethostbyaddr": {}, + "gethostbyaddr_r": {}, + "gethostbyname": {}, + "gethostbyname2": {}, + "gethostbyname2_r": {}, + "gethostname": {}, + "getnameinfo": {}, + "getpeername": {}, + "getpid": {}, + "getpwnam": {}, + "getpwnam_r": {}, + "getpwuid": {}, + "getpwuid_r": {}, + "getresgid": {}, + "getresuid": {}, + "getrlimit": {}, + "getrlimit64": {}, + "getrusage": {}, + "getservbyname": {}, + "getsockname": {}, + "getsockopt": {}, + "gettimeofday": {}, + "getuid": {}, + "gmtime_r": {}, + "h_errno": {}, + "htonl": {}, + "htons": {}, + "hypot": {}, + "inet_ntoa": {}, + "inet_ntop": {}, + "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, + "ioctl": {}, + "isalnum": {}, + "isalpha": {}, + "isascii": {}, + "isatty": {}, + "isdigit": {}, + "isnan": {}, + "isnanf": {}, + "isnanl": {}, + "kill": {}, + "ldexp": {}, + "link": {}, + "listen": {}, + "localtime": {}, + "localtime_r": {}, + "log": {}, + "log10": {}, + "longjmp": {}, + "lrand48": {}, + "lseek": {}, + "lseek64": {}, + "lstat": {}, + "lstat64": {}, + "malloc": {}, + "mblen": {}, + "mbstowcs": {}, + "mbtowc": {}, + "memchr": {}, + "memcmp": {}, + "memcpy": {}, + "memmove": {}, + "memset": {}, + "mkdir": {}, + "mkfifo": {}, + "mknod": {}, + "mkostemp": {}, + "mkstemp": {}, + "mkstemp64": {}, + "mkstemps": {}, + "mkstemps64": {}, + "mktime": {}, + "mmap": {}, + "modf": {}, + "munmap": {}, + "nl_langinfo": {}, + "ntohs": {}, + "obstack_free": {}, + "obstack_vprintf": {}, + "open": {}, + "open64": {}, + "opendir": {}, + "openpty": {}, + "pathconf": {}, + "pause": {}, + "pclose": {}, + "perror": {}, + "pipe": {}, + "poll": {}, + "popen": {}, + "pow": {}, + "printf": {}, + "pselect": {}, + "pthread_attr_destroy": {}, + "pthread_attr_getdetachstate": {}, + "pthread_attr_init": {}, + "pthread_attr_setdetachstate": {}, + "pthread_attr_setscope": {}, + "pthread_attr_setstacksize": {}, + "pthread_cond_broadcast": {}, + "pthread_cond_destroy": {}, + "pthread_cond_init": {}, + "pthread_cond_signal": {}, + "pthread_cond_timedwait": {}, + "pthread_cond_wait": {}, + "pthread_create": {}, + "pthread_detach": {}, + "pthread_equal": {}, + "pthread_exit": {}, + "pthread_getspecific": {}, + "pthread_join": {}, + "pthread_key_create": {}, + "pthread_key_delete": {}, + "pthread_mutex_destroy": {}, + "pthread_mutex_init": {}, + "pthread_mutex_lock": {}, + "pthread_mutex_trylock": {}, + "pthread_mutex_unlock": {}, + "pthread_mutexattr_destroy": {}, + "pthread_mutexattr_init": {}, + "pthread_mutexattr_settype": {}, + "pthread_self": {}, + "pthread_setspecific": {}, + "putc": {}, + "putchar": {}, + "puts": {}, + "qsort": {}, + "raise": {}, + "rand": {}, + "random": {}, + "random_r": {}, + "read": {}, + "readdir": {}, + "readdir64": {}, + "readlink": {}, + "readv": {}, + "realloc": {}, + "reallocarray": {}, + "realpath": {}, + "recv": {}, + "recvfrom": {}, + "recvmsg": {}, + "remove": {}, + "rename": {}, + "rewind": {}, + "rindex": {}, + "rint": {}, + "rmdir": {}, + "round": {}, + "scalbn": {}, + "scalbnl": {}, + "sched_yield": {}, + "select": {}, + "send": {}, + "sendmsg": {}, + "sendto": {}, + "setbuf": {}, + "setenv": {}, + "setjmp": {}, + "setlocale": {}, + "setrlimit": {}, + "setrlimit64": {}, + "setsid": {}, + "setsockopt": {}, + "setstate": {}, + "setvbuf": {}, + "shmat": {}, + "shmctl": {}, + "shmdt": {}, + "shutdown": {}, + "sigaction": {}, + "signal": {}, + "sin": {}, + "sinf": {}, + "sinh": {}, + "sleep": {}, + "snprintf": {}, + "socket": {}, + "sprintf": {}, + "sqrt": {}, + "srand48": {}, + "sscanf": {}, + "stat": {}, + "stat64": {}, + "stderr": {}, + "stdin": {}, + "stdout": {}, + "strcasecmp": {}, + "strcat": {}, + "strchr": {}, + "strcmp": {}, + "strcpy": {}, + "strcspn": {}, + "strdup": {}, + "strerror": {}, + "strerror_r": {}, + "strlen": {}, + "strncmp": {}, + "strncpy": {}, + "strnlen": {}, + "strpbrk": {}, + "strrchr": {}, + "strspn": {}, + "strstr": {}, + "strtod": {}, + "strtof": {}, + "strtoimax": {}, + "strtol": {}, + "strtold": {}, + "strtoll": {}, + "strtoul": {}, + "strtoull": {}, + "strtoumax": {}, + "symlink": {}, + "sysconf": {}, + "system": {}, + "tan": {}, + "tanh": {}, + "tcgetattr": {}, + "tcsendbreak": {}, + "tcsetattr": {}, + "time": {}, + "tmpfile": {}, + "tolower": {}, + "toupper": {}, + "trunc": {}, + "tzset": {}, + "umask": {}, + "uname": {}, + "ungetc": {}, + "unlink": {}, + "unsetenv": {}, + "usleep": {}, + "utime": {}, + "utimes": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, + "vasprintf": {}, + "vfprintf": {}, + "vprintf": {}, + "vsnprintf": {}, + "vsprintf": {}, + "waitpid": {}, + "wcschr": {}, + "wctomb": {}, + "wcwidth": {}, + "write": {}, + "writev": {}, + "zero_struct_address": {}, +} diff --git a/vendor/modernc.org/libc/capi_freebsd_amd64.go b/vendor/modernc.org/libc/capi_freebsd_amd64.go index 5ff4d34ce..be90d546e 100644 --- a/vendor/modernc.org/libc/capi_freebsd_amd64.go +++ b/vendor/modernc.org/libc/capi_freebsd_amd64.go @@ -39,6 +39,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -47,6 +49,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -90,11 +93,16 @@ var CAPI = map[string]struct{}{ "__isalnum_l": {}, "__isalpha_l": {}, "__isdigit_l": {}, + "__islower_l": {}, "__isnan": {}, "__isnanf": {}, "__isnanl": {}, "__isoc99_sscanf": {}, + "__isprint_l": {}, + "__isspace_l": {}, "__isthreaded": {}, + "__isupper_l": {}, + "__isxdigit_l": {}, "__lookup_ipliteral": {}, "__lookup_name": {}, "__lookup_serv": {}, @@ -139,6 +147,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,15 +267,22 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, "ioctl": {}, "isalnum": {}, "isalpha": {}, "isascii": {}, "isatty": {}, "isdigit": {}, + "islower": {}, "isnan": {}, "isnanf": {}, "isnanl": {}, + "isprint": {}, + "isspace": {}, + "isupper": {}, + "isxdigit": {}, "kill": {}, "ldexp": {}, "link": {}, @@ -293,6 +309,7 @@ var CAPI = map[string]struct{}{ "mkdir": {}, "mkfifo": {}, "mknod": {}, + "mkostemp": {}, "mkstemp": {}, "mkstemp64": {}, "mkstemps": {}, @@ -356,6 +373,7 @@ var CAPI = map[string]struct{}{ "raise": {}, "rand": {}, "random": {}, + "random_r": {}, "read": {}, "readdir": {}, "readdir64": {}, @@ -389,6 +407,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, @@ -419,6 +438,7 @@ var CAPI = map[string]struct{}{ "strcspn": {}, "strdup": {}, "strerror": {}, + "strerror_r": {}, "strlen": {}, "strncmp": {}, "strncpy": {}, @@ -458,6 +478,9 @@ var CAPI = map[string]struct{}{ "usleep": {}, "utime": {}, "utimes": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, "vasprintf": {}, "vfprintf": {}, "vprintf": {}, diff --git a/vendor/modernc.org/libc/capi_linux_386.go b/vendor/modernc.org/libc/capi_linux_386.go index 960ead92c..79a194dda 100644 --- a/vendor/modernc.org/libc/capi_linux_386.go +++ b/vendor/modernc.org/libc/capi_linux_386.go @@ -34,6 +34,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -42,6 +44,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -136,6 +139,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,6 +262,7 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, "initstate_r": {}, "ioctl": {}, "isalnum": {}, @@ -405,6 +410,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, diff --git a/vendor/modernc.org/libc/capi_linux_amd64.go b/vendor/modernc.org/libc/capi_linux_amd64.go index 4c3bc4891..b6f3b2a04 100644 --- a/vendor/modernc.org/libc/capi_linux_amd64.go +++ b/vendor/modernc.org/libc/capi_linux_amd64.go @@ -34,6 +34,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -42,6 +44,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -136,6 +139,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,6 +262,7 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, "initstate_r": {}, "ioctl": {}, "isalnum": {}, @@ -407,6 +412,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, diff --git a/vendor/modernc.org/libc/capi_linux_arm.go b/vendor/modernc.org/libc/capi_linux_arm.go index 960ead92c..79a194dda 100644 --- a/vendor/modernc.org/libc/capi_linux_arm.go +++ b/vendor/modernc.org/libc/capi_linux_arm.go @@ -34,6 +34,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -42,6 +44,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -136,6 +139,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,6 +262,7 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, "initstate_r": {}, "ioctl": {}, "isalnum": {}, @@ -405,6 +410,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, diff --git a/vendor/modernc.org/libc/capi_linux_arm64.go b/vendor/modernc.org/libc/capi_linux_arm64.go index 960ead92c..79a194dda 100644 --- a/vendor/modernc.org/libc/capi_linux_arm64.go +++ b/vendor/modernc.org/libc/capi_linux_arm64.go @@ -34,6 +34,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -42,6 +44,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -136,6 +139,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,6 +262,7 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, "initstate_r": {}, "ioctl": {}, "isalnum": {}, @@ -405,6 +410,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, diff --git a/vendor/modernc.org/libc/capi_linux_s390x.go b/vendor/modernc.org/libc/capi_linux_s390x.go index 960ead92c..79a194dda 100644 --- a/vendor/modernc.org/libc/capi_linux_s390x.go +++ b/vendor/modernc.org/libc/capi_linux_s390x.go @@ -34,6 +34,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -42,6 +44,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -136,6 +139,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -258,6 +262,7 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, "initstate_r": {}, "ioctl": {}, "isalnum": {}, @@ -405,6 +410,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, diff --git a/vendor/modernc.org/libc/capi_netbsd_amd64.go b/vendor/modernc.org/libc/capi_netbsd_amd64.go index 45d41d2d1..c71e72bd8 100644 --- a/vendor/modernc.org/libc/capi_netbsd_amd64.go +++ b/vendor/modernc.org/libc/capi_netbsd_amd64.go @@ -39,6 +39,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -47,6 +49,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -110,7 +113,6 @@ var CAPI = map[string]struct{}{ "__swbuf": {}, "__sync_add_and_fetch_uint32": {}, "__sync_sub_and_fetch_uint32": {}, - "__sync_synchronize": {}, "__syscall1": {}, "__syscall3": {}, "__syscall4": {}, @@ -145,6 +147,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -264,6 +267,8 @@ var CAPI = map[string]struct{}{ "inet_ntoa": {}, "inet_ntop": {}, "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, "ioctl": {}, "isalnum": {}, "isalpha": {}, @@ -299,6 +304,7 @@ var CAPI = map[string]struct{}{ "mkdir": {}, "mkfifo": {}, "mknod": {}, + "mkostemp": {}, "mkstemp": {}, "mkstemp64": {}, "mkstemps": {}, @@ -362,6 +368,7 @@ var CAPI = map[string]struct{}{ "raise": {}, "rand": {}, "random": {}, + "random_r": {}, "read": {}, "readdir": {}, "readdir64": {}, @@ -395,6 +402,7 @@ var CAPI = map[string]struct{}{ "setrlimit64": {}, "setsid": {}, "setsockopt": {}, + "setstate": {}, "setvbuf": {}, "shmat": {}, "shmctl": {}, @@ -425,6 +433,7 @@ var CAPI = map[string]struct{}{ "strcspn": {}, "strdup": {}, "strerror": {}, + "strerror_r": {}, "strlen": {}, "strncmp": {}, "strncpy": {}, @@ -464,6 +473,9 @@ var CAPI = map[string]struct{}{ "usleep": {}, "utime": {}, "utimes": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, "vasprintf": {}, "vfprintf": {}, "vprintf": {}, diff --git a/vendor/modernc.org/libc/capi_openbsd_amd64.go b/vendor/modernc.org/libc/capi_openbsd_amd64.go new file mode 100644 index 000000000..00e93a20c --- /dev/null +++ b/vendor/modernc.org/libc/capi_openbsd_amd64.go @@ -0,0 +1,504 @@ +// Code generated by 'go generate' - DO NOT EDIT. + +package libc // import "modernc.org/libc" + +var CAPI = map[string]struct{}{ + "_CurrentRuneLocale": {}, + "_DefaultRuneLocale": {}, + "_IO_putc": {}, + "_ThreadRuneLocale": {}, + "___errno_location": {}, + "___runetype": {}, + "__assert": {}, + "__assert13": {}, + "__assert2": {}, + "__assert_fail": {}, + "__builtin___memcpy_chk": {}, + "__builtin___memmove_chk": {}, + "__builtin___memset_chk": {}, + "__builtin___snprintf_chk": {}, + "__builtin___sprintf_chk": {}, + "__builtin___strcat_chk": {}, + "__builtin___strcpy_chk": {}, + "__builtin___strncpy_chk": {}, + "__builtin___vsnprintf_chk": {}, + "__builtin_abort": {}, + "__builtin_abs": {}, + "__builtin_add_overflowInt64": {}, + "__builtin_add_overflowUint32": {}, + "__builtin_add_overflowUint64": {}, + "__builtin_bswap16": {}, + "__builtin_bswap32": {}, + "__builtin_bswap64": {}, + "__builtin_bzero": {}, + "__builtin_clz": {}, + "__builtin_clzl": {}, + "__builtin_clzll": {}, + "__builtin_constant_p_impl": {}, + "__builtin_copysign": {}, + "__builtin_copysignf": {}, + "__builtin_copysignl": {}, + "__builtin_exit": {}, + "__builtin_expect": {}, + "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, + "__builtin_free": {}, + "__builtin_getentropy": {}, + "__builtin_huge_val": {}, + "__builtin_huge_valf": {}, + "__builtin_inf": {}, + "__builtin_inff": {}, + "__builtin_infl": {}, + "__builtin_isnan": {}, + "__builtin_isunordered": {}, + "__builtin_malloc": {}, + "__builtin_memcmp": {}, + "__builtin_memcpy": {}, + "__builtin_memset": {}, + "__builtin_mmap": {}, + "__builtin_mul_overflowInt64": {}, + "__builtin_mul_overflowUint128": {}, + "__builtin_mul_overflowUint64": {}, + "__builtin_nan": {}, + "__builtin_nanf": {}, + "__builtin_nanl": {}, + "__builtin_object_size": {}, + "__builtin_popcount": {}, + "__builtin_popcountl": {}, + "__builtin_prefetch": {}, + "__builtin_printf": {}, + "__builtin_snprintf": {}, + "__builtin_sprintf": {}, + "__builtin_strchr": {}, + "__builtin_strcmp": {}, + "__builtin_strcpy": {}, + "__builtin_strlen": {}, + "__builtin_sub_overflowInt64": {}, + "__builtin_trap": {}, + "__builtin_unreachable": {}, + "__ccgo_dmesg": {}, + "__ccgo_getMutexType": {}, + "__ccgo_in6addr_anyp": {}, + "__ccgo_pthreadAttrGetDetachState": {}, + "__ccgo_pthreadMutexattrGettype": {}, + "__ccgo_sqlite3_log": {}, + "__cmsg_nxthdr": {}, + "__ctype_get_mb_cur_max": {}, + "__errno": {}, + "__errno_location": {}, + "__error": {}, + "__floatscan": {}, + "__h_errno_location": {}, + "__inet_aton": {}, + "__inet_ntoa": {}, + "__intscan": {}, + "__isalnum_l": {}, + "__isalpha_l": {}, + "__isdigit_l": {}, + "__islower_l": {}, + "__isnan": {}, + "__isnanf": {}, + "__isnanl": {}, + "__isoc99_sscanf": {}, + "__isprint_l": {}, + "__isspace_l": {}, + "__isthreaded": {}, + "__isupper_l": {}, + "__isxdigit_l": {}, + "__lookup_ipliteral": {}, + "__lookup_name": {}, + "__lookup_serv": {}, + "__mb_sb_limit": {}, + "__runes_for_locale": {}, + "__sF": {}, + "__shgetc": {}, + "__shlim": {}, + "__srget": {}, + "__stderrp": {}, + "__stdinp": {}, + "__stdoutp": {}, + "__swbuf": {}, + "__sync_add_and_fetch_uint32": {}, + "__sync_sub_and_fetch_uint32": {}, + "__syscall1": {}, + "__syscall3": {}, + "__syscall4": {}, + "__toread": {}, + "__toread_needs_stdio_exit": {}, + "__uflow": {}, + "__xuname": {}, + "_exit": {}, + "_longjmp": {}, + "_obstack_begin": {}, + "_obstack_newchunk": {}, + "_setjmp": {}, + "_tolower_tab_": {}, + "_toupper_tab_": {}, + "abort": {}, + "abs": {}, + "accept": {}, + "access": {}, + "acos": {}, + "acosh": {}, + "alarm": {}, + "asin": {}, + "asinh": {}, + "atan": {}, + "atan2": {}, + "atanh": {}, + "atexit": {}, + "atof": {}, + "atoi": {}, + "atol": {}, + "backtrace": {}, + "backtrace_symbols_fd": {}, + "bind": {}, + "bsearch": {}, + "bzero": {}, + "calloc": {}, + "ceil": {}, + "ceilf": {}, + "cfgetospeed": {}, + "cfsetispeed": {}, + "cfsetospeed": {}, + "chdir": {}, + "chflags": {}, + "chmod": {}, + "chown": {}, + "clock_gettime": {}, + "close": {}, + "closedir": {}, + "confstr": {}, + "connect": {}, + "copysign": {}, + "copysignf": {}, + "copysignl": {}, + "cos": {}, + "cosf": {}, + "cosh": {}, + "ctime": {}, + "ctime_r": {}, + "dlclose": {}, + "dlerror": {}, + "dlopen": {}, + "dlsym": {}, + "dup2": {}, + "endpwent": {}, + "environ": {}, + "execvp": {}, + "exit": {}, + "exp": {}, + "fabs": {}, + "fabsf": {}, + "fabsl": {}, + "fchmod": {}, + "fchown": {}, + "fclose": {}, + "fcntl": {}, + "fcntl64": {}, + "fdopen": {}, + "ferror": {}, + "fflush": {}, + "fgetc": {}, + "fgets": {}, + "fileno": {}, + "floor": {}, + "fmod": {}, + "fmodl": {}, + "fopen": {}, + "fopen64": {}, + "fork": {}, + "fprintf": {}, + "fputc": {}, + "fputs": {}, + "fread": {}, + "free": {}, + "freeaddrinfo": {}, + "frexp": {}, + "fscanf": {}, + "fseek": {}, + "fstat": {}, + "fstat64": {}, + "fsync": {}, + "ftell": {}, + "ftruncate": {}, + "fts64_close": {}, + "fts64_open": {}, + "fts64_read": {}, + "fts_close": {}, + "fts_open": {}, + "fts_read": {}, + "fwrite": {}, + "gai_strerror": {}, + "getaddrinfo": {}, + "getc": {}, + "getcwd": {}, + "getegid": {}, + "getentropy": {}, + "getenv": {}, + "geteuid": {}, + "getgid": {}, + "getgrgid": {}, + "getgrgid_r": {}, + "getgrnam": {}, + "getgrnam_r": {}, + "gethostbyaddr": {}, + "gethostbyaddr_r": {}, + "gethostbyname": {}, + "gethostbyname2": {}, + "gethostbyname2_r": {}, + "gethostname": {}, + "getnameinfo": {}, + "getpagesize": {}, + "getpeername": {}, + "getpid": {}, + "getpwnam": {}, + "getpwnam_r": {}, + "getpwuid": {}, + "getpwuid_r": {}, + "getresgid": {}, + "getresuid": {}, + "getrlimit": {}, + "getrlimit64": {}, + "getrusage": {}, + "getservbyname": {}, + "getsockname": {}, + "getsockopt": {}, + "gettimeofday": {}, + "getuid": {}, + "gmtime_r": {}, + "h_errno": {}, + "htonl": {}, + "htons": {}, + "hypot": {}, + "inet_ntoa": {}, + "inet_ntop": {}, + "inet_pton": {}, + "initstate": {}, + "initstate_r": {}, + "ioctl": {}, + "isalnum": {}, + "isalpha": {}, + "isascii": {}, + "isatty": {}, + "isdigit": {}, + "islower": {}, + "isnan": {}, + "isnanf": {}, + "isnanl": {}, + "isprint": {}, + "isspace": {}, + "isupper": {}, + "isxdigit": {}, + "kill": {}, + "ldexp": {}, + "link": {}, + "listen": {}, + "localtime": {}, + "localtime_r": {}, + "log": {}, + "log10": {}, + "longjmp": {}, + "lrand48": {}, + "lseek": {}, + "lseek64": {}, + "lstat": {}, + "lstat64": {}, + "malloc": {}, + "mblen": {}, + "mbstowcs": {}, + "mbtowc": {}, + "memchr": {}, + "memcmp": {}, + "memcpy": {}, + "memmove": {}, + "memset": {}, + "mkdir": {}, + "mkfifo": {}, + "mknod": {}, + "mkostemp": {}, + "mkstemp": {}, + "mkstemp64": {}, + "mkstemps": {}, + "mkstemps64": {}, + "mktime": {}, + "mmap": {}, + "modf": {}, + "munmap": {}, + "nl_langinfo": {}, + "ntohs": {}, + "obstack_free": {}, + "obstack_vprintf": {}, + "open": {}, + "open64": {}, + "opendir": {}, + "openpty": {}, + "pathconf": {}, + "pause": {}, + "pclose": {}, + "perror": {}, + "pipe": {}, + "poll": {}, + "popen": {}, + "pow": {}, + "printf": {}, + "pselect": {}, + "pthread_attr_destroy": {}, + "pthread_attr_getdetachstate": {}, + "pthread_attr_init": {}, + "pthread_attr_setdetachstate": {}, + "pthread_attr_setscope": {}, + "pthread_attr_setstacksize": {}, + "pthread_cond_broadcast": {}, + "pthread_cond_destroy": {}, + "pthread_cond_init": {}, + "pthread_cond_signal": {}, + "pthread_cond_timedwait": {}, + "pthread_cond_wait": {}, + "pthread_create": {}, + "pthread_detach": {}, + "pthread_equal": {}, + "pthread_exit": {}, + "pthread_getspecific": {}, + "pthread_join": {}, + "pthread_key_create": {}, + "pthread_key_delete": {}, + "pthread_mutex_destroy": {}, + "pthread_mutex_init": {}, + "pthread_mutex_lock": {}, + "pthread_mutex_trylock": {}, + "pthread_mutex_unlock": {}, + "pthread_mutexattr_destroy": {}, + "pthread_mutexattr_init": {}, + "pthread_mutexattr_settype": {}, + "pthread_self": {}, + "pthread_setspecific": {}, + "putc": {}, + "putchar": {}, + "puts": {}, + "qsort": {}, + "raise": {}, + "rand": {}, + "random": {}, + "random_r": {}, + "read": {}, + "readdir": {}, + "readdir64": {}, + "readlink": {}, + "readv": {}, + "realloc": {}, + "reallocarray": {}, + "realpath": {}, + "recv": {}, + "recvfrom": {}, + "recvmsg": {}, + "remove": {}, + "rename": {}, + "rewind": {}, + "rindex": {}, + "rint": {}, + "rmdir": {}, + "round": {}, + "scalbn": {}, + "scalbnl": {}, + "sched_yield": {}, + "select": {}, + "send": {}, + "sendmsg": {}, + "sendto": {}, + "setbuf": {}, + "setenv": {}, + "setjmp": {}, + "setlocale": {}, + "setrlimit": {}, + "setrlimit64": {}, + "setsid": {}, + "setsockopt": {}, + "setstate": {}, + "setvbuf": {}, + "shmat": {}, + "shmctl": {}, + "shmdt": {}, + "shutdown": {}, + "sigaction": {}, + "signal": {}, + "sin": {}, + "sinf": {}, + "sinh": {}, + "sleep": {}, + "snprintf": {}, + "socket": {}, + "sprintf": {}, + "sqrt": {}, + "srand48": {}, + "sscanf": {}, + "stat": {}, + "stat64": {}, + "stderr": {}, + "stdin": {}, + "stdout": {}, + "strcasecmp": {}, + "strcat": {}, + "strchr": {}, + "strcmp": {}, + "strcpy": {}, + "strcspn": {}, + "strdup": {}, + "strerror": {}, + "strerror_r": {}, + "strlen": {}, + "strncmp": {}, + "strncpy": {}, + "strnlen": {}, + "strpbrk": {}, + "strrchr": {}, + "strspn": {}, + "strstr": {}, + "strtod": {}, + "strtof": {}, + "strtoimax": {}, + "strtol": {}, + "strtold": {}, + "strtoll": {}, + "strtoul": {}, + "strtoull": {}, + "strtoumax": {}, + "symlink": {}, + "sysconf": {}, + "system": {}, + "tan": {}, + "tanh": {}, + "tcgetattr": {}, + "tcsendbreak": {}, + "tcsetattr": {}, + "time": {}, + "tmpfile": {}, + "tolower": {}, + "toupper": {}, + "trunc": {}, + "tzset": {}, + "umask": {}, + "uname": {}, + "ungetc": {}, + "unlink": {}, + "unsetenv": {}, + "usleep": {}, + "utime": {}, + "utimes": {}, + "uuid_generate_random": {}, + "uuid_parse": {}, + "uuid_unparse": {}, + "vasprintf": {}, + "vfprintf": {}, + "vprintf": {}, + "vsnprintf": {}, + "vsprintf": {}, + "waitpid": {}, + "wcschr": {}, + "wctomb": {}, + "wcwidth": {}, + "write": {}, + "writev": {}, + "zero_struct_address": {}, +} diff --git a/vendor/modernc.org/libc/capi_windows_386.go b/vendor/modernc.org/libc/capi_windows_386.go index 301188745..34da96686 100644 --- a/vendor/modernc.org/libc/capi_windows_386.go +++ b/vendor/modernc.org/libc/capi_windows_386.go @@ -284,6 +284,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -292,6 +294,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -440,6 +443,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -470,6 +474,7 @@ var CAPI = map[string]struct{}{ "exp": {}, "fabs": {}, "fabsf": {}, + "fabsl": {}, "fchmod": {}, "fclose": {}, "fcntl": {}, diff --git a/vendor/modernc.org/libc/capi_windows_amd64.go b/vendor/modernc.org/libc/capi_windows_amd64.go index 33d879393..e8906789c 100644 --- a/vendor/modernc.org/libc/capi_windows_amd64.go +++ b/vendor/modernc.org/libc/capi_windows_amd64.go @@ -282,6 +282,8 @@ var CAPI = map[string]struct{}{ "__builtin_exit": {}, "__builtin_expect": {}, "__builtin_fabs": {}, + "__builtin_fabsf": {}, + "__builtin_fabsl": {}, "__builtin_free": {}, "__builtin_getentropy": {}, "__builtin_huge_val": {}, @@ -290,6 +292,7 @@ var CAPI = map[string]struct{}{ "__builtin_inff": {}, "__builtin_infl": {}, "__builtin_isnan": {}, + "__builtin_isunordered": {}, "__builtin_malloc": {}, "__builtin_memcmp": {}, "__builtin_memcpy": {}, @@ -436,6 +439,7 @@ var CAPI = map[string]struct{}{ "backtrace": {}, "backtrace_symbols_fd": {}, "bind": {}, + "bsearch": {}, "bzero": {}, "calloc": {}, "ceil": {}, @@ -466,6 +470,7 @@ var CAPI = map[string]struct{}{ "exp": {}, "fabs": {}, "fabsf": {}, + "fabsl": {}, "fchmod": {}, "fclose": {}, "fcntl": {}, diff --git a/vendor/modernc.org/libc/errno/capi_darwin_amd64.go b/vendor/modernc.org/libc/errno/capi_darwin_amd64.go index 4894d1516..fbe477aad 100644 --- a/vendor/modernc.org/libc/errno/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/errno/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package errno -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/errno/capi_darwin_arm64.go b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go index 21541fdd9..e5d901d0d 100644 --- a/vendor/modernc.org/libc/errno/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/errno/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package errno -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/errno/capi_freebsd_386.go b/vendor/modernc.org/libc/errno/capi_freebsd_386.go new file mode 100644 index 000000000..7a8a6c30c --- /dev/null +++ b/vendor/modernc.org/libc/errno/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo errno/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_freebsd_386.go -pkgname errno', DO NOT EDIT. + +package errno + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go b/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go new file mode 100644 index 000000000..dc8102a37 --- /dev/null +++ b/vendor/modernc.org/libc/errno/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo errno/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_openbsd_amd64.go -pkgname errno', DO NOT EDIT. + +package errno + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/errno/capi_windows_386.go b/vendor/modernc.org/libc/errno/capi_windows_386.go index 076978ea2..bf2350226 100644 --- a/vendor/modernc.org/libc/errno/capi_windows_386.go +++ b/vendor/modernc.org/libc/errno/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo errno/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_windows_386.go -pkgname errno', DO NOT EDIT. +// Code generated by 'ccgo errno\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno\errno_windows_386.go -pkgname errno', DO NOT EDIT. package errno diff --git a/vendor/modernc.org/libc/errno/errno_darwin_amd64.go b/vendor/modernc.org/libc/errno/errno_darwin_amd64.go index ce7e08067..5b6df9d92 100644 --- a/vendor/modernc.org/libc/errno/errno_darwin_amd64.go +++ b/vendor/modernc.org/libc/errno/errno_darwin_amd64.go @@ -154,6 +154,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -312,6 +314,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/errno/errno_darwin_arm64.go b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go index 5a15581dc..0d9afe8a0 100644 --- a/vendor/modernc.org/libc/errno/errno_darwin_arm64.go +++ b/vendor/modernc.org/libc/errno/errno_darwin_arm64.go @@ -156,6 +156,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -314,6 +316,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/errno/errno_freebsd_386.go b/vendor/modernc.org/libc/errno/errno_freebsd_386.go new file mode 100644 index 000000000..48e4a708f --- /dev/null +++ b/vendor/modernc.org/libc/errno/errno_freebsd_386.go @@ -0,0 +1,158 @@ +// Code generated by 'ccgo errno/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_freebsd_386.go -pkgname errno', DO NOT EDIT. + +package errno + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + E2BIG = 7 + EACCES = 13 + EADDRINUSE = 48 + EADDRNOTAVAIL = 49 + EAFNOSUPPORT = 47 + EAGAIN = 35 + EALREADY = 37 + EAUTH = 80 + EBADF = 9 + EBADMSG = 89 + EBADRPC = 72 + EBUSY = 16 + ECANCELED = 85 + ECAPMODE = 94 + ECHILD = 10 + ECONNABORTED = 53 + ECONNREFUSED = 61 + ECONNRESET = 54 + EDEADLK = 11 + EDESTADDRREQ = 39 + EDOM = 33 + EDOOFUS = 88 + EDQUOT = 69 + EEXIST = 17 + EFAULT = 14 + EFBIG = 27 + EFTYPE = 79 + EHOSTDOWN = 64 + EHOSTUNREACH = 65 + EIDRM = 82 + EILSEQ = 86 + EINPROGRESS = 36 + EINTEGRITY = 97 + EINTR = 4 + EINVAL = 22 + EIO = 5 + EISCONN = 56 + EISDIR = 21 + ELAST = 97 + ELOOP = 62 + EMFILE = 24 + EMLINK = 31 + EMSGSIZE = 40 + EMULTIHOP = 90 + ENAMETOOLONG = 63 + ENEEDAUTH = 81 + ENETDOWN = 50 + ENETRESET = 52 + ENETUNREACH = 51 + ENFILE = 23 + ENOATTR = 87 + ENOBUFS = 55 + ENODEV = 19 + ENOENT = 2 + ENOEXEC = 8 + ENOLCK = 77 + ENOLINK = 91 + ENOMEM = 12 + ENOMSG = 83 + ENOPROTOOPT = 42 + ENOSPC = 28 + ENOSYS = 78 + ENOTBLK = 15 + ENOTCAPABLE = 93 + ENOTCONN = 57 + ENOTDIR = 20 + ENOTEMPTY = 66 + ENOTRECOVERABLE = 95 + ENOTSOCK = 38 + ENOTSUP = 45 + ENOTTY = 25 + ENXIO = 6 + EOPNOTSUPP = 45 + EOVERFLOW = 84 + EOWNERDEAD = 96 + EPERM = 1 + EPFNOSUPPORT = 46 + EPIPE = 32 + EPROCLIM = 67 + EPROCUNAVAIL = 76 + EPROGMISMATCH = 75 + EPROGUNAVAIL = 74 + EPROTO = 92 + EPROTONOSUPPORT = 43 + EPROTOTYPE = 41 + ERANGE = 34 + EREMOTE = 71 + EROFS = 30 + ERPCMISMATCH = 73 + ESHUTDOWN = 58 + ESOCKTNOSUPPORT = 44 + ESPIPE = 29 + ESRCH = 3 + ESTALE = 70 + ETIMEDOUT = 60 + ETOOMANYREFS = 59 + ETXTBSY = 26 + EUSERS = 68 + EWOULDBLOCK = 35 + EXDEV = 18 + X_ERRNO_T_DEFINED = 0 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_ERRNO_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// 11 was EAGAIN + +// math software + +// non-blocking and interrupt i/o + +// ipc/network software -- argument errors + +// ipc/network software -- operational errors + +// should be rearranged + +// quotas & mush + +// Network File System + +// ISO/IEC 9899:2011 K.3.2.2 +type Errno_t = int32 /* errno.h:204:13 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go b/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go new file mode 100644 index 000000000..04de68980 --- /dev/null +++ b/vendor/modernc.org/libc/errno/errno_openbsd_amd64.go @@ -0,0 +1,142 @@ +// Code generated by 'ccgo errno/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_openbsd_amd64.go -pkgname errno', DO NOT EDIT. + +package errno + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + E2BIG = 7 + EACCES = 13 + EADDRINUSE = 48 + EADDRNOTAVAIL = 49 + EAFNOSUPPORT = 47 + EAGAIN = 35 + EALREADY = 37 + EAUTH = 80 + EBADF = 9 + EBADMSG = 92 + EBADRPC = 72 + EBUSY = 16 + ECANCELED = 88 + ECHILD = 10 + ECONNABORTED = 53 + ECONNREFUSED = 61 + ECONNRESET = 54 + EDEADLK = 11 + EDESTADDRREQ = 39 + EDOM = 33 + EDQUOT = 69 + EEXIST = 17 + EFAULT = 14 + EFBIG = 27 + EFTYPE = 79 + EHOSTDOWN = 64 + EHOSTUNREACH = 65 + EIDRM = 89 + EILSEQ = 84 + EINPROGRESS = 36 + EINTR = 4 + EINVAL = 22 + EIO = 5 + EIPSEC = 82 + EISCONN = 56 + EISDIR = 21 + ELAST = 95 + ELOOP = 62 + EMEDIUMTYPE = 86 + EMFILE = 24 + EMLINK = 31 + EMSGSIZE = 40 + ENAMETOOLONG = 63 + ENEEDAUTH = 81 + ENETDOWN = 50 + ENETRESET = 52 + ENETUNREACH = 51 + ENFILE = 23 + ENOATTR = 83 + ENOBUFS = 55 + ENODEV = 19 + ENOENT = 2 + ENOEXEC = 8 + ENOLCK = 77 + ENOMEDIUM = 85 + ENOMEM = 12 + ENOMSG = 90 + ENOPROTOOPT = 42 + ENOSPC = 28 + ENOSYS = 78 + ENOTBLK = 15 + ENOTCONN = 57 + ENOTDIR = 20 + ENOTEMPTY = 66 + ENOTRECOVERABLE = 93 + ENOTSOCK = 38 + ENOTSUP = 91 + ENOTTY = 25 + ENXIO = 6 + EOPNOTSUPP = 45 + EOVERFLOW = 87 + EOWNERDEAD = 94 + EPERM = 1 + EPFNOSUPPORT = 46 + EPIPE = 32 + EPROCLIM = 67 + EPROCUNAVAIL = 76 + EPROGMISMATCH = 75 + EPROGUNAVAIL = 74 + EPROTO = 95 + EPROTONOSUPPORT = 43 + EPROTOTYPE = 41 + ERANGE = 34 + EREMOTE = 71 + EROFS = 30 + ERPCMISMATCH = 73 + ESHUTDOWN = 58 + ESOCKTNOSUPPORT = 44 + ESPIPE = 29 + ESRCH = 3 + ESTALE = 70 + ETIMEDOUT = 60 + ETOOMANYREFS = 59 + ETXTBSY = 26 + EUSERS = 68 + EWOULDBLOCK = 35 + EXDEV = 18 + X_ERRNO_H_ = 0 + X_FILE_OFFSET_BITS = 64 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_RET_PROTECTOR = 1 + X_SYS_CDEFS_H_ = 0 + Unix = 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 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/errno/errno_windows_386.go b/vendor/modernc.org/libc/errno/errno_windows_386.go index 4f0dfbe56..54c4a0c14 100644 --- a/vendor/modernc.org/libc/errno/errno_windows_386.go +++ b/vendor/modernc.org/libc/errno/errno_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo errno/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_windows_386.go -pkgname errno', DO NOT EDIT. +// Code generated by 'ccgo errno\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno\errno_windows_386.go -pkgname errno', DO NOT EDIT. package errno @@ -112,7 +112,9 @@ const ( EWOULDBLOCK = 140 EXDEV = 18 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 STRUNCATE = 80 @@ -136,12 +138,9 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_ERRNO = 0 @@ -156,6 +155,7 @@ const ( X_PGLOBAL = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_ERRCODE_VALUES_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD @@ -210,11 +210,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -235,12 +230,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -281,28 +270,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -328,29 +315,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ // Posix thread extensions. diff --git a/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go b/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go index 7ff36b734..bf61865db 100644 --- a/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/fcntl/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package fcntl -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go index eacbc259b..6bd12e5c1 100644 --- a/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/fcntl/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package fcntl -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go b/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go new file mode 100644 index 000000000..6a5872218 --- /dev/null +++ b/vendor/modernc.org/libc/fcntl/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo fcntl/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_freebsd_386.go -pkgname fcntl', DO NOT EDIT. + +package fcntl + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go b/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go new file mode 100644 index 000000000..50534c3e3 --- /dev/null +++ b/vendor/modernc.org/libc/fcntl/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo fcntl/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_openbsd_amd64.go -pkgname fcntl', DO NOT EDIT. + +package fcntl + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/fcntl/capi_windows_386.go b/vendor/modernc.org/libc/fcntl/capi_windows_386.go index 901d6f2f6..9a3802f37 100644 --- a/vendor/modernc.org/libc/fcntl/capi_windows_386.go +++ b/vendor/modernc.org/libc/fcntl/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo fcntl/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT. +// Code generated by 'ccgo fcntl\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl\fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT. package fcntl diff --git a/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go index b88e89fae..64e9d7196 100644 --- a/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go +++ b/vendor/modernc.org/libc/fcntl/fcntl_darwin_amd64.go @@ -219,6 +219,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -407,6 +409,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go index 937a00e53..0871e5d99 100644 --- a/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go +++ b/vendor/modernc.org/libc/fcntl/fcntl_darwin_arm64.go @@ -262,6 +262,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -450,6 +452,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go new file mode 100644 index 000000000..b49f8e76e --- /dev/null +++ b/vendor/modernc.org/libc/fcntl/fcntl_freebsd_386.go @@ -0,0 +1,766 @@ +// Code generated by 'ccgo fcntl/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_freebsd_386.go -pkgname fcntl', DO NOT EDIT. + +package fcntl + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AT_EACCESS = 0x0100 + AT_EMPTY_PATH = 0x4000 + AT_FDCWD = -100 + AT_REMOVEDIR = 0x0800 + AT_RESOLVE_BENEATH = 0x2000 + AT_SYMLINK_FOLLOW = 0x0400 + AT_SYMLINK_NOFOLLOW = 0x0200 + FAPPEND = 8 + FASYNC = 64 + FDSYNC = 16777216 + FD_CLOEXEC = 1 + FD_NONE = -200 + FFSYNC = 128 + FNDELAY = 4 + FNONBLOCK = 4 + FRDAHEAD = 512 + FREAD = 0x0001 + FWRITE = 0x0002 + F_ADD_SEALS = 19 + F_CANCEL = 5 + F_DUP2FD = 10 + F_DUP2FD_CLOEXEC = 18 + F_DUPFD = 0 + F_DUPFD_CLOEXEC = 17 + F_GETFD = 1 + F_GETFL = 3 + F_GETLK = 11 + F_GETOWN = 5 + F_GET_SEALS = 20 + F_ISUNIONSTACK = 21 + F_KINFO = 22 + F_OGETLK = 7 + F_OSETLK = 8 + F_OSETLKW = 9 + F_RDAHEAD = 16 + F_RDLCK = 1 + F_READAHEAD = 15 + F_SEAL_GROW = 0x0004 + F_SEAL_SEAL = 0x0001 + F_SEAL_SHRINK = 0x0002 + F_SEAL_WRITE = 0x0008 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 12 + F_SETLKW = 13 + F_SETLK_REMOTE = 14 + F_SETOWN = 6 + F_UNLCK = 2 + F_UNLCKSYS = 4 + F_WRLCK = 3 + LOCK_EX = 0x02 + LOCK_NB = 0x04 + LOCK_SH = 0x01 + LOCK_UN = 0x08 + O_ACCMODE = 0x0003 + O_APPEND = 0x0008 + O_ASYNC = 0x0040 + O_CLOEXEC = 0x00100000 + O_CREAT = 0x0200 + O_DIRECT = 0x00010000 + O_DIRECTORY = 0x00020000 + O_DSYNC = 0x01000000 + O_EMPTY_PATH = 0x02000000 + O_EXCL = 0x0800 + O_EXEC = 0x00040000 + O_EXLOCK = 0x0020 + O_FSYNC = 0x0080 + O_NDELAY = 4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x0100 + O_NONBLOCK = 0x0004 + O_PATH = 0x00400000 + O_RDONLY = 0x0000 + O_RDWR = 0x0002 + O_RESOLVE_BENEATH = 0x00800000 + O_SEARCH = 262144 + O_SHLOCK = 0x0010 + O_SYNC = 0x0080 + O_TRUNC = 0x0400 + O_TTY_INIT = 0x00080000 + O_VERIFY = 0x00200000 + O_WRONLY = 0x0001 + POSIX_FADV_DONTNEED = 4 + POSIX_FADV_NOREUSE = 5 + POSIX_FADV_NORMAL = 0 + POSIX_FADV_RANDOM = 1 + POSIX_FADV_SEQUENTIAL = 2 + POSIX_FADV_WILLNEED = 3 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MODE_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF_T_DECLARED = 0 + X_PID_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_FCNTL_H_ = 0 + X_SYS__TYPES_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1983, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fcntl.h 8.3 (Berkeley) 1/21/94 +// $FreeBSD$ + +// This file includes the definitions for open and fcntl +// described by POSIX for <fcntl.h>; it also includes +// related kernel definitions. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Mode_t = X__mode_t /* fcntl.h:53:18 */ + +type Off_t = X__off_t /* fcntl.h:58:18 */ + +type Pid_t = X__pid_t /* fcntl.h:63:18 */ + +// File status flags: these are used by open(2), fcntl(2). +// They are also used (indirectly) in the kernel file structure f_flags, +// which is a superset of the open/fcntl flags. Open flags and f_flags +// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags). +// Open/fcntl flags begin with O_; kernel-internal flags begin with F. +// open-only flags + +// Kernel encoding of open mode; separate read and write bits that are +// independently testable: 1 greater than the above. +// +// XXX +// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH, +// which was documented to use FREAD/FWRITE, continues to work. + +// Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY. + +// Attempt to bypass buffer cache + +// Defined by POSIX 1003.1-2008; BSD default, but reserve for future use. + +// XXX missing O_RSYNC. + +// The O_* flags used to have only F* names, which were used in the kernel +// and by fcntl. We retain the F* names for the kernel f_flag field +// and for backward compatibility for fcntl. These flags are deprecated. + +// Historically, we ran out of bits in f_flag (which was once a short). +// However, the flag bits not set in FMASK are only meaningful in the +// initial open syscall. Those bits were thus given a +// different meaning for fcntl(2). +// Read ahead + +// Magic value that specify the use of the current working directory +// to determine the target of relative file paths in the openat() and +// similar syscalls. + +// Miscellaneous flags for the *at() syscalls. +/* #define AT_UNUSED1 0x1000 */ // Was AT_BENEATH + +// Constants used for fcntl(2) + +// command values + +// Seals (F_ADD_SEALS, F_GET_SEALS). + +// file descriptor flags (F_GETFD, F_SETFD) + +// record locking flags (F_GETLK, F_SETLK, F_SETLKW) + +// Advisory file segment locking data type - +// information passed to system by user +type Flock = struct { + Fl_start Off_t + Fl_len Off_t + Fl_pid Pid_t + Fl_type int16 + Fl_whence int16 + Fl_sysid int32 +} /* fcntl.h:306:1 */ + +// Old advisory file segment locking data type, +// before adding l_sysid. +type X__oflock = struct { + Fl_start Off_t + Fl_len Off_t + Fl_pid Pid_t + Fl_type int16 + Fl_whence int16 +} /* fcntl.h:320:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go b/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go new file mode 100644 index 000000000..f1b5b336b --- /dev/null +++ b/vendor/modernc.org/libc/fcntl/fcntl_openbsd_amd64.go @@ -0,0 +1,827 @@ +// Code generated by 'ccgo fcntl/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_openbsd_amd64.go -pkgname fcntl', DO NOT EDIT. + +package fcntl + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AT_EACCESS = 0x01 + AT_FDCWD = -100 + AT_REMOVEDIR = 0x08 + AT_SYMLINK_FOLLOW = 0x04 + AT_SYMLINK_NOFOLLOW = 0x02 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FAPPEND = 8 + FASYNC = 64 + FD_CLOEXEC = 1 + FFSYNC = 128 + FNDELAY = 4 + FNONBLOCK = 4 + FREAD = 0x0001 + FWRITE = 0x0002 + F_DUPFD = 0 + F_DUPFD_CLOEXEC = 10 + F_GETFD = 1 + F_GETFL = 3 + F_GETLK = 7 + F_GETOWN = 5 + F_ISATTY = 11 + F_RDLCK = 1 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 8 + F_SETLKW = 9 + F_SETOWN = 6 + F_UNLCK = 2 + F_WRLCK = 3 + LITTLE_ENDIAN = 1234 + LOCK_EX = 0x02 + LOCK_NB = 0x04 + LOCK_SH = 0x01 + LOCK_UN = 0x08 + O_ACCMODE = 0x0003 + O_APPEND = 0x0008 + O_ASYNC = 0x0040 + O_CLOEXEC = 0x10000 + O_CREAT = 0x0200 + O_DIRECTORY = 0x20000 + O_DSYNC = 128 + O_EXCL = 0x0800 + O_EXLOCK = 0x0020 + O_FSYNC = 0x0080 + O_NDELAY = 4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x0100 + O_NONBLOCK = 0x0004 + O_RDONLY = 0x0000 + O_RDWR = 0x0002 + O_RSYNC = 128 + O_SHLOCK = 0x0010 + O_SYNC = 0x0080 + O_TRUNC = 0x0400 + O_WRONLY = 0x0001 + PDP_ENDIAN = 3412 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_FCNTL_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: fcntl.h,v 1.22 2019/01/21 18:09:21 anton Exp $ +// $NetBSD: fcntl.h,v 1.8 1995/03/26 20:24:12 jtc Exp $ + +// - +// Copyright (c) 1983, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fcntl.h 8.3 (Berkeley) 1/21/94 + +// This file includes the definitions for open and fcntl +// described by POSIX for <fcntl.h>; it also includes +// related kernel definitions. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// File status flags: these are used by open(2), fcntl(2). +// They are also used (indirectly) in the kernel file structure f_flags, +// which is a superset of the open/fcntl flags. Open flags and f_flags +// are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags). +// Open/fcntl flags begin with O_; kernel-internal flags begin with F. +// open-only flags + +// Kernel encoding of open mode; separate read and write bits that are +// independently testable: 1 greater than the above. +// +// XXX +// FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH, +// which was documented to use FREAD/FWRITE, continues to work. + +// POSIX 1003.1 specifies a higher granularity for synchronous operations +// than we support. Since synchronicity is all or nothing in OpenBSD +// we just define these to be the same as O_SYNC. + +// defined by POSIX 1003.1; BSD default, this bit is not required + +// defined by POSIX Issue 7 + +// The O_* flags used to have only F* names, which were used in the kernel +// and by fcntl. We retain the F* names for the kernel f_flags field +// and for backward compatibility for fcntl. + +// Constants used for fcntl(2) + +// command values + +// file descriptor flags (F_GETFD, F_SETFD) + +// record locking flags (F_GETLK, F_SETLK, F_SETLKW) + +// Advisory file segment locking data type - +// information passed to system by user +type Flock = struct { + Fl_start Off_t + Fl_len Off_t + Fl_pid Pid_t + Fl_type int16 + Fl_whence int16 +} /* fcntl.h:180:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go b/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go index 5218b5b6f..ef167d400 100644 --- a/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go +++ b/vendor/modernc.org/libc/fcntl/fcntl_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo fcntl/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT. +// Code generated by 'ccgo fcntl\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl\fcntl_windows_386.go -pkgname fcntl', DO NOT EDIT. package fcntl @@ -33,7 +33,9 @@ const ( DUMMYUNIONNAME9 = 0 F_OK = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 O_ACCMODE = 3 @@ -81,7 +83,6 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 @@ -89,8 +90,6 @@ const ( X_FILE_OFFSET_BITS_SET_OFFT = 0 X_FINDDATA_T_DEFINED = 0 X_FSIZE_T_DEFINED = 0 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_FCNTL = 0 @@ -132,6 +131,7 @@ const ( X_PGLOBAL = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIZE_T_DEFINED = 0 @@ -189,11 +189,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -214,12 +209,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -260,28 +249,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -307,29 +294,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type X_fsize_t = uint32 /* io.h:29:25 */ type X_finddata32_t = struct { diff --git a/vendor/modernc.org/libc/fts/capi_darwin_amd64.go b/vendor/modernc.org/libc/fts/capi_darwin_amd64.go index 2a2cd65c5..46344857a 100644 --- a/vendor/modernc.org/libc/fts/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/fts/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package fts -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/fts/capi_darwin_arm64.go b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go index c70942823..08e0ed435 100644 --- a/vendor/modernc.org/libc/fts/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/fts/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package fts -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/fts/capi_freebsd_386.go b/vendor/modernc.org/libc/fts/capi_freebsd_386.go new file mode 100644 index 000000000..f3012a423 --- /dev/null +++ b/vendor/modernc.org/libc/fts/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo fts/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fts/fts_freebsd_386.go -pkgname fts', DO NOT EDIT. + +package fts + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go b/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go new file mode 100644 index 000000000..8e20d393e --- /dev/null +++ b/vendor/modernc.org/libc/fts/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo fts/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fts/fts_openbsd_amd64.go -pkgname fts', DO NOT EDIT. + +package fts + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/fts/fts_darwin_amd64.go b/vendor/modernc.org/libc/fts/fts_darwin_amd64.go index df27dcd59..ef7479e78 100644 --- a/vendor/modernc.org/libc/fts/fts_darwin_amd64.go +++ b/vendor/modernc.org/libc/fts/fts_darwin_amd64.go @@ -27,6 +27,7 @@ const ( EF_NO_XATTRS = 0x00000002 FD_SETSIZE = 1024 FTS_AGAIN = 1 + FTS_BLOCK_COMPAR = 0x80000000 FTS_COMFOLLOW = 0x001 FTS_COMFOLLOWDIR = 0x400 FTS_D = 1 @@ -213,6 +214,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2008 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -377,6 +380,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -2944,15 +2954,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -3223,15 +3224,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -5130,7 +5122,7 @@ type FTS = struct { Ffts_pathlen int32 Ffts_nitems int32 F__ccgo_pad2 [4]byte - Ffts_compar uintptr + F__56 struct{ Ffts_compar uintptr } Ffts_options int32 F__ccgo_pad3 [4]byte } /* fts.h:111:3 */ diff --git a/vendor/modernc.org/libc/fts/fts_darwin_arm64.go b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go index 886f3b9e1..d7f9126ac 100644 --- a/vendor/modernc.org/libc/fts/fts_darwin_arm64.go +++ b/vendor/modernc.org/libc/fts/fts_darwin_arm64.go @@ -28,6 +28,7 @@ const ( EF_NO_XATTRS = 0x00000002 FD_SETSIZE = 1024 FTS_AGAIN = 1 + FTS_BLOCK_COMPAR = 0x80000000 FTS_CHDIRFD = 0x08 FTS_COMFOLLOW = 0x001 FTS_COMFOLLOWDIR = 0x400 @@ -229,7 +230,6 @@ const ( X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 X_FTS_H_ = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_ID_T = 0 X_INO64_T = 0 @@ -238,7 +238,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -269,7 +268,6 @@ const ( X_RSIZE_T = 0 X_SIZE_T = 0 X_SSIZE_T = 0 - X_STDINT_H_ = 0 X_SUSECONDS_T = 0 X_SYS_STAT_H_ = 0 X_SYS_TYPES_H_ = 0 @@ -278,11 +276,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -313,6 +306,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2008 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -477,6 +472,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1552,727 +1554,39 @@ type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_ type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */ type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. - -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)endian.h 8.1 (Berkeley) 6/11/93 - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// Define _NOQUAD if the compiler does NOT support 64-bit integers. -// #define _NOQUAD - -// Define the order of 32-bit words in 64-bit words. - -// Definitions for byte order, according to byte significance from low -// address to high. - -// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// Macros for network/external number representation conversion. - -// Copyright (c) 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// This header is normally included from <libkern/OSByteOrder.h>. However, -// <sys/_endian.h> also includes this in the case of little-endian -// architectures, so that we can map OSByteOrder routines to the hton* and ntoh* -// macros. This results in the asymmetry below; we only include -// <libkern/arch/_OSByteOrder.h> for little-endian architectures. - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Macros for swapping constant values in the preprocessing stage. - -// Copyright (c) 1999-2007 Apple Inc. All rights reserved. - -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. - -// from ISO/IEC 988:1999 spec - -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ +type Uint32_t = uint32 /* stdint.h:172:25 */ -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// 7.18.1.4 Integer types capable of holding object pointers +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// prevent glibc sys/types.h from defining conflicting types -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ // Functions for byte reversed loads. @@ -3735,15 +3049,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -4037,15 +3342,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -5910,7 +5206,7 @@ type FTS = struct { Ffts_pathlen int32 Ffts_nitems int32 F__ccgo_pad2 [4]byte - Ffts_compar uintptr + F__56 struct{ Ffts_compar uintptr } Ffts_options int32 F__ccgo_pad3 [4]byte } /* fts.h:111:3 */ diff --git a/vendor/modernc.org/libc/fts/fts_freebsd_386.go b/vendor/modernc.org/libc/fts/fts_freebsd_386.go new file mode 100644 index 000000000..d68f6aa6f --- /dev/null +++ b/vendor/modernc.org/libc/fts/fts_freebsd_386.go @@ -0,0 +1,2359 @@ +// Code generated by 'ccgo fts/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fts/fts_freebsd_386.go -pkgname fts', DO NOT EDIT. + +package fts + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ACCESSPERMS = 511 + ALLPERMS = 4095 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + CLK_TCK = 128 + CLOCKS_PER_SEC = 128 + CLOCK_BOOTTIME = 5 + CLOCK_MONOTONIC = 4 + CLOCK_MONOTONIC_COARSE = 12 + CLOCK_MONOTONIC_FAST = 12 + CLOCK_MONOTONIC_PRECISE = 11 + CLOCK_PROCESS_CPUTIME_ID = 15 + CLOCK_PROF = 2 + CLOCK_REALTIME = 0 + CLOCK_REALTIME_COARSE = 10 + CLOCK_REALTIME_FAST = 10 + CLOCK_REALTIME_PRECISE = 9 + CLOCK_SECOND = 13 + CLOCK_THREAD_CPUTIME_ID = 14 + CLOCK_UPTIME = 5 + CLOCK_UPTIME_FAST = 8 + CLOCK_UPTIME_PRECISE = 7 + CLOCK_VIRTUAL = 1 + CPUCLOCK_WHICH_PID = 0 + CPUCLOCK_WHICH_TID = 1 + DEFFILEMODE = 438 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + FD_SETSIZE = 1024 + FTS_AGAIN = 1 + FTS_COMFOLLOW = 0x001 + FTS_D = 1 + FTS_DC = 2 + FTS_DEFAULT = 3 + FTS_DNR = 4 + FTS_DONTCHDIR = 0x01 + FTS_DOT = 5 + FTS_DP = 6 + FTS_ERR = 7 + FTS_F = 8 + FTS_FOLLOW = 2 + FTS_INIT = 9 + FTS_ISW = 0x04 + FTS_LOGICAL = 0x002 + FTS_NAMEONLY = 0x100 + FTS_NOCHDIR = 0x004 + FTS_NOINSTR = 3 + FTS_NOSTAT = 0x008 + FTS_NS = 10 + FTS_NSOK = 11 + FTS_OPTIONMASK = 0x0ff + FTS_PHYSICAL = 0x010 + FTS_ROOTLEVEL = 0 + FTS_ROOTPARENTLEVEL = -1 + FTS_SEEDOT = 0x020 + FTS_SKIP = 4 + FTS_SL = 12 + FTS_SLNONE = 13 + FTS_STOP = 0x200 + FTS_SYMFOLLOW = 0x02 + FTS_W = 14 + FTS_WHITEOUT = 0x080 + FTS_XDEV = 0x040 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + SBT_MAX = 0x7fffffffffffffff + SF_APPEND = 0x00040000 + SF_ARCHIVED = 0x00010000 + SF_IMMUTABLE = 0x00020000 + SF_NOUNLINK = 0x00100000 + SF_SETTABLE = 0xffff0000 + SF_SNAPSHOT = 0x00200000 + S_BLKSIZE = 512 + S_IEXEC = 64 + S_IFBLK = 0060000 + S_IFCHR = 0020000 + S_IFDIR = 0040000 + S_IFIFO = 0010000 + S_IFLNK = 0120000 + S_IFMT = 0170000 + S_IFREG = 0100000 + S_IFSOCK = 0140000 + S_IFWHT = 0160000 + S_IREAD = 256 + S_IRGRP = 0000040 + S_IROTH = 0000004 + S_IRUSR = 0000400 + S_IRWXG = 0000070 + S_IRWXO = 0000007 + S_IRWXU = 0000700 + S_ISGID = 0002000 + S_ISTXT = 0001000 + S_ISUID = 0004000 + S_ISVTX = 0001000 + S_IWGRP = 0000020 + S_IWOTH = 0000002 + S_IWRITE = 128 + S_IWUSR = 0000200 + S_IXGRP = 0000010 + S_IXOTH = 0000001 + S_IXUSR = 0000100 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + UF_APPEND = 0x00000004 + UF_ARCHIVE = 0x00000800 + UF_HIDDEN = 0x00008000 + UF_IMMUTABLE = 0x00000002 + UF_NODUMP = 0x00000001 + UF_NOUNLINK = 0x00000010 + UF_OFFLINE = 0x00000200 + UF_OPAQUE = 0x00000008 + UF_READONLY = 0x00001000 + UF_REPARSE = 0x00000400 + UF_SETTABLE = 0x0000ffff + UF_SPARSE = 0x00000100 + UF_SYSTEM = 0x00000080 + UTIME_NOW = -1 + UTIME_OMIT = -2 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_FTS_H_ = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_ILP32 = 1 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED = 0 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MKNOD_DECLARED = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_STAT_H_ = 0 + X_SYS_SYS__CLOCK_ID_H = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_USECONDS_T_DECLARED = 0 + X_XLOCALE_LOCALE1_H = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// Machine type dependent parameters. +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint32 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Blksize_t = X__blksize_t /* types.h:80:21 */ + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev + +type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type Gid_t = X__gid_t /* types.h:125:18 */ // group id + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Ino_t = X__ino_t /* types.h:145:18 */ // inode number + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Mode_t = X__mode_t /* types.h:160:18 */ // permissions + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count + +type Off_t = X__off_t /* types.h:175:18 */ // file offset + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed) + +type Time_t = X__time_t /* types.h:216:18 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Uid_t = X__uid_t /* types.h:233:18 */ // user id + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint32 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint32 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stat.h 8.12 (Berkeley) 6/16/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// XXX We get miscellaneous namespace pollution with this. +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// These macros are shared between time.h and sys/time.h. + +// Note: The values shown below as a comment for the __POSIX_VISIBLE values are +// the ones FreeBSD traditionally used based on our reading of the POSIX +// standards. However, glibc uses 199309 for all of them, even those many were +// not defined there. To remain bug compatible with glibc means more software +// that relied on the glibc behavior will compile easily on FreeBSD. +// +// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl +// port until it can be updated properly. It incorrectly assumes that this was a +// standard value. It will be moved back to the __BSD_VISIBLE section once the +// issue is corrected. + +// FreeBSD-specific clocks. + +// Linux compatible names. + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:43:1 */ + +type Bintime = struct { + Fsec Time_t + Ffrac Uint64_t +} /* time.h:56:1 */ + +// Operations on timespecs + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:459:1 */ + +// Getkerninfo clock information structure +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fspare int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:467:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// Frequency of the clock ticks reported by clock(). + +// New in POSIX 1003.1b-1993. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +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 + Ftm_gmtoff int32 + Ftm_zone uintptr +} /* time.h:101:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011, 2012 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _time.h:36:25 */ + +type Stat = struct { + Fst_dev Dev_t + Fst_ino Ino_t + Fst_nlink Nlink_t + Fst_mode Mode_t + Fst_padding0 X__int16_t + Fst_uid Uid_t + Fst_gid Gid_t + Fst_padding1 X__int32_t + Fst_rdev Dev_t + Fst_atim_ext X__int32_t + Fst_atim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_mtim_ext X__int32_t + Fst_mtim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_ctim_ext X__int32_t + Fst_ctim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_btim_ext X__int32_t + Fst_birthtim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_size Off_t + Fst_blocks Blkcnt_t + Fst_blksize Blksize_t + Fst_flags Fflags_t + Fst_gen X__uint64_t + Fst_spare [10]X__uint64_t +} /* stat.h:160:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fts.h 8.3 (Berkeley) 8/14/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type X_ftsent = struct { + Ffts_cycle uintptr + Ffts_parent uintptr + Ffts_link uintptr + Ffts_number int64 + Ffts_pointer uintptr + Ffts_accpath uintptr + Ffts_path uintptr + Ffts_errno int32 + Ffts_symfd int32 + Ffts_pathlen X__size_t + Ffts_namelen X__size_t + Ffts_ino X__ino_t + Ffts_dev X__dev_t + Ffts_nlink X__nlink_t + Ffts_level int32 + Ffts_info int32 + Ffts_flags uint32 + Ffts_instr int32 + Ffts_statp uintptr + Ffts_name uintptr + Ffts_fts uintptr +} /* fts.h:41:2 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fts.h 8.3 (Berkeley) 8/14/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type FTS = struct { + Ffts_cur uintptr + Ffts_child uintptr + Ffts_array uintptr + Ffts_dev X__dev_t + Ffts_path uintptr + Ffts_rfd int32 + Ffts_pathlen X__size_t + Ffts_nitems X__size_t + Ffts_compar uintptr + Ffts_options int32 + Ffts_clientptr uintptr +} /* fts.h:66:3 */ + +type FTSENT = X_ftsent /* fts.h:120:3 */ + +var _ int8 /* gen.c:5:13: */ diff --git a/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go b/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go new file mode 100644 index 000000000..44e7b7894 --- /dev/null +++ b/vendor/modernc.org/libc/fts/fts_openbsd_amd64.go @@ -0,0 +1,1272 @@ +// Code generated by 'ccgo fts/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fts/fts_openbsd_amd64.go -pkgname fts', DO NOT EDIT. + +package fts + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ACCESSPERMS = 511 + ALLPERMS = 4095 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + CLK_TCK = 100 + CLOCKS_PER_SEC = 100 + CLOCK_BOOTTIME = 6 + CLOCK_MONOTONIC = 3 + CLOCK_PROCESS_CPUTIME_ID = 2 + CLOCK_REALTIME = 0 + CLOCK_THREAD_CPUTIME_ID = 4 + CLOCK_UPTIME = 5 + DEFFILEMODE = 438 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + FD_SETSIZE = 1024 + FTS_AGAIN = 1 + FTS_COMFOLLOW = 0x0001 + FTS_D = 1 + FTS_DC = 2 + FTS_DEFAULT = 3 + FTS_DNR = 4 + FTS_DONTCHDIR = 0x01 + FTS_DOT = 5 + FTS_DP = 6 + FTS_ERR = 7 + FTS_F = 8 + FTS_FOLLOW = 2 + FTS_INIT = 9 + FTS_LOGICAL = 0x0002 + FTS_MAXLEVEL = 0x7fffffff + FTS_NAMEONLY = 0x1000 + FTS_NOCHDIR = 0x0004 + FTS_NOINSTR = 3 + FTS_NOSTAT = 0x0008 + FTS_NS = 10 + FTS_NSOK = 11 + FTS_OPTIONMASK = 0x00ff + FTS_PHYSICAL = 0x0010 + FTS_ROOTLEVEL = 0 + FTS_ROOTPARENTLEVEL = -1 + FTS_SEEDOT = 0x0020 + FTS_SKIP = 4 + FTS_SL = 12 + FTS_SLNONE = 13 + FTS_STOP = 0x2000 + FTS_SYMFOLLOW = 0x02 + FTS_XDEV = 0x0040 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LITTLE_ENDIAN = 1234 + NBBY = 8 + PDP_ENDIAN = 3412 + SF_APPEND = 0x00040000 + SF_ARCHIVED = 0x00010000 + SF_IMMUTABLE = 0x00020000 + SF_SETTABLE = 0xffff0000 + S_BLKSIZE = 512 + S_IEXEC = 64 + S_IFBLK = 0060000 + S_IFCHR = 0020000 + S_IFDIR = 0040000 + S_IFIFO = 0010000 + S_IFLNK = 0120000 + S_IFMT = 0170000 + S_IFREG = 0100000 + S_IFSOCK = 0140000 + S_IREAD = 256 + S_IRGRP = 0000040 + S_IROTH = 0000004 + S_IRUSR = 0000400 + S_IRWXG = 0000070 + S_IRWXO = 0000007 + S_IRWXU = 0000700 + S_ISGID = 0002000 + S_ISTXT = 0001000 + S_ISUID = 0004000 + S_ISVTX = 0001000 + S_IWGRP = 0000020 + S_IWOTH = 0000002 + S_IWRITE = 128 + S_IWUSR = 0000200 + S_IXGRP = 0000010 + S_IXOTH = 0000001 + S_IXUSR = 0000100 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + UF_APPEND = 0x00000004 + UF_IMMUTABLE = 0x00000002 + UF_NODUMP = 0x00000001 + UF_OPAQUE = 0x00000008 + UF_SETTABLE = 0x0000ffff + UTIME_NOW = -2 + UTIME_OMIT = -1 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_FTS_H_ = 0 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SELECT_DEFINED_ = 0 + X_SIGSET_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_STAT_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TIME_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIMEVAL_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// $OpenBSD: stat.h,v 1.28 2015/04/04 18:06:08 jca Exp $ +// $NetBSD: stat.h,v 1.20 1996/05/16 22:17:49 cgd Exp $ + +// - +// Copyright (c) 1982, 1986, 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stat.h 8.9 (Berkeley) 8/17/94 + +// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $ +// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.2 (Berkeley) 7/10/94 + +// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther Exp $ + +// - +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)select.h 8.2 (Berkeley) 1/4/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* select.h:41:1 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* select.h:49:1 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +// We don't want to pollute the namespace with select(2) internals. +// Non-underscore versions are exposed later #if __BSD_VISIBLE +type X__fd_mask = Uint32_t /* select.h:70:18 */ + +type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */ + +type Fd_set = Fd_set1 /* select.h:76:3 */ + +type Sigset_t = uint32 /* select.h:122:22 */ + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:72:1 */ + +// Operations on timevals. + +// Operations on timespecs. + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:148:1 */ + +// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE}) +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:157:1 */ + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Per-process and per-thread clocks encode the PID or TID into the +// high bits, with the type in the bottom bits + +// Structure defined by POSIX 1003.1b to be like a itimerval, +// but with timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* _time.h:56:1 */ + +type Locale_t = uintptr /* time.h:107:14 */ + +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 + F__ccgo_pad1 [4]byte + Ftm_gmtoff int64 + Ftm_zone uintptr +} /* time.h:111:1 */ + +type Stat = struct { + Fst_mode Mode_t + Fst_dev Dev_t + Fst_ino Ino_t + Fst_nlink Nlink_t + Fst_uid Uid_t + Fst_gid Gid_t + Fst_rdev Dev_t + Fst_atim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_mtim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_ctim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_size Off_t + Fst_blocks Blkcnt_t + Fst_blksize Blksize_t + Fst_flags U_int32_t + Fst_gen U_int32_t + F__ccgo_pad1 [4]byte + F__st_birthtim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* stat.h:45:1 */ + +// $OpenBSD: fts.h,v 1.14 2012/12/05 23:19:57 deraadt Exp $ +// $NetBSD: fts.h,v 1.5 1994/12/28 01:41:50 mycroft Exp $ + +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fts.h 8.3 (Berkeley) 8/14/94 + +type X_ftsent = struct { + Ffts_cycle uintptr + Ffts_parent uintptr + Ffts_link uintptr + Ffts_number int64 + Ffts_pointer uintptr + Ffts_accpath uintptr + Ffts_path uintptr + Ffts_errno int32 + Ffts_symfd int32 + Ffts_pathlen Size_t + Ffts_namelen Size_t + Ffts_ino Ino_t + Ffts_dev Dev_t + Ffts_nlink Nlink_t + Ffts_level int32 + Ffts_info uint16 + Ffts_flags uint16 + Ffts_instr uint16 + Ffts_spare uint16 + F__ccgo_pad1 [4]byte + Ffts_statp uintptr + Ffts_name [1]int8 + F__ccgo_pad2 [7]byte +} /* fts.h:39:2 */ + +// $OpenBSD: fts.h,v 1.14 2012/12/05 23:19:57 deraadt Exp $ +// $NetBSD: fts.h,v 1.5 1994/12/28 01:41:50 mycroft Exp $ + +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)fts.h 8.3 (Berkeley) 8/14/94 + +type FTS = struct { + Ffts_cur uintptr + Ffts_child uintptr + Ffts_array uintptr + Ffts_dev Dev_t + F__ccgo_pad1 [4]byte + Ffts_path uintptr + Ffts_rfd int32 + F__ccgo_pad2 [4]byte + Ffts_pathlen Size_t + Ffts_nitems int32 + F__ccgo_pad3 [4]byte + Ffts_compar uintptr + Ffts_options int32 + F__ccgo_pad4 [4]byte +} /* fts.h:61:3 */ + +type FTSENT = X_ftsent /* fts.h:114:3 */ + +var _ int8 /* gen.c:5:13: */ diff --git a/vendor/modernc.org/libc/grp/capi_darwin_amd64.go b/vendor/modernc.org/libc/grp/capi_darwin_amd64.go index b01ff6e72..3d10f9a0c 100644 --- a/vendor/modernc.org/libc/grp/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/grp/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package grp -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/grp/capi_darwin_arm64.go b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go index f0ca05221..9e6f03aa6 100644 --- a/vendor/modernc.org/libc/grp/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/grp/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package grp -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/grp/capi_freebsd_386.go b/vendor/modernc.org/libc/grp/capi_freebsd_386.go new file mode 100644 index 000000000..e0a2dd7b5 --- /dev/null +++ b/vendor/modernc.org/libc/grp/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// 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 -o grp/grp_freebsd_386.go -pkgname grp', DO NOT EDIT. + +package grp + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go b/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go new file mode 100644 index 000000000..31fc49020 --- /dev/null +++ b/vendor/modernc.org/libc/grp/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// 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 -o grp/grp_openbsd_amd64.go -pkgname grp', DO NOT EDIT. + +package grp + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/grp/grp_darwin_amd64.go b/vendor/modernc.org/libc/grp/grp_darwin_amd64.go index f63baead3..30f279355 100644 --- a/vendor/modernc.org/libc/grp/grp_darwin_amd64.go +++ b/vendor/modernc.org/libc/grp/grp_darwin_amd64.go @@ -56,6 +56,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 1989, 1993 // The Regents of the University of California. All rights reserved. @@ -217,6 +219,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/grp/grp_darwin_arm64.go b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go index a97a3335d..428fe5417 100644 --- a/vendor/modernc.org/libc/grp/grp_darwin_arm64.go +++ b/vendor/modernc.org/libc/grp/grp_darwin_arm64.go @@ -58,6 +58,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 1989, 1993 // The Regents of the University of California. All rights reserved. @@ -219,6 +221,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/grp/grp_freebsd_386.go b/vendor/modernc.org/libc/grp/grp_freebsd_386.go new file mode 100644 index 000000000..4ab825d4b --- /dev/null +++ b/vendor/modernc.org/libc/grp/grp_freebsd_386.go @@ -0,0 +1,607 @@ +// 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 -o grp/grp_freebsd_386.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 ( + X_FILE_OFFSET_BITS = 64 + X_GID_T_DECLARED = 0 + X_GRP_H_ = 0 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PATH_GROUP = "/etc/group" + X_SIZE_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)grp.h 8.2 (Berkeley) 1/21/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Gid_t = X__gid_t /* grp.h:49:18 */ + +type Group = struct { + Fgr_name uintptr + Fgr_passwd uintptr + Fgr_gid Gid_t + Fgr_mem uintptr +} /* grp.h:58:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go b/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go new file mode 100644 index 000000000..685ea61ce --- /dev/null +++ b/vendor/modernc.org/libc/grp/grp_openbsd_amd64.go @@ -0,0 +1,700 @@ +// 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 -o grp/grp_openbsd_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 ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_GRP_H_ = 0 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PATH_GROUP = "/etc/group" + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: grp.h,v 1.13 2018/09/13 12:31:15 millert Exp $ +// $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $ + +// - +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)grp.h 8.2 (Berkeley) 1/21/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +type Group = struct { + Fgr_name uintptr + Fgr_passwd uintptr + Fgr_gid Gid_t + F__ccgo_pad1 [4]byte + Fgr_mem uintptr +} /* grp.h:50:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/ioutil_darwin.go b/vendor/modernc.org/libc/ioutil_darwin.go index 1628bfa3c..40ca5ed0d 100644 --- a/vendor/modernc.org/libc/ioutil_darwin.go +++ b/vendor/modernc.org/libc/ioutil_darwin.go @@ -41,7 +41,7 @@ func nextRandom(x uintptr) { copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6)) } -func tempFile(s, x uintptr) (fd int, err error) { +func tempFile(s, x uintptr, _ int32) (fd int, err error) { const maxTry = 10000 nconflict := 0 for i := 0; i < maxTry; i++ { diff --git a/vendor/modernc.org/libc/ioutil_freebsd.go b/vendor/modernc.org/libc/ioutil_freebsd.go index 1628bfa3c..40ca5ed0d 100644 --- a/vendor/modernc.org/libc/ioutil_freebsd.go +++ b/vendor/modernc.org/libc/ioutil_freebsd.go @@ -41,7 +41,7 @@ func nextRandom(x uintptr) { copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6)) } -func tempFile(s, x uintptr) (fd int, err error) { +func tempFile(s, x uintptr, _ int32) (fd int, err error) { const maxTry = 10000 nconflict := 0 for i := 0; i < maxTry; i++ { diff --git a/vendor/modernc.org/libc/ioutil_linux.go b/vendor/modernc.org/libc/ioutil_linux.go index 608857f21..db90f5598 100644 --- a/vendor/modernc.org/libc/ioutil_linux.go +++ b/vendor/modernc.org/libc/ioutil_linux.go @@ -43,7 +43,7 @@ func nextRandom(x uintptr) { copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6)) } -func tempFile(s, x uintptr, flags int32) (fd, err int) { +func tempFile(s, x uintptr, flags int32) (fd int, err error) { const maxTry = 10000 nconflict := 0 flags |= int32(os.O_RDWR | os.O_CREATE | os.O_EXCL | unix.O_LARGEFILE) @@ -52,11 +52,11 @@ func tempFile(s, x uintptr, flags int32) (fd, err int) { fdcwd := fcntl.AT_FDCWD n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), s, uintptr(flags), 0600, 0, 0) if err == 0 { - return int(n), 0 + return int(n), nil } if err != errno.EEXIST { - return -1, int(err) + return -1, err } if nconflict++; nconflict > 10 { @@ -66,5 +66,5 @@ func tempFile(s, x uintptr, flags int32) (fd, err int) { randStateMu.Unlock() } } - return -1, errno.EEXIST + return -1, unix.Errno(errno.EEXIST) } diff --git a/vendor/modernc.org/libc/ioutil_netbsd.go b/vendor/modernc.org/libc/ioutil_netbsd.go index 1628bfa3c..40ca5ed0d 100644 --- a/vendor/modernc.org/libc/ioutil_netbsd.go +++ b/vendor/modernc.org/libc/ioutil_netbsd.go @@ -41,7 +41,7 @@ func nextRandom(x uintptr) { copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6)) } -func tempFile(s, x uintptr) (fd int, err error) { +func tempFile(s, x uintptr, _ int32) (fd int, err error) { const maxTry = 10000 nconflict := 0 for i := 0; i < maxTry; i++ { diff --git a/vendor/modernc.org/libc/ioutil_openbsd.go b/vendor/modernc.org/libc/ioutil_openbsd.go new file mode 100644 index 000000000..40ca5ed0d --- /dev/null +++ b/vendor/modernc.org/libc/ioutil_openbsd.go @@ -0,0 +1,65 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE-GO file. + +// Modifications Copyright 2020 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package libc // import "modernc.org/libc" + +import ( + "fmt" + "os" + "sync" + "time" + "unsafe" + + "golang.org/x/sys/unix" +) + +// Random number state. +// We generate random temporary file names so that there's a good +// chance the file doesn't exist yet - keeps the number of tries in +// TempFile to a minimum. +var randState uint32 +var randStateMu sync.Mutex + +func reseed() uint32 { + return uint32(time.Now().UnixNano() + int64(os.Getpid())) +} + +func nextRandom(x uintptr) { + randStateMu.Lock() + r := randState + if r == 0 { + r = reseed() + } + r = r*1664525 + 1013904223 // constants from Numerical Recipes + randState = r + randStateMu.Unlock() + copy((*RawMem)(unsafe.Pointer(x))[:6:6], fmt.Sprintf("%06d", int(1e9+r%1e9)%1e6)) +} + +func tempFile(s, x uintptr, _ int32) (fd int, err error) { + const maxTry = 10000 + nconflict := 0 + for i := 0; i < maxTry; i++ { + nextRandom(x) + if fd, err = unix.Open(GoString(s), os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600); err == nil { + return fd, nil + } + + if !os.IsExist(err) { + return -1, err + } + + if nconflict++; nconflict > 10 { + randStateMu.Lock() + randState = reseed() + nconflict = 0 + randStateMu.Unlock() + } + } + return -1, err +} diff --git a/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go b/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go index 7a8fd578e..8189cc44e 100644 --- a/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/langinfo/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package langinfo -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go index d619422cd..b6c9d135d 100644 --- a/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/langinfo/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package langinfo -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go b/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go new file mode 100644 index 000000000..8ca766b22 --- /dev/null +++ b/vendor/modernc.org/libc/langinfo/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo langinfo/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o langinfo/langinfo_freebsd_386.go -pkgname langinfo', DO NOT EDIT. + +package langinfo + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go b/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go new file mode 100644 index 000000000..b3f262e01 --- /dev/null +++ b/vendor/modernc.org/libc/langinfo/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo langinfo/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o langinfo/langinfo_openbsd_amd64.go -pkgname langinfo', DO NOT EDIT. + +package langinfo + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go index 821329077..a2f803f77 100644 --- a/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go +++ b/vendor/modernc.org/libc/langinfo/langinfo_darwin_amd64.go @@ -109,6 +109,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> // All rights reserved. @@ -257,6 +259,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go index 275597305..43d6fcacb 100644 --- a/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go +++ b/vendor/modernc.org/libc/langinfo/langinfo_darwin_arm64.go @@ -111,6 +111,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> // All rights reserved. @@ -259,6 +261,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go new file mode 100644 index 000000000..2b3e8d5c2 --- /dev/null +++ b/vendor/modernc.org/libc/langinfo/langinfo_freebsd_386.go @@ -0,0 +1,695 @@ +// Code generated by 'ccgo langinfo/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o langinfo/langinfo_freebsd_386.go -pkgname langinfo', DO NOT EDIT. + +package langinfo + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ABDAY_1 = 14 + ABDAY_2 = 15 + ABDAY_3 = 16 + ABDAY_4 = 17 + ABDAY_5 = 18 + ABDAY_6 = 19 + ABDAY_7 = 20 + ABMON_1 = 33 + ABMON_10 = 42 + ABMON_11 = 43 + ABMON_12 = 44 + ABMON_2 = 34 + ABMON_3 = 35 + ABMON_4 = 36 + ABMON_5 = 37 + ABMON_6 = 38 + ABMON_7 = 39 + ABMON_8 = 40 + ABMON_9 = 41 + ALTMON_1 = 58 + ALTMON_10 = 67 + ALTMON_11 = 68 + ALTMON_12 = 69 + ALTMON_2 = 59 + ALTMON_3 = 60 + ALTMON_4 = 61 + ALTMON_5 = 62 + ALTMON_6 = 63 + ALTMON_7 = 64 + ALTMON_8 = 65 + ALTMON_9 = 66 + ALT_DIGITS = 49 + AM_STR = 5 + CODESET = 0 + CRNCYSTR = 56 + DAY_1 = 7 + DAY_2 = 8 + DAY_3 = 9 + DAY_4 = 10 + DAY_5 = 11 + DAY_6 = 12 + DAY_7 = 13 + D_FMT = 2 + D_MD_ORDER = 57 + D_T_FMT = 1 + ERA = 45 + ERA_D_FMT = 46 + ERA_D_T_FMT = 47 + ERA_T_FMT = 48 + MON_1 = 21 + MON_10 = 30 + MON_11 = 31 + MON_12 = 32 + MON_2 = 22 + MON_3 = 23 + MON_4 = 24 + MON_5 = 25 + MON_6 = 26 + MON_7 = 27 + MON_8 = 28 + MON_9 = 29 + NOEXPR = 53 + NOSTR = 55 + PM_STR = 6 + RADIXCHAR = 50 + THOUSEP = 51 + T_FMT = 3 + T_FMT_AMPM = 4 + YESEXPR = 52 + YESSTR = 54 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_LANGINFO_H_ = 0 + X_LOCALE_T_DEFINED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_NL_ITEM_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_XLOCALE_LANGINFO_H = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Nl_item = X__nl_item /* langinfo.h:38:19 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011, 2012 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _langinfo.h:39:25 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go b/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go new file mode 100644 index 000000000..30aabb616 --- /dev/null +++ b/vendor/modernc.org/libc/langinfo/langinfo_openbsd_amd64.go @@ -0,0 +1,511 @@ +// Code generated by 'ccgo langinfo/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o langinfo/langinfo_openbsd_amd64.go -pkgname langinfo', DO NOT EDIT. + +package langinfo + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ABDAY_1 = 13 + ABDAY_2 = 14 + ABDAY_3 = 15 + ABDAY_4 = 16 + ABDAY_5 = 17 + ABDAY_6 = 18 + ABDAY_7 = 19 + ABMON_1 = 32 + ABMON_10 = 41 + ABMON_11 = 42 + ABMON_12 = 43 + ABMON_2 = 33 + ABMON_3 = 34 + ABMON_4 = 35 + ABMON_5 = 36 + ABMON_6 = 37 + ABMON_7 = 38 + ABMON_8 = 39 + ABMON_9 = 40 + AM_STR = 4 + CODESET = 51 + CRNCYSTR = 50 + DAY_1 = 6 + DAY_2 = 7 + DAY_3 = 8 + DAY_4 = 9 + DAY_5 = 10 + DAY_6 = 11 + DAY_7 = 12 + D_FMT = 1 + D_T_FMT = 0 + MON_1 = 20 + MON_10 = 29 + MON_11 = 30 + MON_12 = 31 + MON_2 = 21 + MON_3 = 22 + MON_4 = 23 + MON_5 = 24 + MON_6 = 25 + MON_7 = 26 + MON_8 = 27 + MON_9 = 28 + NL_CAT_LOCALE = 1 + NL_SETD = 1 + NOEXPR = 49 + NOSTR = 48 + PM_STR = 5 + RADIXCHAR = 44 + THOUSEP = 45 + T_FMT = 2 + T_FMT_AMPM = 3 + YESEXPR = 47 + YESSTR = 46 + X_FILE_OFFSET_BITS = 64 + X_LANGINFO_H_ = 0 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_NL_TYPES_H_ = 0 + X_RET_PROTECTOR = 1 + X_SYS_CDEFS_H_ = 0 + Unix = 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 */ + +// $OpenBSD: langinfo.h,v 1.8 2017/09/05 03:16:13 schwarze Exp $ +// $NetBSD: langinfo.h,v 1.3 1995/04/28 23:30:54 jtc Exp $ + +// Written by J.T. Conklin <jtc@netbsd.org> +// Public domain. + +// $OpenBSD: nl_types.h,v 1.8 2008/06/26 05:42:04 ray Exp $ +// $NetBSD: nl_types.h,v 1.6 1996/05/13 23:11:15 jtc Exp $ + +// - +// Copyright (c) 1996 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by J.T. Conklin. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +type X_nl_catd = struct { + F__data uintptr + F__size int32 + F__ccgo_pad1 [4]byte +} /* nl_types.h:78:9 */ + +// $OpenBSD: langinfo.h,v 1.8 2017/09/05 03:16:13 schwarze Exp $ +// $NetBSD: langinfo.h,v 1.3 1995/04/28 23:30:54 jtc Exp $ + +// Written by J.T. Conklin <jtc@netbsd.org> +// Public domain. + +// $OpenBSD: nl_types.h,v 1.8 2008/06/26 05:42:04 ray Exp $ +// $NetBSD: nl_types.h,v 1.6 1996/05/13 23:11:15 jtc Exp $ + +// - +// Copyright (c) 1996 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by J.T. Conklin. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +type Nl_catd = uintptr /* nl_types.h:81:3 */ + +type Nl_item = int64 /* nl_types.h:83:14 */ + +type Locale_t = uintptr /* langinfo.h:76:14 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/libc.go b/vendor/modernc.org/libc/libc.go index 3a38e7f6b..98d7c217f 100644 --- a/vendor/modernc.org/libc/libc.go +++ b/vendor/modernc.org/libc/libc.go @@ -161,6 +161,10 @@ func X_exit(_ *TLS, status int32) { } func SetEnviron(t *TLS, env []string) { + if environInitialized { + return + } + environInitialized = true p := Xcalloc(t, 1, types.Size_t((len(env)+1)*(int(uintptrSize)))) if p == 0 { @@ -232,6 +236,8 @@ func X__builtin_copysignl(t *TLS, x, y float64) float64 { return X func X__builtin_exit(t *TLS, status int32) { Xexit(t, status) } func X__builtin_expect(t *TLS, exp, c long) long { return exp } func X__builtin_fabs(t *TLS, x float64) float64 { return Xfabs(t, x) } +func X__builtin_fabsf(t *TLS, x float32) float32 { return Xfabsf(t, x) } +func X__builtin_fabsl(t *TLS, x float64) float64 { return Xfabsl(t, x) } func X__builtin_free(t *TLS, ptr uintptr) { Xfree(t, ptr) } func X__builtin_getentropy(t *TLS, buf uintptr, n types.Size_t) int32 { return Xgetentropy(t, buf, n) } func X__builtin_huge_val(t *TLS) float64 { return math.Inf(1) } @@ -1405,3 +1411,7 @@ func Xrindex(t *TLS, s uintptr, c int32) uintptr { func Xisascii(t *TLS, c int32) int32 { return Bool32(c >= 0 && c <= 0x7f) } + +func X__builtin_isunordered(t *TLS, a, b float64) int32 { + return Bool32(math.IsNaN(a) || math.IsNaN(b)) +} diff --git a/vendor/modernc.org/libc/libc_darwin.go b/vendor/modernc.org/libc/libc_darwin.go index 1d3ded5e3..befa7aea1 100644 --- a/vendor/modernc.org/libc/libc_darwin.go +++ b/vendor/modernc.org/libc/libc_darwin.go @@ -19,6 +19,7 @@ import ( "unicode" "unsafe" + guuid "github.com/google/uuid" "golang.org/x/sys/unix" "modernc.org/libc/errno" "modernc.org/libc/fcntl" @@ -36,6 +37,7 @@ import ( "modernc.org/libc/termios" "modernc.org/libc/time" "modernc.org/libc/unistd" + "modernc.org/libc/uuid/uuid" "modernc.org/libc/wctype" ) @@ -908,42 +910,6 @@ func Xfileno(t *TLS, stream uintptr) int32 { return -1 } -// int mkstemps(char *template, int suffixlen); -func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 { - panic(todo("")) -} - -// int mkstemps(char *template, int suffixlen); -func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 { - len := uintptr(Xstrlen(t, template)) - x := template + uintptr(len-6) - uintptr(suffixlen) - for i := uintptr(0); i < 6; i++ { - if *(*byte)(unsafe.Pointer(x + i)) != 'X' { - if dmesgs { - dmesg("%v: FAIL", origin(1)) - } - t.setErrno(errno.EINVAL) - return -1 - } - } - - fd, err := tempFile(template, x) - if err != nil { - if dmesgs { - dmesg("%v: %v FAIL", origin(1), err) - } - t.setErrno(err) - return -1 - } - - return int32(fd) -} - -// int mkstemp(char *template); -func Xmkstemp(t *TLS, template uintptr) int32 { - return Xmkstemps64(t, template, 0) -} - func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { var statp uintptr if stat != nil { @@ -1214,14 +1180,16 @@ func Xfork(t *TLS) int32 { return -1 } +var emptyStr = [1]byte{} + // char *setlocale(int category, const char *locale); func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr { - return 0 //TODO + return uintptr(unsafe.Pointer(&emptyStr)) //TODO } // char *nl_langinfo(nl_item item); func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr { - panic(todo("")) + return uintptr(unsafe.Pointer(&emptyStr)) //TODO } // FILE *popen(const char *command, const char *type); @@ -2002,3 +1970,61 @@ func Xungetc(t *TLS, c int32, stream uintptr) int32 { func Xissetugid(t *TLS) int32 { panic(todo("")) } + +var progname uintptr + +// const char *getprogname(void); +func Xgetprogname(t *TLS) uintptr { + if progname != 0 { + return progname + } + + var err error + progname, err = CString(filepath.Base(os.Args[0])) + if err != nil { + t.setErrno(err) + return 0 + } + + return progname +} + +// void uuid_copy(uuid_t dst, uuid_t src); +func Xuuid_copy(t *TLS, dst, src uintptr) { + *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src)) +} + +// int uuid_parse( char *in, uuid_t uu); +func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { + r, err := guuid.Parse(GoString(in)) + if err != nil { + return -1 + } + + copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) + return 0 +} + +// struct __float2 { float __sinval; float __cosval; }; + +// struct __float2 __sincosf_stret(float); +func X__sincosf_stret(t *TLS, f float32) struct{ F__sinval, F__cosval float32 } { + panic(todo("")) +} + +// struct __double2 { double __sinval; double __cosval; }; + +// struct __double2 __sincos_stret(double); +func X__sincos_stret(t *TLS, f float64) struct{ F__sinval, F__cosval float64 } { + panic(todo("")) +} + +// struct __float2 __sincospif_stret(float); +func X__sincospif_stret(t *TLS, f float32) struct{ F__sinval, F__cosval float32 } { + panic(todo("")) +} + +// struct _double2 __sincospi_stret(double); +func X__sincospi_stret(t *TLS, f float64) struct{ F__sinval, F__cosval float64 } { + panic(todo("")) +} diff --git a/vendor/modernc.org/libc/libc_darwin_arm64.go b/vendor/modernc.org/libc/libc_darwin_arm64.go index ab1ed5c46..3864d3117 100644 --- a/vendor/modernc.org/libc/libc_darwin_arm64.go +++ b/vendor/modernc.org/libc/libc_darwin_arm64.go @@ -6,6 +6,7 @@ package libc // import "modernc.org/libc" import ( "strings" + "time" "unsafe" "golang.org/x/sys/unix" @@ -48,7 +49,7 @@ func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) (r int32) { var p uintptr var i int switch cmd { - case fcntl.F_GETLK, fcntl.F_SETLK: + case fcntl.F_GETLK, fcntl.F_SETLK, fcntl.F_SETLKW: p = *(*uintptr)(unsafe.Pointer(args)) err = unix.FcntlFlock(uintptr(fd), int(cmd), (*unix.Flock_t)(unsafe.Pointer(p))) case fcntl.F_GETFL, fcntl.F_FULLFSYNC: @@ -206,12 +207,11 @@ func Xalarm(t *TLS, seconds uint32) uint32 { // time_t time(time_t *tloc); func Xtime(t *TLS, tloc uintptr) types.Time_t { - panic(todo("")) - // n := time.Now().UTC().Unix() - // if tloc != 0 { - // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n) - // } - // return types.Time_t(n) + n := time.Now().UTC().Unix() + if tloc != 0 { + *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n) + } + return types.Time_t(n) } // // int getrlimit(int resource, struct rlimit *rlim); @@ -366,13 +366,12 @@ func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int3 // int link(const char *oldpath, const char *newpath); func Xlink(t *TLS, oldpath, newpath uintptr) int32 { - panic(todo("")) - // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 { - // t.setErrno(err) - // return -1 - // } + if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 { + t.setErrno(err) + return -1 + } - // return 0 + return 0 } // int dup2(int oldfd, int newfd); diff --git a/vendor/modernc.org/libc/libc_freebsd.go b/vendor/modernc.org/libc/libc_freebsd.go index 55fe70112..ff6578dd4 100644 --- a/vendor/modernc.org/libc/libc_freebsd.go +++ b/vendor/modernc.org/libc/libc_freebsd.go @@ -16,6 +16,7 @@ import ( gotime "time" "unsafe" + guuid "github.com/google/uuid" "golang.org/x/sys/unix" "modernc.org/libc/errno" "modernc.org/libc/fcntl" @@ -34,17 +35,13 @@ import ( "modernc.org/libc/termios" "modernc.org/libc/time" "modernc.org/libc/unistd" + "modernc.org/libc/uuid" ) var ( in6_addr_any in.In6_addr ) -type ( - long = int64 - ulong = uint64 -) - // // Keep these outside of the var block otherwise go generate will miss them. var X__stderrp = Xstdout var X__stdinp = Xstdin @@ -715,71 +712,6 @@ func Xfileno(t *TLS, stream uintptr) int32 { panic(todo("")) } -// int mkstemps(char *template, int suffixlen); -func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 { - return Xmkstemps64(t, template, suffixlen) -} - -// int mkstemps(char *template, int suffixlen); -func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 { - len := uintptr(Xstrlen(t, template)) - x := template + uintptr(len-6) - uintptr(suffixlen) - for i := uintptr(0); i < 6; i++ { - if *(*byte)(unsafe.Pointer(x + i)) != 'X' { - if dmesgs { - dmesg("%v: FAIL", origin(1)) - } - t.setErrno(errno.EINVAL) - return -1 - } - } - - fd, err := tempFile(template, x) - if err != nil { - if dmesgs { - dmesg("%v: %v FAIL", origin(1), err) - } - t.setErrno(err) - return -1 - } - - return int32(fd) -} - -// int mkstemp(char *template); -func Xmkstemp(t *TLS, template uintptr) int32 { - return Xmkstemp64(t, template) -} - -// int mkstemp(char *template); -func Xmkstemp64(t *TLS, template uintptr) int32 { - return Xmkstemps64(t, template, 0) -} - -func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { - var statp uintptr - if stat != nil { - statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{}))) - if statp == 0 { - panic("OOM") - } - - *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat - } - csp, errx := CString(path) - if errx != nil { - panic("OOM") - } - - return &fts.FTSENT{ - Ffts_info: int32(info), - Ffts_path: csp, - Ffts_pathlen: uint64(len(path)), - Ffts_statp: statp, - Ffts_errno: int32(err), - } -} - func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr { p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{}))) if p == 0 { @@ -1354,11 +1286,6 @@ func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t { panic(todo("")) } -// void endpwent(void); -func Xendpwent(t *TLS) { - // nop -} - // int __isoc99_sscanf(const char *str, const char *format, ...); func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { r := Xsscanf(t, str, format, va) @@ -1368,18 +1295,6 @@ func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { return r } -var ctimeStaticBuf [32]byte - -// char *ctime(const time_t *timep); -func Xctime(t *TLS, timep uintptr) uintptr { - return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0]))) -} - -// char *ctime_r(const time_t *timep, char *buf); -func Xctime_r(t *TLS, timep, buf uintptr) uintptr { - panic(todo("")) -} - // void __assert(const char * func, const char * file, int line, const char *expr) __dead2; func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) { X__assert_fail(t, expr, file, uint32(line), fn) @@ -1464,53 +1379,11 @@ func Xclosedir(t *TLS, dir uintptr) int32 { return r } -// DIR *opendir(const char *name); -func Xopendir(t *TLS, name uintptr) uintptr { - p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{}))) - if p == 0 { - panic("OOM") - } - - fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0)) - if fd < 0 { - if dmesgs { - dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd) - } - Xfree(t, p) - return 0 - } - - if dmesgs { - dmesg("%v: ok", origin(1)) - } - (*darwinDir)(unsafe.Pointer(p)).fd = fd - (*darwinDir)(unsafe.Pointer(p)).h = 0 - (*darwinDir)(unsafe.Pointer(p)).l = 0 - (*darwinDir)(unsafe.Pointer(p)).eof = false - return p -} - // int __xuname(int namesize, void *namebuf) func X__xuname(t *TLS, namesize int32, namebuf uintptr) int32 { return Xuname(t, namebuf) } -// int chflags(const char *path, u_int flags); -func Xchflags(t *TLS, path uintptr, flags uint64) int32 { - if err := unix.Chflags(GoString(path), int(flags)); err != nil { - if dmesgs { - dmesg("%v: %v FAIL", origin(1), err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: ok", origin(1)) - } - return 0 -} - // int pipe(int pipefd[2]); func Xpipe(t *TLS, pipefd uintptr) int32 { var a [2]int @@ -1623,3 +1496,14 @@ func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pth (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1)) return 0 } + +// int uuid_parse( char *in, uuid_t uu); +func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { + r, err := guuid.Parse(GoString(in)) + if err != nil { + return -1 + } + + copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) + return 0 +} diff --git a/vendor/modernc.org/libc/libc_freebsd_386.go b/vendor/modernc.org/libc/libc_freebsd_386.go new file mode 100644 index 000000000..f34bf2e26 --- /dev/null +++ b/vendor/modernc.org/libc/libc_freebsd_386.go @@ -0,0 +1,649 @@ +// Copyright 2021 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package libc // import "modernc.org/libc" + +import ( + "strings" + "syscall" + "unsafe" + + "golang.org/x/sys/unix" + "modernc.org/libc/fcntl" + "modernc.org/libc/fts" + "modernc.org/libc/sys/types" + "modernc.org/libc/time" + "modernc.org/libc/utime" +) + +type ( + long = int32 + ulong = uint32 +) + +// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); +func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// FILE *fopen64(const char *pathname, const char *mode); +func Xfopen64(t *TLS, pathname, mode uintptr) uintptr { + m := strings.ReplaceAll(GoString(mode), "b", "") + var flags int + switch m { + case "r": + flags = fcntl.O_RDONLY + case "r+": + flags = fcntl.O_RDWR + case "w": + flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC + case "w+": + flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC + case "a": + flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND + case "a+": + flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND + default: + panic(m) + } + fd, err := unix.Open(GoString(pathname), int(flags), 0666) + if err != nil { + if dmesgs { + dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err) + } + t.setErrno(err) + return 0 + } + + if dmesgs { + dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd) + } + if p := newFile(t, int32(fd)); p != 0 { + return p + } + + panic("OOM") +} + +// int lstat(const char *pathname, struct stat *statbuf); +func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 { + if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(pathname)) + } + return 0 +} + +// int stat(const char *pathname, struct stat *statbuf); +func Xstat64(t *TLS, pathname, statbuf uintptr) int32 { + if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(pathname)) + } + return 0 +} + +// int mkdir(const char *path, mode_t mode); +func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 { + if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(path)) + } + return 0 +} + +// int access(const char *pathname, int mode); +func Xaccess(t *TLS, pathname uintptr, mode int32) int32 { + if err := unix.Access(GoString(pathname), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) + } + return 0 +} + +// int unlink(const char *pathname); +func Xunlink(t *TLS, pathname uintptr) int32 { + if err := unix.Unlink(GoString(pathname)); err != nil { + if dmesgs { + dmesg("%v: %q: %v", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize); +func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t { + var n int + var err error + switch { + case buf == 0 || bufsize == 0: + n, err = unix.Readlink(GoString(path), nil) + default: + n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize]) + } + if err != nil { + if dmesgs { + dmesg("%v: %v FAIL", err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok") + } + return types.Ssize_t(n) +} + +// int symlink(const char *target, const char *linkpath); +func Xsymlink(t *TLS, target, linkpath uintptr) int32 { + if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int chmod(const char *pathname, mode_t mode) +func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 { + if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) + } + return 0 +} + +// time_t time(time_t *tloc); +func Xtime(t *TLS, tloc uintptr) time.Time_t { + panic(todo("")) + // n := time.Now().UTC().Unix() + // if tloc != 0 { + // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n) + // } + // return types.Time_t(n) +} + +// int utimes(const char *filename, const struct timeval times[2]); +func Xutimes(t *TLS, filename, times uintptr) int32 { + var a []unix.Timeval + if times != 0 { + a = make([]unix.Timeval, 2) + a[0] = *(*unix.Timeval)(unsafe.Pointer(times)) + a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{}))) + } + if err := unix.Utimes(GoString(filename), a); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int fstat(int fd, struct stat *statbuf); +func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 { + if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: fd %d: %v FAIL", origin(1), fd, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: fd %d: ok", origin(1), fd) + } + return 0 +} + +// off64_t lseek64(int fd, off64_t offset, int whence); +func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t { + n, err := unix.Seek(int(fd), int64(offset), int(whence)) + if err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return types.Off_t(n) +} + +func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 { + var arg uintptr + if args != 0 { + arg = *(*uintptr)(unsafe.Pointer(args)) + } + n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg) + if err != 0 { + if dmesgs { + dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n) + } + return int32(n) +} + +// int rename(const char *oldpath, const char *newpath); +func Xrename(t *TLS, oldpath, newpath uintptr) int32 { + if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int mknod(const char *pathname, mode_t mode, dev_t dev); +func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 { + panic(todo("")) + // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return 0 +} + +// int utime(const char *filename, const struct utimbuf *times); +func Xutime(t *TLS, filename, times uintptr) int32 { + var a []unix.Timeval + if times != 0 { + a = make([]unix.Timeval, 2) + a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime + a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime + } + if err := unix.Utimes(GoString(filename), a); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int chown(const char *pathname, uid_t owner, gid_t group); +func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 { + if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int link(const char *oldpath, const char *newpath); +func Xlink(t *TLS, oldpath, newpath uintptr) int32 { + panic(todo("")) + // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return 0 +} + +// int dup2(int oldfd, int newfd); +func Xdup2(t *TLS, oldfd, newfd int32) int32 { + panic(todo("")) + // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + // if err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return int32(n) +} + +// unsigned int alarm(unsigned int seconds); +func Xalarm(t *TLS, seconds uint32) uint32 { + panic(todo("")) + // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0) + // if err != 0 { + // panic(todo("")) + // } + + // return uint32(n) +} + +func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen size_t, serv uintptr, servlen size_t, flags int32) int32 { /* getnameinfo.c:125:5: */ + panic(todo("")) + //TODO bp := tls.Alloc(347) + //TODO defer tls.Free(347) + + //TODO // var ptr [78]int8 at bp, 78 + + //TODO // var buf [256]int8 at bp+78, 256 + + //TODO // var num [13]int8 at bp+334, 13 + + //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family) + //TODO var a uintptr + //TODO var scopeid uint32 + + //TODO switch af { + //TODO case 2: + //TODO a = (sa1 + 4 /* &.sin_addr */) + //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) { + //TODO return -6 + //TODO } + //TODO mkptr4(tls, bp /* &ptr[0] */, a) + //TODO scopeid = uint32(0) + //TODO break + //TODO case 10: + //TODO a = (sa1 + 8 /* &.sin6_addr */) + //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) { + //TODO return -6 + //TODO } + //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 { + //TODO mkptr6(tls, bp /* &ptr[0] */, a) + //TODO } else { + //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12))) + //TODO } + //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id + //TODO break + //TODO default: + //TODO return -6 + //TODO } + + //TODO if (node != 0) && (nodelen != 0) { + //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0) + //TODO if !((flags & 0x01) != 0) { + //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af) + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) { + //TODO Xabort(tls) //TODO- + //TODO // unsigned char query[18+PTR_MAX], reply[512]; + //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR, + //TODO // 0, 0, 0, query, sizeof query); + //TODO // query[3] = 0; /* don't need AD flag */ + //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply); + //TODO // buf[0] = 0; + //TODO // if (rlen > 0) + //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf); + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) { + //TODO if (flags & 0x08) != 0 { + //TODO return -2 + //TODO } + //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{}))) + //TODO if scopeid != 0 { + //TODO Xabort(tls) //TODO- + //TODO // char *p = 0, tmp[IF_NAMESIZE+1]; + //TODO // if (!(flags & NI_NUMERICSCOPE) && + //TODO // (IN6_IS_ADDR_LINKLOCAL(a) || + //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a))) + //TODO // p = if_indextoname(scopeid, tmp+1); + //TODO // if (!p) + //TODO // p = itoa(num, scopeid); + //TODO // *--p = '%'; + //TODO // strcat(buf, p); + //TODO } + //TODO } + //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) { + //TODO return -12 + //TODO } + //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */) + //TODO } + + //TODO if (serv != 0) && (servlen != 0) { + //TODO var p uintptr = bp + 78 /* buf */ + //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port)) + //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0) + //TODO if !((flags & 0x02) != 0) { + //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10)) + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) { + //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port)) + //TODO } + //TODO if Xstrlen(tls, p) >= size_t(servlen) { + //TODO return -12 + //TODO } + //TODO Xstrcpy(tls, serv, p) + //TODO } + + //TODO return 0 +} + +func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */ + panic(todo("")) + //TODO bp := tls.Alloc(28) + //TODO defer tls.Free(28) + + //TODO //TODO union { + //TODO //TODO struct sockaddr_in sin; + //TODO //TODO struct sockaddr_in6 sin6; + //TODO //TODO } sa = { .sin.sin_family = af }; + //TODO *(*struct { + //TODO sin sockaddr_in + //TODO _ [12]byte + //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct { + //TODO sin sockaddr_in + //TODO _ [12]byte + //TODO }{} //TODO- + //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO- + //TODO var sl socklen_t + //TODO if af == 10 { + //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{})) + //TODO } else { + //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{})) + //TODO } + //TODO var i int32 + + //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + + //TODO // Load address argument into sockaddr structure + //TODO if (af == 10) && (l == socklen_t(16)) { + //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16)) + //TODO } else if (af == 2) && (l == socklen_t(4)) { + //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4)) + //TODO } else { + //TODO *(*int32)(unsafe.Pointer(err)) = 3 + //TODO return 22 + //TODO } + + //TODO // Align buffer and check for space for pointers and ip address + //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))) + //TODO if !(i != 0) { + //TODO i = int32(unsafe.Sizeof(uintptr(0))) + //TODO } + //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) { + //TODO return 34 + //TODO } + //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))) + //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) + + //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf + //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))) + //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf + //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))) + + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf + //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l)) + //TODO buf += uintptr(l) + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0) + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) + + //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) { + //TODO case -3: + //TODO *(*int32)(unsafe.Pointer(err)) = 2 + //TODO return 11 + //TODO case -12: + //TODO return 34 + //TODO default: + //TODO fallthrough + //TODO case -10: + //TODO fallthrough + //TODO case -11: + //TODO fallthrough + //TODO case -4: + //TODO *(*int32)(unsafe.Pointer(err)) = 3 + //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls))) + //TODO case 0: + //TODO break + //TODO } + + //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af + //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l) + //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) + //TODO *(*uintptr)(unsafe.Pointer(res)) = h + //TODO return 0 +} + +// int getrlimit(int resource, struct rlimit *rlim); +func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { + var statp uintptr + if stat != nil { + statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{}))) + if statp == 0 { + panic("OOM") + } + + *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat + } + csp, errx := CString(path) + if errx != nil { + panic("OOM") + } + + return &fts.FTSENT{ + Ffts_info: int32(info), + Ffts_path: csp, + Ffts_pathlen: uint32(len(path)), + Ffts_statp: statp, + Ffts_errno: int32(err), + } +} + +// DIR *opendir(const char *name); +func Xopendir(t *TLS, name uintptr) uintptr { + p := Xmalloc(t, uint32(unsafe.Sizeof(darwinDir{}))) + if p == 0 { + panic("OOM") + } + + fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0)) + if fd < 0 { + if dmesgs { + dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd) + } + Xfree(t, p) + return 0 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + (*darwinDir)(unsafe.Pointer(p)).fd = fd + (*darwinDir)(unsafe.Pointer(p)).h = 0 + (*darwinDir)(unsafe.Pointer(p)).l = 0 + (*darwinDir)(unsafe.Pointer(p)).eof = false + return p +} + +func X__srget(t *TLS, stream uintptr) int32 { return Xgetc(t, stream) } + +// int chflags(const char *path, u_int flags); +func Xchflags(t *TLS, path uintptr, flags uint32) int32 { + if err := unix.Chflags(GoString(path), int(flags)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} diff --git a/vendor/modernc.org/libc/libc_freebsd_amd64.go b/vendor/modernc.org/libc/libc_freebsd_amd64.go index 2868e3b84..48f7fd786 100644 --- a/vendor/modernc.org/libc/libc_freebsd_amd64.go +++ b/vendor/modernc.org/libc/libc_freebsd_amd64.go @@ -6,15 +6,22 @@ package libc // import "modernc.org/libc" import ( "strings" + "syscall" "unsafe" "golang.org/x/sys/unix" "modernc.org/libc/fcntl" + "modernc.org/libc/fts" "modernc.org/libc/sys/types" "modernc.org/libc/time" "modernc.org/libc/utime" ) +type ( + long = int64 + ulong = uint64 +) + // int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 { if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 { @@ -572,3 +579,69 @@ func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { return 0 } + +func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { + var statp uintptr + if stat != nil { + statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{}))) + if statp == 0 { + panic("OOM") + } + + *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat + } + csp, errx := CString(path) + if errx != nil { + panic("OOM") + } + + return &fts.FTSENT{ + Ffts_info: int32(info), + Ffts_path: csp, + Ffts_pathlen: uint64(len(path)), + Ffts_statp: statp, + Ffts_errno: int32(err), + } +} + +// DIR *opendir(const char *name); +func Xopendir(t *TLS, name uintptr) uintptr { + p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{}))) + if p == 0 { + panic("OOM") + } + + fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0)) + if fd < 0 { + if dmesgs { + dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd) + } + Xfree(t, p) + return 0 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + (*darwinDir)(unsafe.Pointer(p)).fd = fd + (*darwinDir)(unsafe.Pointer(p)).h = 0 + (*darwinDir)(unsafe.Pointer(p)).l = 0 + (*darwinDir)(unsafe.Pointer(p)).eof = false + return p +} + +// int chflags(const char *path, u_int flags); +func Xchflags(t *TLS, path uintptr, flags uint64) int32 { + if err := unix.Chflags(GoString(path), int(flags)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} diff --git a/vendor/modernc.org/libc/libc_linux.go b/vendor/modernc.org/libc/libc_linux.go index bec2119fc..d594ab4ad 100644 --- a/vendor/modernc.org/libc/libc_linux.go +++ b/vendor/modernc.org/libc/libc_linux.go @@ -7,13 +7,10 @@ package libc // import "modernc.org/libc" import ( "encoding/hex" "fmt" - "math" - "math/rand" "os" "os/exec" "path/filepath" "runtime/debug" - "sync" "syscall" "time" "unsafe" @@ -30,7 +27,6 @@ import ( "modernc.org/libc/netinet/in" "modernc.org/libc/signal" "modernc.org/libc/stdio" - "modernc.org/libc/stdlib" "modernc.org/libc/sys/socket" "modernc.org/libc/sys/stat" "modernc.org/libc/sys/types" @@ -685,61 +681,6 @@ func Xfileno(t *TLS, stream uintptr) int32 { return -1 } -// int mkstemps(char *template, int suffixlen); -func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 { - return Xmkstemps64(t, template, suffixlen) -} - -// int mkstemps(char *template, int suffixlen); -func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 { - len := uintptr(Xstrlen(t, template)) - x := template + uintptr(len-6) - uintptr(suffixlen) - for i := uintptr(0); i < 6; i++ { - if *(*byte)(unsafe.Pointer(x + i)) != 'X' { - t.setErrno(errno.EINVAL) - return -1 - } - } - - fd, err := tempFile(template, x, 0) - if err != 0 { - t.setErrno(err) - return -1 - } - - return int32(fd) -} - -// int mkostemp(char *template, int flags); -func Xmkostemp(t *TLS, template uintptr, flags int32) int32 { - len := uintptr(Xstrlen(t, template)) - x := template + uintptr(len-6) - for i := uintptr(0); i < 6; i++ { - if *(*byte)(unsafe.Pointer(x + i)) != 'X' { - t.setErrno(errno.EINVAL) - return -1 - } - } - - fd, err := tempFile(template, x, flags) - if err != 0 { - t.setErrno(err) - return -1 - } - - return int32(fd) -} - -// int mkstemp(char *template); -func Xmkstemp(t *TLS, template uintptr) int32 { - return Xmkstemp64(t, template) -} - -// int mkstemp(char *template); -func Xmkstemp64(t *TLS, template uintptr) int32 { - return Xmkstemps64(t, template, 0) -} - func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { var statp uintptr if stat != nil { @@ -950,11 +891,6 @@ func Xstrerror(t *TLS, errnum int32) uintptr { return uintptr(unsafe.Pointer(&strerrorBuf[0])) } -// int strerror_r(int errnum, char *buf, size_t buflen); -func Xstrerror_r(t *TLS, errnum int32, buf uintptr, buflen size_t) int32 { - panic(todo("")) -} - // void *dlopen(const char *filename, int flags); func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr { panic(todo("%q", GoString(filename))) @@ -1377,11 +1313,6 @@ func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t { return types.Ssize_t(n) } -// void endpwent(void); -func Xendpwent(t *TLS) { - // nop -} - // int __isoc99_sscanf(const char *str, const char *format, ...); func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { r := Xsscanf(t, str, format, va) @@ -1391,21 +1322,21 @@ func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { return r } -var ctimeStaticBuf [32]byte - -// char *ctime(const time_t *timep); -func Xctime(t *TLS, timep uintptr) uintptr { - return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0]))) -} - -// char *ctime_r(const time_t *timep, char *buf); -func Xctime_r(t *TLS, timep, buf uintptr) uintptr { - ut := *(*unix.Time_t)(unsafe.Pointer(timep)) - tm := time.Unix(int64(ut), 0).Local() - s := tm.Format(time.ANSIC) + "\n\x00" - copy((*RawMem)(unsafe.Pointer(buf))[:26:26], s) - return buf -} +// var ctimeStaticBuf [32]byte +// +// // char *ctime(const time_t *timep); +// func Xctime(t *TLS, timep uintptr) uintptr { +// return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0]))) +// } +// +// // char *ctime_r(const time_t *timep, char *buf); +// func Xctime_r(t *TLS, timep, buf uintptr) uintptr { +// ut := *(*unix.Time_t)(unsafe.Pointer(timep)) +// tm := time.Unix(int64(ut), 0).Local() +// s := tm.Format(time.ANSIC) + "\n\x00" +// copy((*RawMem)(unsafe.Pointer(buf))[:26:26], s) +// return buf +// } // ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); func Xpwrite(t *TLS, fd int32, buf uintptr, count types.Size_t, offset types.Off_t) types.Ssize_t { @@ -1464,16 +1395,20 @@ func Xposix_fadvise(t *TLS, fd int32, offset, len types.Off_t, advice int32) int return 0 } -// void uuid_generate_random(uuid_t out); -func Xuuid_generate_random(t *TLS, out uintptr) { - panic(todo("")) +// int fgetc(FILE *stream); +func Xfgetc(t *TLS, stream uintptr) int32 { + fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_fileno) + var buf [1]byte + if n, _ := unix.Read(fd, buf[:]); n != 0 { + return int32(buf[0]) + } + + return stdio.EOF } -// void uuid_unparse(uuid_t uu, char *out); -func Xuuid_unparse(t *TLS, uu, out uintptr) { - s := (*guuid.UUID)(unsafe.Pointer(uu)).String() - copy((*RawMem)(unsafe.Pointer(out))[:], s) - *(*byte)(unsafe.Pointer(out + uintptr(len(s)))) = 0 +// void uuid_copy(uuid_t dst, uuid_t src); +func Xuuid_copy(t *TLS, dst, src uintptr) { + *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src)) } // int uuid_parse( char *in, uuid_t uu); @@ -1486,61 +1421,3 @@ func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) return 0 } - -// The initstate_r() function is like initstate(3) except that it initializes -// the state in the object pointed to by buf, rather than initializing the -// global state variable. Before calling this function, the buf.state field -// must be initialized to NULL. The initstate_r() function records a pointer -// to the statebuf argument inside the structure pointed to by buf. Thus, -// state‐ buf should not be deallocated so long as buf is still in use. (So, -// statebuf should typically be allocated as a static variable, or allocated on -// the heap using malloc(3) or similar.) -// -// char *initstate_r(unsigned int seed, char *statebuf, size_t statelen, struct random_data *buf); -func Xinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen types.Size_t, buf uintptr) int32 { - if buf == 0 { - panic(todo("")) - } - - randomDataMu.Lock() - - defer randomDataMu.Unlock() - - randomData[buf] = rand.New(rand.NewSource(int64(seed))) - return 0 -} - -var ( - randomData = map[uintptr]*rand.Rand{} - randomDataMu sync.Mutex -) - -// int random_r(struct random_data *buf, int32_t *result); -func Xrandom_r(t *TLS, buf, result uintptr) int32 { - randomDataMu.Lock() - - defer randomDataMu.Unlock() - - mr := randomData[buf] - if stdlib.RAND_MAX != math.MaxInt32 { - panic(todo("")) - } - *(*int32)(unsafe.Pointer(result)) = mr.Int31() - return 0 -} - -// void uuid_copy(uuid_t dst, uuid_t src); -func Xuuid_copy(t *TLS, dst, src uintptr) { - *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src)) -} - -// int fgetc(FILE *stream); -func Xfgetc(t *TLS, stream uintptr) int32 { - fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_fileno) - var buf [1]byte - if n, _ := unix.Read(fd, buf[:]); n != 0 { - return int32(buf[0]) - } - - return stdio.EOF -} diff --git a/vendor/modernc.org/libc/libc_netbsd.go b/vendor/modernc.org/libc/libc_netbsd.go index aa476e02c..978c5955e 100644 --- a/vendor/modernc.org/libc/libc_netbsd.go +++ b/vendor/modernc.org/libc/libc_netbsd.go @@ -16,6 +16,7 @@ import ( gotime "time" "unsafe" + guuid "github.com/google/uuid" "golang.org/x/sys/unix" "modernc.org/libc/errno" "modernc.org/libc/fcntl" @@ -32,6 +33,7 @@ import ( "modernc.org/libc/termios" "modernc.org/libc/time" "modernc.org/libc/unistd" + "modernc.org/libc/uuid" ) var ( @@ -751,47 +753,6 @@ func Xfileno(t *TLS, stream uintptr) int32 { panic(todo("")) } -// int mkstemps(char *template, int suffixlen); -func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 { - return Xmkstemps64(t, template, suffixlen) -} - -// int mkstemps(char *template, int suffixlen); -func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 { - len := uintptr(Xstrlen(t, template)) - x := template + uintptr(len-6) - uintptr(suffixlen) - for i := uintptr(0); i < 6; i++ { - if *(*byte)(unsafe.Pointer(x + i)) != 'X' { - if dmesgs { - dmesg("%v: FAIL", origin(1)) - } - t.setErrno(errno.EINVAL) - return -1 - } - } - - fd, err := tempFile(template, x) - if err != nil { - if dmesgs { - dmesg("%v: %v FAIL", origin(1), err) - } - t.setErrno(err) - return -1 - } - - return int32(fd) -} - -// int mkstemp(char *template); -func Xmkstemp(t *TLS, template uintptr) int32 { - return Xmkstemp64(t, template) -} - -// int mkstemp(char *template); -func Xmkstemp64(t *TLS, template uintptr) int32 { - return Xmkstemps64(t, template, 0) -} - func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { var statp uintptr if stat != nil { @@ -1391,11 +1352,6 @@ func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t { panic(todo("")) } -// void endpwent(void); -func Xendpwent(t *TLS) { - // nop -} - // int __isoc99_sscanf(const char *str, const char *format, ...); func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { r := Xsscanf(t, str, format, va) @@ -1405,18 +1361,6 @@ func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { return r } -var ctimeStaticBuf [32]byte - -// char *ctime(const time_t *timep); -func Xctime(t *TLS, timep uintptr) uintptr { - return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0]))) -} - -// char *ctime_r(const time_t *timep, char *buf); -func Xctime_r(t *TLS, timep, buf uintptr) uintptr { - panic(todo("")) -} - // void __assert(const char * func, const char * file, int line, const char *expr) __dead2; func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) { X__assert_fail(t, expr, file, uint32(line), fn) @@ -1637,3 +1581,14 @@ func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pth (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1)) return 0 } + +// int uuid_parse( char *in, uuid_t uu); +func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { + r, err := guuid.Parse(GoString(in)) + if err != nil { + return -1 + } + + copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) + return 0 +} diff --git a/vendor/modernc.org/libc/libc_openbsd.go b/vendor/modernc.org/libc/libc_openbsd.go new file mode 100644 index 000000000..0ad1a38cb --- /dev/null +++ b/vendor/modernc.org/libc/libc_openbsd.go @@ -0,0 +1,1633 @@ +// Copyright 2020 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package libc // import "modernc.org/libc" + +import ( + "fmt" + "io" + "os" + "os/exec" + "path/filepath" + "runtime/debug" + "strings" + "syscall" + gotime "time" + "unsafe" + + guuid "github.com/google/uuid" + "golang.org/x/sys/unix" + "modernc.org/libc/errno" + "modernc.org/libc/fcntl" + "modernc.org/libc/fts" + gonetdb "modernc.org/libc/honnef.co/go/netdb" + "modernc.org/libc/langinfo" + "modernc.org/libc/limits" + "modernc.org/libc/netdb" + "modernc.org/libc/netinet/in" + "modernc.org/libc/stdio" + "modernc.org/libc/sys/socket" + "modernc.org/libc/sys/stat" + "modernc.org/libc/sys/types" + "modernc.org/libc/termios" + "modernc.org/libc/time" + "modernc.org/libc/unistd" + "modernc.org/libc/uuid" +) + +var ( + in6_addr_any in.In6_addr +) + +type ( + long = int64 + ulong = uint64 +) + +// // Keep these outside of the var block otherwise go generate will miss them. +var X__stderrp = Xstdout +var X__stdinp = Xstdin +var X__stdoutp = Xstdout +var X__sF [3]stdio.FILE +var X_tolower_tab_ = Xmalloc(nil, 2*65537) +var X_toupper_tab_ = Xmalloc(nil, 2*65537) + +func init() { + for c := rune(0); c < 0xffff; c++ { + y := c + s := strings.ToLower(string(c)) + a := []rune(s) + if len(a) != 0 { + y = a[0] + } + (*[65536]uint16)(unsafe.Pointer(X_tolower_tab_))[c+1] = uint16(y) + y = c + s = strings.ToUpper(string(c)) + a = []rune(s) + if len(a) != 0 { + y = a[0] + } + (*[65536]uint16)(unsafe.Pointer(X_toupper_tab_))[c+1] = uint16(y) + } +} + +// include/stdio.h:486:extern int __isthreaded; +var X__isthreaded int32 + +// lib/libc/locale/mblocal.h:62: int __mb_sb_limit; +var X__mb_sb_limit int32 = 128 // UTF-8 + +// include/runetype.h:94:extern _Thread_local const _RuneLocale *_ThreadRuneLocale; +var X_ThreadRuneLocale uintptr //TODO initialize and implement _Thread_local semantics. + +// include/xlocale/_ctype.h:54:_RuneLocale *__runes_for_locale(locale_t, int*); +func X__runes_for_locale(t *TLS, l locale_t, p uintptr) uintptr { + panic(todo("")) +} + +type file uintptr + +func (f file) fd() int32 { return int32((*stdio.FILE)(unsafe.Pointer(f)).F_file) } +func (f file) setFd(fd int32) { (*stdio.FILE)(unsafe.Pointer(f)).F_file = int16(fd) } + +func (f file) err() bool { + return (*stdio.FILE)(unsafe.Pointer(f)).F_flags&1 != 0 +} + +func (f file) setErr() { + (*stdio.FILE)(unsafe.Pointer(f)).F_flags |= 1 +} + +func (f file) close(t *TLS) int32 { + fd := f.fd() + r := Xclose(t, fd) + switch fd { + case unistd.STDIN_FILENO, unistd.STDOUT_FILENO, unistd.STDERR_FILENO: + X__sF[fd] = stdio.FILE{} + default: + Xfree(t, uintptr(f)) + } + if r < 0 { + return stdio.EOF + } + + return 0 +} + +func newFile(t *TLS, fd int32) uintptr { + var p uintptr + switch fd { + case unistd.STDIN_FILENO: + p = uintptr(unsafe.Pointer(&X__sF[0])) + case unistd.STDOUT_FILENO: + p = uintptr(unsafe.Pointer(&X__sF[1])) + case unistd.STDERR_FILENO: + p = uintptr(unsafe.Pointer(&X__sF[2])) + default: + if p = Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(stdio.FILE{}))); p == 0 { + return 0 + } + } + file(p).setFd(fd) + return p +} + +func fwrite(fd int32, b []byte) (int, error) { + if fd == unistd.STDOUT_FILENO { + return write(b) + } + + // if dmesgs { + // dmesg("%v: fd %v: %s", origin(1), fd, b) + // } + return unix.Write(int(fd), b) //TODO use Xwrite +} + +// unsigned long ___runetype(__ct_rune_t) __pure; +func X___runetype(t *TLS, x int32) ulong { + panic(todo("")) +} + +// int fprintf(FILE *stream, const char *format, ...); +func Xfprintf(t *TLS, stream, format, args uintptr) int32 { + n, _ := fwrite(int32((*stdio.FILE)(unsafe.Pointer(stream)).F_file), printf(format, args)) + return int32(n) +} + +// int usleep(useconds_t usec); +func Xusleep(t *TLS, usec uint32) int32 { + gotime.Sleep(gotime.Microsecond * gotime.Duration(usec)) + return 0 +} + +// int getrusage(int who, struct rusage *usage); +func Xgetrusage(t *TLS, who int32, usage uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_GETRUSAGE, uintptr(who), usage, 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int fgetc(FILE *stream); +func Xfgetc(t *TLS, stream uintptr) int32 { + fd := int((*stdio.FILE)(unsafe.Pointer(stream)).F_file) + var buf [1]byte + if n, _ := unix.Read(fd, buf[:]); n != 0 { + return int32(buf[0]) + } + + return stdio.EOF +} + +// int lstat(const char *pathname, struct stat *statbuf); +func Xlstat(t *TLS, pathname, statbuf uintptr) int32 { + return Xlstat64(t, pathname, statbuf) +} + +// int stat(const char *pathname, struct stat *statbuf); +func Xstat(t *TLS, pathname, statbuf uintptr) int32 { + return Xstat64(t, pathname, statbuf) +} + +// int chdir(const char *path); +func Xchdir(t *TLS, path uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_CHDIR, path, 0, 0); err != 0 { + t.setErrno(err) + return -1 + } + + // if dmesgs { + // dmesg("%v: %q: ok", origin(1), GoString(path)) + // } + return 0 +} + +var localtime time.Tm + +// struct tm *localtime(const time_t *timep); +func Xlocaltime(_ *TLS, timep uintptr) uintptr { + loc := gotime.Local + if r := getenv(Environ(), "TZ"); r != 0 { + zone, off := parseZone(GoString(r)) + loc = gotime.FixedZone(zone, -off) + } + ut := *(*time.Time_t)(unsafe.Pointer(timep)) + t := gotime.Unix(int64(ut), 0).In(loc) + localtime.Ftm_sec = int32(t.Second()) + localtime.Ftm_min = int32(t.Minute()) + localtime.Ftm_hour = int32(t.Hour()) + localtime.Ftm_mday = int32(t.Day()) + localtime.Ftm_mon = int32(t.Month() - 1) + localtime.Ftm_year = int32(t.Year() - 1900) + localtime.Ftm_wday = int32(t.Weekday()) + localtime.Ftm_yday = int32(t.YearDay()) + localtime.Ftm_isdst = Bool32(isTimeDST(t)) + return uintptr(unsafe.Pointer(&localtime)) +} + +// struct tm *localtime_r(const time_t *timep, struct tm *result); +func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr { + loc := gotime.Local + if r := getenv(Environ(), "TZ"); r != 0 { + zone, off := parseZone(GoString(r)) + loc = gotime.FixedZone(zone, -off) + } + ut := *(*time.Time_t)(unsafe.Pointer(timep)) + t := gotime.Unix(int64(ut), 0).In(loc) + (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_min = int32(t.Minute()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_hour = int32(t.Hour()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_mday = int32(t.Day()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_mon = int32(t.Month() - 1) + (*time.Tm)(unsafe.Pointer(result)).Ftm_year = int32(t.Year() - 1900) + (*time.Tm)(unsafe.Pointer(result)).Ftm_wday = int32(t.Weekday()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_yday = int32(t.YearDay()) + (*time.Tm)(unsafe.Pointer(result)).Ftm_isdst = Bool32(isTimeDST(t)) + return result +} + +// int open(const char *pathname, int flags, ...); +func Xopen(t *TLS, pathname uintptr, flags int32, args uintptr) int32 { + return Xopen64(t, pathname, flags, args) +} + +// int open(const char *pathname, int flags, ...); +func Xopen64(t *TLS, pathname uintptr, flags int32, args uintptr) int32 { + var mode types.Mode_t + if args != 0 { + mode = (types.Mode_t)(VaUint32(&args)) + } + fdcwd := fcntl.AT_FDCWD + n, _, err := unix.Syscall6(unix.SYS_OPENAT, uintptr(fdcwd), pathname, uintptr(flags), uintptr(mode), 0, 0) + if err != 0 { + // if dmesgs { + // dmesg("%v: %q %#x: %v", origin(1), GoString(pathname), flags, err) + // } + t.setErrno(err) + return -1 + } + + // if dmesgs { + // dmesg("%v: %q flags %#x mode %#o: fd %v", origin(1), GoString(pathname), flags, mode, n) + // } + return int32(n) +} + +// off_t lseek(int fd, off_t offset, int whence); +func Xlseek(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t { + return types.Off_t(Xlseek64(t, fd, offset, whence)) +} + +func whenceStr(whence int32) string { + panic(todo("")) +} + +var fsyncStatbuf stat.Stat + +// int fsync(int fd); +func Xfsync(t *TLS, fd int32) int32 { + if noFsync { + // Simulate -DSQLITE_NO_SYNC for sqlite3 testfixture, see function full_sync in sqlite3.c + return Xfstat(t, fd, uintptr(unsafe.Pointer(&fsyncStatbuf))) + } + + if _, _, err := unix.Syscall(unix.SYS_FSYNC, uintptr(fd), 0, 0); err != 0 { + t.setErrno(err) + return -1 + } + + // if dmesgs { + // dmesg("%v: %d: ok", origin(1), fd) + // } + return 0 +} + +// long sysconf(int name); +func Xsysconf(t *TLS, name int32) long { + switch name { + case unistd.X_SC_PAGESIZE: + return long(unix.Getpagesize()) + case unistd.X_SC_GETPW_R_SIZE_MAX: + return -1 + case unistd.X_SC_GETGR_R_SIZE_MAX: + return -1 + } + + panic(todo("", name)) +} + +// int close(int fd); +func Xclose(t *TLS, fd int32) int32 { + if _, _, err := unix.Syscall(unix.SYS_CLOSE, uintptr(fd), 0, 0); err != 0 { + t.setErrno(err) + return -1 + } + + // if dmesgs { + // dmesg("%v: %d: ok", origin(1), fd) + // } + return 0 +} + +// char *getcwd(char *buf, size_t size); +func Xgetcwd(t *TLS, buf uintptr, size types.Size_t) uintptr { + if _, err := unix.Getcwd((*RawMem)(unsafe.Pointer(buf))[:size:size]); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return 0 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return buf +} + +// int fstat(int fd, struct stat *statbuf); +func Xfstat(t *TLS, fd int32, statbuf uintptr) int32 { + return Xfstat64(t, fd, statbuf) +} + +// int ftruncate(int fd, off_t length); +func Xftruncate(t *TLS, fd int32, length types.Off_t) int32 { + if err := unix.Ftruncate(int(fd), int64(length)); err != nil { + if dmesgs { + dmesg("%v: fd %d: %v FAIL", origin(1), fd, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %d %#x: ok", origin(1), fd, length) + } + return 0 +} + +// int fcntl(int fd, int cmd, ... /* arg */ ); +func Xfcntl(t *TLS, fd, cmd int32, args uintptr) int32 { + return Xfcntl64(t, fd, cmd, args) +} + +// ssize_t read(int fd, void *buf, size_t count); +func Xread(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t { + n, _, err := unix.Syscall(unix.SYS_READ, uintptr(fd), buf, uintptr(count)) + if err != 0 { + t.setErrno(err) + return -1 + } + + // if dmesgs { + // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n)))) + // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n) + // } + return types.Ssize_t(n) +} + +// ssize_t write(int fd, const void *buf, size_t count); +func Xwrite(t *TLS, fd int32, buf uintptr, count types.Size_t) types.Ssize_t { + const retry = 5 + var err syscall.Errno + for i := 0; i < retry; i++ { + var n uintptr + switch n, _, err = unix.Syscall(unix.SYS_WRITE, uintptr(fd), buf, uintptr(count)); err { + case 0: + // if dmesgs { + // // dmesg("%v: %d %#x: %#x\n%s", origin(1), fd, count, n, hex.Dump(GoBytes(buf, int(n)))) + // dmesg("%v: %d %#x: %#x", origin(1), fd, count, n) + // } + return types.Ssize_t(n) + case errno.EAGAIN: + // nop + } + } + + // if dmesgs { + // dmesg("%v: fd %v, count %#x: %v", origin(1), fd, count, err) + // } + t.setErrno(err) + return -1 +} + +// int fchmod(int fd, mode_t mode); +func Xfchmod(t *TLS, fd int32, mode types.Mode_t) int32 { + if _, _, err := unix.Syscall(unix.SYS_FCHMOD, uintptr(fd), uintptr(mode), 0); err != 0 { + t.setErrno(err) + return -1 + } + + // if dmesgs { + // dmesg("%v: %d %#o: ok", origin(1), fd, mode) + // } + return 0 +} + +// int fchown(int fd, uid_t owner, gid_t group); +func Xfchown(t *TLS, fd int32, owner types.Uid_t, group types.Gid_t) int32 { + if _, _, err := unix.Syscall(unix.SYS_FCHOWN, uintptr(fd), uintptr(owner), uintptr(group)); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// uid_t geteuid(void); +func Xgeteuid(t *TLS) types.Uid_t { + n, _, _ := unix.Syscall(unix.SYS_GETEUID, 0, 0, 0) + return types.Uid_t(n) +} + +// int munmap(void *addr, size_t length); +func Xmunmap(t *TLS, addr uintptr, length types.Size_t) int32 { + if _, _, err := unix.Syscall(unix.SYS_MUNMAP, addr, uintptr(length), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int gettimeofday(struct timeval *tv, struct timezone *tz); +func Xgettimeofday(t *TLS, tv, tz uintptr) int32 { + if tz != 0 { + panic(todo("")) + } + + var tvs unix.Timeval + err := unix.Gettimeofday(&tvs) + if err != nil { + t.setErrno(err) + return -1 + } + + *(*unix.Timeval)(unsafe.Pointer(tv)) = tvs + return 0 +} + +// int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); +func Xgetsockopt(t *TLS, sockfd, level, optname int32, optval, optlen uintptr) int32 { + if _, _, err := unix.Syscall6(unix.SYS_GETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, optlen, 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); +func Xsetsockopt(t *TLS, sockfd, level, optname int32, optval uintptr, optlen socket.Socklen_t) int32 { + if _, _, err := unix.Syscall6(unix.SYS_SETSOCKOPT, uintptr(sockfd), uintptr(level), uintptr(optname), optval, uintptr(optlen), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int ioctl(int fd, unsigned long request, ...); +func Xioctl(t *TLS, fd int32, request ulong, va uintptr) int32 { + var argp uintptr + if va != 0 { + argp = VaUintptr(&va) + } + n, _, err := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), uintptr(request), argp) + if err != 0 { + t.setErrno(err) + return -1 + } + + return int32(n) +} + +// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +func Xgetsockname(t *TLS, sockfd int32, addr, addrlen uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_GETSOCKNAME, uintptr(sockfd), addr, addrlen); err != 0 { + // if dmesgs { + // dmesg("%v: fd %v: %v", origin(1), sockfd, err) + // } + t.setErrno(err) + return -1 + } + + return 0 +} + +// int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); +func Xselect(t *TLS, nfds int32, readfds, writefds, exceptfds, timeout uintptr) int32 { + n, err := unix.Select( + int(nfds), + (*unix.FdSet)(unsafe.Pointer(readfds)), + (*unix.FdSet)(unsafe.Pointer(writefds)), + (*unix.FdSet)(unsafe.Pointer(exceptfds)), + (*unix.Timeval)(unsafe.Pointer(timeout)), + ) + if err != nil { + t.setErrno(err) + return -1 + } + + return int32(n) +} + +// int mkfifo(const char *pathname, mode_t mode); +func Xmkfifo(t *TLS, pathname uintptr, mode types.Mode_t) int32 { + panic(todo("")) +} + +// mode_t umask(mode_t mask); +func Xumask(t *TLS, mask types.Mode_t) types.Mode_t { + n, _, _ := unix.Syscall(unix.SYS_UMASK, uintptr(mask), 0, 0) + return types.Mode_t(n) +} + +// int execvp(const char *file, char *const argv[]); +func Xexecvp(t *TLS, file, argv uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_EXECVE, file, argv, Environ()); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// pid_t waitpid(pid_t pid, int *wstatus, int options); +func Xwaitpid(t *TLS, pid types.Pid_t, wstatus uintptr, optname int32) types.Pid_t { + n, _, err := unix.Syscall6(unix.SYS_WAIT4, uintptr(pid), wstatus, uintptr(optname), 0, 0, 0) + if err != 0 { + t.setErrno(err) + return -1 + } + + return types.Pid_t(n) +} + +// int uname(struct utsname *buf); +func Xuname(t *TLS, buf uintptr) int32 { + if err := unix.Uname((*unix.Utsname)(unsafe.Pointer(buf))); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// ssize_t recv(int sockfd, void *buf, size_t len, int flags); +func Xrecv(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t { + n, _, err := unix.Syscall6(unix.SYS_RECVFROM, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0) + if err != 0 { + t.setErrno(err) + return -1 + } + + return types.Ssize_t(n) +} + +// ssize_t send(int sockfd, const void *buf, size_t len, int flags); +func Xsend(t *TLS, sockfd int32, buf uintptr, len types.Size_t, flags int32) types.Ssize_t { + n, _, err := unix.Syscall6(unix.SYS_SENDTO, uintptr(sockfd), buf, uintptr(len), uintptr(flags), 0, 0) + if err != 0 { + t.setErrno(err) + return -1 + } + + return types.Ssize_t(n) +} + +// int shutdown(int sockfd, int how); +func Xshutdown(t *TLS, sockfd, how int32) int32 { + if _, _, err := unix.Syscall(unix.SYS_SHUTDOWN, uintptr(sockfd), uintptr(how), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +func Xgetpeername(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_GETPEERNAME, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int socket(int domain, int type, int protocol); +func Xsocket(t *TLS, domain, type1, protocol int32) int32 { + n, _, err := unix.Syscall(unix.SYS_SOCKET, uintptr(domain), uintptr(type1), uintptr(protocol)) + if err != 0 { + t.setErrno(err) + return -1 + } + + return int32(n) +} + +// int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +func Xbind(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 { + n, _, err := unix.Syscall(unix.SYS_BIND, uintptr(sockfd), addr, uintptr(addrlen)) + if err != 0 { + t.setErrno(err) + return -1 + } + + return int32(n) +} + +// int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +func Xconnect(t *TLS, sockfd int32, addr uintptr, addrlen uint32) int32 { + if _, _, err := unix.Syscall(unix.SYS_CONNECT, uintptr(sockfd), addr, uintptr(addrlen)); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int listen(int sockfd, int backlog); +func Xlisten(t *TLS, sockfd, backlog int32) int32 { + if _, _, err := unix.Syscall(unix.SYS_LISTEN, uintptr(sockfd), uintptr(backlog), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +func Xaccept(t *TLS, sockfd int32, addr uintptr, addrlen uintptr) int32 { + panic(todo("")) + // n, _, err := unix.Syscall6(unix.SYS_ACCEPT4, uintptr(sockfd), addr, uintptr(addrlen), 0, 0, 0) + // if err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return int32(n) +} + +// int getrlimit(int resource, struct rlimit *rlim); +func Xgetrlimit(t *TLS, resource int32, rlim uintptr) int32 { + return Xgetrlimit64(t, resource, rlim) +} + +// int setrlimit(int resource, const struct rlimit *rlim); +func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 { + return Xsetrlimit64(t, resource, rlim) +} + +// int setrlimit(int resource, const struct rlimit *rlim); +func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// uid_t getuid(void); +func Xgetuid(t *TLS) types.Uid_t { + return types.Uid_t(os.Getuid()) +} + +// pid_t getpid(void); +func Xgetpid(t *TLS) int32 { + return int32(os.Getpid()) +} + +// int system(const char *command); +func Xsystem(t *TLS, command uintptr) int32 { + s := GoString(command) + if command == 0 { + panic(todo("")) + } + + cmd := exec.Command("sh", "-c", s) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + ps := err.(*exec.ExitError) + return int32(ps.ExitCode()) + } + + return 0 +} + +// int setvbuf(FILE *stream, char *buf, int mode, size_t size); +func Xsetvbuf(t *TLS, stream, buf uintptr, mode int32, size types.Size_t) int32 { + return 0 //TODO +} + +// int raise(int sig); +func Xraise(t *TLS, sig int32) int32 { + panic(todo("")) +} + +// int backtrace(void **buffer, int size); +func Xbacktrace(t *TLS, buf uintptr, size int32) int32 { + panic(todo("")) +} + +// void backtrace_symbols_fd(void *const *buffer, int size, int fd); +func Xbacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) { + panic(todo("")) +} + +// int fileno(FILE *stream); +func Xfileno(t *TLS, stream uintptr) int32 { + panic(todo("")) +} + +func newFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) (r *fts.FTSENT) { + var statp uintptr + if stat != nil { + statp = Xmalloc(t, types.Size_t(unsafe.Sizeof(unix.Stat_t{}))) + if statp == 0 { + panic("OOM") + } + + *(*unix.Stat_t)(unsafe.Pointer(statp)) = *stat + } + csp, errx := CString(path) + if errx != nil { + panic("OOM") + } + + return &fts.FTSENT{ + Ffts_info: uint16(info), + Ffts_path: csp, + Ffts_pathlen: uint64(len(path)), + Ffts_statp: statp, + Ffts_errno: int32(err), + } +} + +func newCFtsent(t *TLS, info int, path string, stat *unix.Stat_t, err syscall.Errno) uintptr { + p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(fts.FTSENT{}))) + if p == 0 { + panic("OOM") + } + + *(*fts.FTSENT)(unsafe.Pointer(p)) = *newFtsent(t, info, path, stat, err) + return p +} + +func ftsentClose(t *TLS, p uintptr) { + Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_path) + Xfree(t, (*fts.FTSENT)(unsafe.Pointer(p)).Ffts_statp) +} + +type ftstream struct { + s []uintptr + x int +} + +func (f *ftstream) close(t *TLS) { + for _, p := range f.s { + ftsentClose(t, p) + Xfree(t, p) + } + *f = ftstream{} +} + +// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **)); +func Xfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr { + return Xfts64_open(t, path_argv, options, compar) +} + +// FTS *fts_open(char * const *path_argv, int options, int (*compar)(const FTSENT **, const FTSENT **)); +func Xfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr { + f := &ftstream{} + + var walk func(string) + walk = func(path string) { + var fi os.FileInfo + var err error + switch { + case options&fts.FTS_LOGICAL != 0: + fi, err = os.Stat(path) + case options&fts.FTS_PHYSICAL != 0: + fi, err = os.Lstat(path) + default: + panic(todo("")) + } + + if err != nil { + return + } + + var statp *unix.Stat_t + if options&fts.FTS_NOSTAT == 0 { + var stat unix.Stat_t + switch { + case options&fts.FTS_LOGICAL != 0: + if err := unix.Stat(path, &stat); err != nil { + panic(todo("")) + } + case options&fts.FTS_PHYSICAL != 0: + if err := unix.Lstat(path, &stat); err != nil { + panic(todo("")) + } + default: + panic(todo("")) + } + + statp = &stat + } + + out: + switch { + case fi.IsDir(): + f.s = append(f.s, newCFtsent(t, fts.FTS_D, path, statp, 0)) + g, err := os.Open(path) + switch x := err.(type) { + case nil: + // ok + case *os.PathError: + f.s = append(f.s, newCFtsent(t, fts.FTS_DNR, path, statp, errno.EACCES)) + break out + default: + panic(todo("%q: %v %T", path, x, x)) + } + + names, err := g.Readdirnames(-1) + g.Close() + if err != nil { + panic(todo("")) + } + + for _, name := range names { + walk(path + "/" + name) + if f == nil { + break out + } + } + + f.s = append(f.s, newCFtsent(t, fts.FTS_DP, path, statp, 0)) + default: + info := fts.FTS_F + if fi.Mode()&os.ModeSymlink != 0 { + info = fts.FTS_SL + } + switch { + case statp != nil: + f.s = append(f.s, newCFtsent(t, info, path, statp, 0)) + case options&fts.FTS_NOSTAT != 0: + f.s = append(f.s, newCFtsent(t, fts.FTS_NSOK, path, nil, 0)) + default: + panic(todo("")) + } + } + } + + for { + p := *(*uintptr)(unsafe.Pointer(path_argv)) + if p == 0 { + if f == nil { + return 0 + } + + if compar != 0 { + panic(todo("")) + } + + return addObject(f) + } + + walk(GoString(p)) + path_argv += unsafe.Sizeof(uintptr(0)) + } +} + +// FTSENT *fts_read(FTS *ftsp); +func Xfts_read(t *TLS, ftsp uintptr) uintptr { + return Xfts64_read(t, ftsp) +} + +// FTSENT *fts_read(FTS *ftsp); +func Xfts64_read(t *TLS, ftsp uintptr) uintptr { + f := getObject(ftsp).(*ftstream) + if f.x == len(f.s) { + t.setErrno(0) + return 0 + } + + r := f.s[f.x] + if e := (*fts.FTSENT)(unsafe.Pointer(r)).Ffts_errno; e != 0 { + t.setErrno(e) + } + f.x++ + return r +} + +// int fts_close(FTS *ftsp); +func Xfts_close(t *TLS, ftsp uintptr) int32 { + return Xfts64_close(t, ftsp) +} + +// int fts_close(FTS *ftsp); +func Xfts64_close(t *TLS, ftsp uintptr) int32 { + getObject(ftsp).(*ftstream).close(t) + removeObject(ftsp) + return 0 +} + +// void tzset (void); +func Xtzset(t *TLS) { + //TODO +} + +var strerrorBuf [100]byte + +// char *strerror(int errnum); +func Xstrerror(t *TLS, errnum int32) uintptr { + if dmesgs { + dmesg("%v: %v\n%s", origin(1), errnum, debug.Stack()) + } + copy(strerrorBuf[:], fmt.Sprintf("strerror(%d)\x00", errnum)) + return uintptr(unsafe.Pointer(&strerrorBuf[0])) +} + +// void *dlopen(const char *filename, int flags); +func Xdlopen(t *TLS, filename uintptr, flags int32) uintptr { + panic(todo("")) +} + +// char *dlerror(void); +func Xdlerror(t *TLS) uintptr { + panic(todo("")) +} + +// int dlclose(void *handle); +func Xdlclose(t *TLS, handle uintptr) int32 { + panic(todo("")) +} + +// void *dlsym(void *handle, const char *symbol); +func Xdlsym(t *TLS, handle, symbol uintptr) uintptr { + panic(todo("")) +} + +// void perror(const char *s); +func Xperror(t *TLS, s uintptr) { + panic(todo("")) +} + +// int pclose(FILE *stream); +func Xpclose(t *TLS, stream uintptr) int32 { + panic(todo("")) +} + +var gai_strerrorBuf [100]byte + +// const char *gai_strerror(int errcode); +func Xgai_strerror(t *TLS, errcode int32) uintptr { + copy(gai_strerrorBuf[:], fmt.Sprintf("gai error %d\x00", errcode)) + return uintptr(unsafe.Pointer(&gai_strerrorBuf)) +} + +// int tcgetattr(int fd, struct termios *termios_p); +func Xtcgetattr(t *TLS, fd int32, termios_p uintptr) int32 { + panic(todo("")) +} + +// int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); +func Xtcsetattr(t *TLS, fd, optional_actions int32, termios_p uintptr) int32 { + panic(todo("")) +} + +// speed_t cfgetospeed(const struct termios *termios_p); +func Xcfgetospeed(t *TLS, termios_p uintptr) termios.Speed_t { + panic(todo("")) +} + +// int cfsetospeed(struct termios *termios_p, speed_t speed); +func Xcfsetospeed(t *TLS, termios_p uintptr, speed uint32) int32 { + panic(todo("")) +} + +// int cfsetispeed(struct termios *termios_p, speed_t speed); +func Xcfsetispeed(t *TLS, termios_p uintptr, speed uint32) int32 { + panic(todo("")) +} + +// pid_t fork(void); +func Xfork(t *TLS) int32 { + t.setErrno(errno.ENOSYS) + return -1 +} + +var emptyStr = [1]byte{} + +// char *setlocale(int category, const char *locale); +func Xsetlocale(t *TLS, category int32, locale uintptr) uintptr { + return uintptr(unsafe.Pointer(&emptyStr)) //TODO +} + +// char *nl_langinfo(nl_item item); +func Xnl_langinfo(t *TLS, item langinfo.Nl_item) uintptr { + return uintptr(unsafe.Pointer(&emptyStr)) //TODO +} + +// FILE *popen(const char *command, const char *type); +func Xpopen(t *TLS, command, type1 uintptr) uintptr { + panic(todo("")) +} + +// char *realpath(const char *path, char *resolved_path); +func Xrealpath(t *TLS, path, resolved_path uintptr) uintptr { + s, err := filepath.EvalSymlinks(GoString(path)) + if err != nil { + if os.IsNotExist(err) { + // if dmesgs { + // dmesg("%v: %q: %v", origin(1), GoString(path), err) + // } + t.setErrno(errno.ENOENT) + return 0 + } + + panic(todo("", err)) + } + + if resolved_path == 0 { + panic(todo("")) + } + + if len(s) >= limits.PATH_MAX { + s = s[:limits.PATH_MAX-1] + } + + copy((*RawMem)(unsafe.Pointer(resolved_path))[:len(s):len(s)], s) + (*RawMem)(unsafe.Pointer(resolved_path))[len(s)] = 0 + return resolved_path +} + +// struct tm *gmtime_r(const time_t *timep, struct tm *result); +func Xgmtime_r(t *TLS, timep, result uintptr) uintptr { + panic(todo("")) +} + +// char *inet_ntoa(struct in_addr in); +func Xinet_ntoa(t *TLS, in1 in.In_addr) uintptr { + panic(todo("")) +} + +func X__ccgo_in6addr_anyp(t *TLS) uintptr { + return uintptr(unsafe.Pointer(&in6_addr_any)) +} + +func Xabort(t *TLS) { + panic(todo("")) //TODO + // if dmesgs { + // dmesg("%v:", origin(1)) + // } + // p := Xcalloc(t, 1, types.Size_t(unsafe.Sizeof(signal.Sigaction{}))) + // if p == 0 { + // panic("OOM") + // } + + // (*signal.Sigaction)(unsafe.Pointer(p)).F__sigaction_u.F__sa_handler = signal.SIG_DFL + // Xsigaction(t, signal.SIGABRT, p, 0) + // Xfree(t, p) + // unix.Kill(unix.Getpid(), syscall.Signal(signal.SIGABRT)) + // panic(todo("unrechable")) +} + +// int fflush(FILE *stream); +func Xfflush(t *TLS, stream uintptr) int32 { + return 0 //TODO +} + +// size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); +func Xfread(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t { + m, _, err := unix.Syscall(unix.SYS_READ, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb)) + if err != 0 { + file(stream).setErr() + return 0 + } + + // if dmesgs { + // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m)))) + // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size) + // } + return types.Size_t(m) / size +} + +// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); +func Xfwrite(t *TLS, ptr uintptr, size, nmemb types.Size_t, stream uintptr) types.Size_t { + m, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), ptr, uintptr(size*nmemb)) + if err != 0 { + file(stream).setErr() + return 0 + } + + // if dmesgs { + // // dmesg("%v: %d %#x x %#x: %#x\n%s", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size, hex.Dump(GoBytes(ptr, int(m)))) + // dmesg("%v: %d %#x x %#x: %#x", origin(1), file(stream).fd(), size, nmemb, types.Size_t(m)/size) + // } + return types.Size_t(m) / size +} + +// int fclose(FILE *stream); +func Xfclose(t *TLS, stream uintptr) int32 { + return file(stream).close(t) +} + +// int fputc(int c, FILE *stream); +func Xfputc(t *TLS, c int32, stream uintptr) int32 { + if _, err := fwrite(file(stream).fd(), []byte{byte(c)}); err != nil { + return stdio.EOF + } + + return int32(byte(c)) +} + +// int fseek(FILE *stream, long offset, int whence); +func Xfseek(t *TLS, stream uintptr, offset long, whence int32) int32 { + if n := Xlseek(t, int32(file(stream).fd()), types.Off_t(offset), whence); n < 0 { + // if dmesgs { + // dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), file(stream).fd(), offset, whenceStr(whence), n) + // } + file(stream).setErr() + return -1 + } + + // if dmesgs { + // dmesg("%v: fd %v, off %#x, whence %v: ok", origin(1), file(stream).fd(), offset, whenceStr(whence)) + // } + return 0 +} + +// long ftell(FILE *stream); +func Xftell(t *TLS, stream uintptr) long { + n := Xlseek(t, file(stream).fd(), 0, stdio.SEEK_CUR) + if n < 0 { + file(stream).setErr() + return -1 + } + + // if dmesgs { + // dmesg("%v: fd %v, n %#x: ok %#x", origin(1), file(stream).fd(), n, long(n)) + // } + return long(n) +} + +// int ferror(FILE *stream); +func Xferror(t *TLS, stream uintptr) int32 { + return Bool32(file(stream).err()) +} + +// int ungetc(int c, FILE *stream); +func Xungetc(t *TLS, c int32, stream uintptr) int32 { + panic(todo("")) +} + +// int fscanf(FILE *stream, const char *format, ...); +func Xfscanf(t *TLS, stream, format, va uintptr) int32 { + panic(todo("")) +} + +// int fputs(const char *s, FILE *stream); +func Xfputs(t *TLS, s, stream uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_WRITE, uintptr(file(stream).fd()), s, uintptr(Xstrlen(t, s))); err != 0 { + return -1 + } + + return 0 +} + +var getservbynameStaticResult netdb.Servent + +// struct servent *getservbyname(const char *name, const char *proto); +func Xgetservbyname(t *TLS, name, proto uintptr) uintptr { + var protoent *gonetdb.Protoent + if proto != 0 { + protoent = gonetdb.GetProtoByName(GoString(proto)) + } + servent := gonetdb.GetServByName(GoString(name), protoent) + if servent == nil { + // if dmesgs { + // dmesg("%q %q: nil (protoent %+v)", GoString(name), GoString(proto), protoent) + // } + return 0 + } + + Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_name) + if v := (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_aliases; v != 0 { + for { + p := *(*uintptr)(unsafe.Pointer(v)) + if p == 0 { + break + } + + Xfree(t, p) + v += unsafe.Sizeof(uintptr(0)) + } + Xfree(t, v) + } + Xfree(t, (*netdb.Servent)(unsafe.Pointer(&getservbynameStaticResult)).Fs_proto) + cname, err := CString(servent.Name) + if err != nil { + getservbynameStaticResult = netdb.Servent{} + return 0 + } + + var protoname uintptr + if protoent != nil { + if protoname, err = CString(protoent.Name); err != nil { + Xfree(t, cname) + getservbynameStaticResult = netdb.Servent{} + return 0 + } + } + var a []uintptr + for _, v := range servent.Aliases { + cs, err := CString(v) + if err != nil { + for _, v := range a { + Xfree(t, v) + } + return 0 + } + + a = append(a, cs) + } + v := Xcalloc(t, types.Size_t(len(a)+1), types.Size_t(unsafe.Sizeof(uintptr(0)))) + if v == 0 { + Xfree(t, cname) + Xfree(t, protoname) + for _, v := range a { + Xfree(t, v) + } + getservbynameStaticResult = netdb.Servent{} + return 0 + } + for _, p := range a { + *(*uintptr)(unsafe.Pointer(v)) = p + v += unsafe.Sizeof(uintptr(0)) + } + + getservbynameStaticResult = netdb.Servent{ + Fs_name: cname, + Fs_aliases: v, + Fs_port: int32(servent.Port), + Fs_proto: protoname, + } + return uintptr(unsafe.Pointer(&getservbynameStaticResult)) +} + +func Xreaddir64(t *TLS, dir uintptr) uintptr { + return Xreaddir(t, dir) +} + +func __syscall(r, _ uintptr, errno syscall.Errno) long { + if errno != 0 { + return long(-errno) + } + + return long(r) +} + +func X__syscall1(t *TLS, trap, p1 long) long { + return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0)) +} + +func X__syscall3(t *TLS, trap, p1, p2, p3 long) long { + return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3))) +} + +func X__syscall4(t *TLS, trap, p1, p2, p3, p4 long) long { + return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0)) +} + +func fcntlCmdStr(cmd int32) string { + switch cmd { + case fcntl.F_GETOWN: + return "F_GETOWN" + case fcntl.F_SETLK: + return "F_SETLK" + case fcntl.F_GETLK: + return "F_GETLK" + case fcntl.F_SETFD: + return "F_SETFD" + case fcntl.F_GETFD: + return "F_GETFD" + default: + return fmt.Sprintf("cmd(%d)", cmd) + } +} + +// int setenv(const char *name, const char *value, int overwrite); +func Xsetenv(t *TLS, name, value uintptr, overwrite int32) int32 { + panic(todo("")) +} + +// int unsetenv(const char *name); +func Xunsetenv(t *TLS, name uintptr) int32 { + panic(todo("")) +} + +// int pause(void); +func Xpause(t *TLS) int32 { + panic(todo("")) +} + +// ssize_t writev(int fd, const struct iovec *iov, int iovcnt); +func Xwritev(t *TLS, fd int32, iov uintptr, iovcnt int32) types.Ssize_t { + panic(todo("")) +} + +// int __isoc99_sscanf(const char *str, const char *format, ...); +func X__isoc99_sscanf(t *TLS, str, format, va uintptr) int32 { + r := Xsscanf(t, str, format, va) + // if dmesgs { + // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r) + // } + return r +} + +// void __assert(const char * func, const char * file, int line, const char *expr) __dead2; +func X__assert(t *TLS, fn, file uintptr, line int32, expr uintptr) { + X__assert_fail(t, expr, file, uint32(line), fn) +} + +func X__assert13(t *TLS, file uintptr, line int32, fn, msg uintptr) { + X__assert_fail(t, msg, file, uint32(line), fn) +} + +// include/stdio.h:456:int __swbuf(int, FILE *); +func X__swbuf(t *TLS, n int32, file uintptr) int32 { + return Xfputc(t, n, file) //TODO improve performance, use a real buffer. +} + +// int rmdir(const char *pathname); +func Xrmdir(t *TLS, pathname uintptr) int32 { + if err := unix.Rmdir(GoString(pathname)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// struct dirent *readdir(DIR *dirp); +func Xreaddir(t *TLS, dir uintptr) uintptr { + if (*darwinDir)(unsafe.Pointer(dir)).eof { + return 0 + } + + if (*darwinDir)(unsafe.Pointer(dir)).l == (*darwinDir)(unsafe.Pointer(dir)).h { + n, err := unix.Getdirentries((*darwinDir)(unsafe.Pointer(dir)).fd, (*darwinDir)(unsafe.Pointer(dir)).buf[:], nil) + // trc("must read: %v %v", n, err) + if n == 0 { + if err != nil && err != io.EOF { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + } + (*darwinDir)(unsafe.Pointer(dir)).eof = true + return 0 + } + + (*darwinDir)(unsafe.Pointer(dir)).l = 0 + (*darwinDir)(unsafe.Pointer(dir)).h = n + // trc("new l %v, h %v", (*darwinDir)(unsafe.Pointer(dir)).l, (*darwinDir)(unsafe.Pointer(dir)).h) + } + de := dir + unsafe.Offsetof(darwinDir{}.buf) + uintptr((*darwinDir)(unsafe.Pointer(dir)).l) + (*darwinDir)(unsafe.Pointer(dir)).l += int((*unix.Dirent)(unsafe.Pointer(de)).Reclen) + return de +} + +type darwinDir struct { + buf [4096]byte + fd int + h int + l int + + eof bool +} + +// int sscanf(const char *str, const char *format, ...); +func Xsscanf(t *TLS, str, format, va uintptr) int32 { + r := scanf(strings.NewReader(GoString(str)), format, va) + // if dmesgs { + // dmesg("%v: %q %q: %d", origin(1), GoString(str), GoString(format), r) + // } + return r +} + +// int * __error(void); +func X__error(t *TLS) uintptr { + return t.errnop +} + +func Xclosedir(t *TLS, dir uintptr) int32 { + r := Xclose(t, int32((*darwinDir)(unsafe.Pointer(dir)).fd)) + Xfree(t, dir) + return r +} + +// DIR *opendir(const char *name); +func Xopendir(t *TLS, name uintptr) uintptr { + p := Xmalloc(t, uint64(unsafe.Sizeof(darwinDir{}))) + if p == 0 { + panic("OOM") + } + + fd := int(Xopen(t, name, fcntl.O_RDONLY|fcntl.O_DIRECTORY|fcntl.O_CLOEXEC, 0)) + if fd < 0 { + if dmesgs { + dmesg("%v: FAIL %v", origin(1), (*darwinDir)(unsafe.Pointer(p)).fd) + } + Xfree(t, p) + return 0 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + (*darwinDir)(unsafe.Pointer(p)).fd = fd + (*darwinDir)(unsafe.Pointer(p)).h = 0 + (*darwinDir)(unsafe.Pointer(p)).l = 0 + (*darwinDir)(unsafe.Pointer(p)).eof = false + return p +} + +// int __xuname(int namesize, void *namebuf) +func X__xuname(t *TLS, namesize int32, namebuf uintptr) int32 { + return Xuname(t, namebuf) +} + +// int chflags(const char *path, u_int flags); +func Xchflags(t *TLS, path uintptr, flags uint32) int32 { + if err := unix.Chflags(GoString(path), int(flags)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int pipe(int pipefd[2]); +func Xpipe(t *TLS, pipefd uintptr) int32 { + var a [2]int + if err := syscall.Pipe(a[:]); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + *(*[2]int32)(unsafe.Pointer(pipefd)) = [2]int32{int32(a[0]), int32(a[1])} + if dmesgs { + dmesg("%v: %v ok", origin(1), a) + } + return 0 +} + +// char *inet_ntoa(struct in_addr in); +func X__inet_ntoa(t *TLS, in1 in.In_addr) uintptr { + panic(todo("")) +} + +func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr { + // Cannot avoid the syscall here, addr sometimes matter. + data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + if err != 0 { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return ^uintptr(0) // (void*)-1 + } + + if dmesgs { + dmesg("%v: %#x", origin(1), data) + } + return data +} + +func X__errno(t *TLS) uintptr { + return X__errno_location(t) +} + +func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */ + return (int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3))) +} + +func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */ + return (*(*int32)(unsafe.Pointer((m /* &.__u */ /* &.__i */))) & 15) +} + +func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */ + return *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) +} + +func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */ + *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) + return 0 +} + +func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */ + if uint32(state) > 1 { + return 22 + } + *(*int32)(unsafe.Pointer((a /* &.__u */ /* &.__i */) + 6*4)) = state + return 0 +} + +func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */ + return 0 +} + +func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */ + *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{} + return 0 +} + +func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */ + if uint32(type1) > uint32(2) { + return 22 + } + (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & Uint32FromInt32(CplInt32(3))) | uint32(type1)) + return 0 +} + +// int uuid_parse( char *in, uuid_t uu); +func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { + r, err := guuid.Parse(GoString(in)) + if err != nil { + return -1 + } + + copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) + return 0 +} + +func X__srget(t *TLS, stream uintptr) int32 { return Xgetc(t, stream) } + +// void __assert2(const char *, int, const char *, const char *); +// __assert2(__FILE__, __LINE__, __func__, #e)) +func X__assert2(t *TLS, file uintptr, line int32, fn, expr uintptr) { + X__assert_fail(t, expr, file, uint32(line), fn) +} + +// int getpagesize(void); +func Xgetpagesize(t *TLS) int32 { + return int32(unix.Getpagesize()) +} + +const PTHREAD_MUTEX_DEFAULT = 0 + +// The pthread_mutex_init() function shall initialize the mutex referenced by +// mutex with attributes specified by attr. If attr is NULL, the default mutex +// attributes are used; the effect shall be the same as passing the address of +// a default mutex attributes object. Upon successful initialization, the state +// of the mutex becomes initialized and unlocked. +// +// If successful, the pthread_mutex_destroy() and pthread_mutex_init() +// functions shall return zero; otherwise, an error number shall be returned to +// indicate the error. +// +// int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); +func Xpthread_mutex_init(t *TLS, pMutex, pAttr uintptr) int32 { + typ := PTHREAD_MUTEX_DEFAULT + if pAttr != 0 { + typ = int(X__ccgo_pthreadMutexattrGettype(t, pAttr)) + } + mutexesMu.Lock() + + defer mutexesMu.Unlock() + + mutexes[pMutex] = newMutex(typ) + return 0 +} diff --git a/vendor/modernc.org/libc/libc_openbsd_amd64.go b/vendor/modernc.org/libc/libc_openbsd_amd64.go new file mode 100644 index 000000000..94432aef2 --- /dev/null +++ b/vendor/modernc.org/libc/libc_openbsd_amd64.go @@ -0,0 +1,576 @@ +// Copyright 2021 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package libc // import "modernc.org/libc" + +import ( + "strings" + "unsafe" + + "golang.org/x/sys/unix" + "modernc.org/libc/fcntl" + "modernc.org/libc/sys/types" + "modernc.org/libc/time" + "modernc.org/libc/utime" +) + +// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); +func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 { + panic(todo("")) + // if _, _, err := unix.Syscall(unix.SYS_SIGACTION, uintptr(signum), act, oldact); err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return 0 +} + +// FILE *fopen64(const char *pathname, const char *mode); +func Xfopen64(t *TLS, pathname, mode uintptr) uintptr { + m := strings.ReplaceAll(GoString(mode), "b", "") + var flags int + switch m { + case "r": + flags = fcntl.O_RDONLY + case "r+": + flags = fcntl.O_RDWR + case "w": + flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_TRUNC + case "w+": + flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_TRUNC + case "a": + flags = fcntl.O_WRONLY | fcntl.O_CREAT | fcntl.O_APPEND + case "a+": + flags = fcntl.O_RDWR | fcntl.O_CREAT | fcntl.O_APPEND + default: + panic(m) + } + fd, err := unix.Open(GoString(pathname), int(flags), 0666) + if err != nil { + if dmesgs { + dmesg("%v: %q %q: %v FAIL", origin(1), GoString(pathname), GoString(mode), err) + } + t.setErrno(err) + return 0 + } + + if dmesgs { + dmesg("%v: %q %q: fd %v", origin(1), GoString(pathname), GoString(mode), fd) + } + if p := newFile(t, int32(fd)); p != 0 { + return p + } + + panic("OOM") +} + +// int lstat(const char *pathname, struct stat *statbuf); +func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 { + if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(pathname)) + } + return 0 +} + +// int stat(const char *pathname, struct stat *statbuf); +func Xstat64(t *TLS, pathname, statbuf uintptr) int32 { + if err := unix.Stat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(pathname)) + } + return 0 +} + +// int mkdir(const char *path, mode_t mode); +func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 { + if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q: %v FAIL", origin(1), GoString(path), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q: ok", origin(1), GoString(path)) + } + return 0 +} + +// int access(const char *pathname, int mode); +func Xaccess(t *TLS, pathname uintptr, mode int32) int32 { + if err := unix.Access(GoString(pathname), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) + } + return 0 +} + +// int unlink(const char *pathname); +func Xunlink(t *TLS, pathname uintptr) int32 { + if err := unix.Unlink(GoString(pathname)); err != nil { + if dmesgs { + dmesg("%v: %q: %v", origin(1), GoString(pathname), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize); +func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t { + var n int + var err error + switch { + case buf == 0 || bufsize == 0: + n, err = unix.Readlink(GoString(path), nil) + default: + n, err = unix.Readlink(GoString(path), (*RawMem)(unsafe.Pointer(buf))[:bufsize:bufsize]) + } + if err != nil { + if dmesgs { + dmesg("%v: %v FAIL", err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok") + } + return types.Ssize_t(n) +} + +// int symlink(const char *target, const char *linkpath); +func Xsymlink(t *TLS, target, linkpath uintptr) int32 { + if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int chmod(const char *pathname, mode_t mode) +func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 { + if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil { + if dmesgs { + dmesg("%v: %q %#o: %v FAIL", origin(1), GoString(pathname), mode, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) + } + return 0 +} + +// time_t time(time_t *tloc); +func Xtime(t *TLS, tloc uintptr) time.Time_t { + panic(todo("")) + // n := time.Now().UTC().Unix() + // if tloc != 0 { + // *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n) + // } + // return types.Time_t(n) +} + +// int utimes(const char *filename, const struct timeval times[2]); +func Xutimes(t *TLS, filename, times uintptr) int32 { + var a []unix.Timeval + if times != 0 { + a = make([]unix.Timeval, 2) + a[0] = *(*unix.Timeval)(unsafe.Pointer(times)) + a[1] = *(*unix.Timeval)(unsafe.Pointer(times + unsafe.Sizeof(unix.Timeval{}))) + } + if err := unix.Utimes(GoString(filename), a); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int fstat(int fd, struct stat *statbuf); +func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 { + if err := unix.Fstat(int(fd), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { + if dmesgs { + dmesg("%v: fd %d: %v FAIL", origin(1), fd, err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: fd %d: ok", origin(1), fd) + } + return 0 +} + +// off64_t lseek64(int fd, off64_t offset, int whence); +func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t { + n, err := unix.Seek(int(fd), int64(offset), int(whence)) + if err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return types.Off_t(n) +} + +func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 { + var arg uintptr + if args != 0 { + arg = *(*uintptr)(unsafe.Pointer(args)) + } + n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg) + if err != 0 { + if dmesgs { + dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n) + } + return int32(n) +} + +// int rename(const char *oldpath, const char *newpath); +func Xrename(t *TLS, oldpath, newpath uintptr) int32 { + if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int mknod(const char *pathname, mode_t mode, dev_t dev); +func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 { + panic(todo("")) + // if _, _, err := unix.Syscall(unix.SYS_MKNOD, pathname, uintptr(mode), uintptr(dev)); err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return 0 +} + +// int utime(const char *filename, const struct utimbuf *times); +func Xutime(t *TLS, filename, times uintptr) int32 { + var a []unix.Timeval + if times != 0 { + a = make([]unix.Timeval, 2) + a[0].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Factime + a[1].Sec = (*utime.Utimbuf)(unsafe.Pointer(times)).Fmodtime + } + if err := unix.Utimes(GoString(filename), a); err != nil { + if dmesgs { + dmesg("%v: %v FAIL", origin(1), err) + } + t.setErrno(err) + return -1 + } + + if dmesgs { + dmesg("%v: ok", origin(1)) + } + return 0 +} + +// int chown(const char *pathname, uid_t owner, gid_t group); +func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 { + if _, _, err := unix.Syscall(unix.SYS_CHOWN, pathname, uintptr(owner), uintptr(group)); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} + +// int link(const char *oldpath, const char *newpath); +func Xlink(t *TLS, oldpath, newpath uintptr) int32 { + panic(todo("")) + // if _, _, err := unix.Syscall(unix.SYS_LINK, oldpath, newpath, 0); err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return 0 +} + +// int dup2(int oldfd, int newfd); +func Xdup2(t *TLS, oldfd, newfd int32) int32 { + panic(todo("")) + // n, _, err := unix.Syscall(unix.SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + // if err != 0 { + // t.setErrno(err) + // return -1 + // } + + // return int32(n) +} + +// unsigned int alarm(unsigned int seconds); +func Xalarm(t *TLS, seconds uint32) uint32 { + panic(todo("")) + // n, _, err := unix.Syscall(unix.SYS_ALARM, uintptr(seconds), 0, 0) + // if err != 0 { + // panic(todo("")) + // } + + // return uint32(n) +} + +// int getnameinfo(const struct sockaddr * restrict sa, socklen_t salen, char * restrict host, socklen_t hostlen, char * restrict serv, socklen_t servlen, int flags); +func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen size_t, serv uintptr, servlen size_t, flags int32) int32 { /* getnameinfo.c:125:5: */ + panic(todo("")) + //TODO bp := tls.Alloc(347) + //TODO defer tls.Free(347) + + //TODO // var ptr [78]int8 at bp, 78 + + //TODO // var buf [256]int8 at bp+78, 256 + + //TODO // var num [13]int8 at bp+334, 13 + + //TODO var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family) + //TODO var a uintptr + //TODO var scopeid uint32 + + //TODO switch af { + //TODO case 2: + //TODO a = (sa1 + 4 /* &.sin_addr */) + //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{}))) { + //TODO return -6 + //TODO } + //TODO mkptr4(tls, bp /* &ptr[0] */, a) + //TODO scopeid = uint32(0) + //TODO break + //TODO case 10: + //TODO a = (sa1 + 8 /* &.sin6_addr */) + //TODO if (uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{}))) { + //TODO return -6 + //TODO } + //TODO if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 { + //TODO mkptr6(tls, bp /* &ptr[0] */, a) + //TODO } else { + //TODO mkptr4(tls, bp /* &ptr[0] */, (a + uintptr(12))) + //TODO } + //TODO scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id + //TODO break + //TODO default: + //TODO return -6 + //TODO } + + //TODO if (node != 0) && (nodelen != 0) { + //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0) + //TODO if !((flags & 0x01) != 0) { + //TODO reverse_hosts(tls, bp+78 /* &buf[0] */, a, scopeid, af) + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) && !((flags & 0x01) != 0) { + //TODO Xabort(tls) //TODO- + //TODO // unsigned char query[18+PTR_MAX], reply[512]; + //TODO // int qlen = __res_mkquery(0, ptr, 1, RR_PTR, + //TODO // 0, 0, 0, query, sizeof query); + //TODO // query[3] = 0; /* don't need AD flag */ + //TODO // int rlen = __res_send(query, qlen, reply, sizeof reply); + //TODO // buf[0] = 0; + //TODO // if (rlen > 0) + //TODO // __dns_parse(reply, rlen, dns_parse_callback, buf); + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(bp + 78 /* buf */))) != 0) { + //TODO if (flags & 0x08) != 0 { + //TODO return -2 + //TODO } + //TODO Xinet_ntop(tls, af, a, bp+78 /* &buf[0] */, uint32(unsafe.Sizeof([256]int8{}))) + //TODO if scopeid != 0 { + //TODO Xabort(tls) //TODO- + //TODO // char *p = 0, tmp[IF_NAMESIZE+1]; + //TODO // if (!(flags & NI_NUMERICSCOPE) && + //TODO // (IN6_IS_ADDR_LINKLOCAL(a) || + //TODO // IN6_IS_ADDR_MC_LINKLOCAL(a))) + //TODO // p = if_indextoname(scopeid, tmp+1); + //TODO // if (!p) + //TODO // p = itoa(num, scopeid); + //TODO // *--p = '%'; + //TODO // strcat(buf, p); + //TODO } + //TODO } + //TODO if Xstrlen(tls, bp+78 /* &buf[0] */) >= size_t(nodelen) { + //TODO return -12 + //TODO } + //TODO Xstrcpy(tls, node, bp+78 /* &buf[0] */) + //TODO } + + //TODO if (serv != 0) && (servlen != 0) { + //TODO var p uintptr = bp + 78 /* buf */ + //TODO var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port)) + //TODO *(*int8)(unsafe.Pointer(bp + 78 /* &buf[0] */)) = int8(0) + //TODO if !((flags & 0x02) != 0) { + //TODO reverse_services(tls, bp+78 /* &buf[0] */, port, (flags & 0x10)) + //TODO } + //TODO if !(int32(*(*int8)(unsafe.Pointer(p))) != 0) { + //TODO p = itoa(tls, bp+334 /* &num[0] */, uint32(port)) + //TODO } + //TODO if Xstrlen(tls, p) >= size_t(servlen) { + //TODO return -12 + //TODO } + //TODO Xstrcpy(tls, serv, p) + //TODO } + + //TODO return 0 +} + +func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */ + panic(todo("")) + //TODO bp := tls.Alloc(28) + //TODO defer tls.Free(28) + + //TODO //TODO union { + //TODO //TODO struct sockaddr_in sin; + //TODO //TODO struct sockaddr_in6 sin6; + //TODO //TODO } sa = { .sin.sin_family = af }; + //TODO *(*struct { + //TODO sin sockaddr_in + //TODO _ [12]byte + //TODO })(unsafe.Pointer(bp /* sa1 */)) = struct { + //TODO sin sockaddr_in + //TODO _ [12]byte + //TODO }{} //TODO- + //TODO (*sockaddr_in)(unsafe.Pointer(bp /* &sa1 */)).sin_family = sa_family_t(af) //TODO- + //TODO var sl socklen_t + //TODO if af == 10 { + //TODO sl = uint32(unsafe.Sizeof(sockaddr_in6{})) + //TODO } else { + //TODO sl = uint32(unsafe.Sizeof(sockaddr_in{})) + //TODO } + //TODO var i int32 + + //TODO *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + + //TODO // Load address argument into sockaddr structure + //TODO if (af == 10) && (l == socklen_t(16)) { + //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin6 */ + 8 /* &.sin6_addr */), a, uint64(16)) + //TODO } else if (af == 2) && (l == socklen_t(4)) { + //TODO Xmemcpy(tls, (bp /* &sa1 */ /* &.sin */ + 4 /* &.sin_addr */), a, uint64(4)) + //TODO } else { + //TODO *(*int32)(unsafe.Pointer(err)) = 3 + //TODO return 22 + //TODO } + + //TODO // Align buffer and check for space for pointers and ip address + //TODO i = (int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)))) + //TODO if !(i != 0) { + //TODO i = int32(unsafe.Sizeof(uintptr(0))) + //TODO } + //TODO if buflen <= (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) { + //TODO return 34 + //TODO } + //TODO buf += (uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i))) + //TODO buflen = buflen - (((uint64(5) * uint64(unsafe.Sizeof(uintptr(0)))) - uint64(i)) + uint64(l)) + + //TODO (*hostent)(unsafe.Pointer(h)).h_addr_list = buf + //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))) + //TODO (*hostent)(unsafe.Pointer(h)).h_aliases = buf + //TODO buf += (uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0))))) + + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf + //TODO Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l)) + //TODO buf += uintptr(l) + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0) + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf + //TODO *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) + + //TODO switch Xgetnameinfo(tls, bp /* &sa1 */, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) { + //TODO case -3: + //TODO *(*int32)(unsafe.Pointer(err)) = 2 + //TODO return 11 + //TODO case -12: + //TODO return 34 + //TODO default: + //TODO fallthrough + //TODO case -10: + //TODO fallthrough + //TODO case -11: + //TODO fallthrough + //TODO case -4: + //TODO *(*int32)(unsafe.Pointer(err)) = 3 + //TODO return *(*int32)(unsafe.Pointer(X___errno_location(tls))) + //TODO case 0: + //TODO break + //TODO } + + //TODO (*hostent)(unsafe.Pointer(h)).h_addrtype = af + //TODO (*hostent)(unsafe.Pointer(h)).h_length = int32(l) + //TODO (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) + //TODO *(*uintptr)(unsafe.Pointer(res)) = h + //TODO return 0 +} + +// int getrlimit(int resource, struct rlimit *rlim); +func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { + if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 { + t.setErrno(err) + return -1 + } + + return 0 +} diff --git a/vendor/modernc.org/libc/libc_unix.go b/vendor/modernc.org/libc/libc_unix.go index d07e24353..eb31f1d33 100644 --- a/vendor/modernc.org/libc/libc_unix.go +++ b/vendor/modernc.org/libc/libc_unix.go @@ -2,22 +2,27 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux || darwin || freebsd || netbsd -// +build linux darwin freebsd netbsd +//go:build linux || darwin || freebsd || netbsd || openbsd +// +build linux darwin freebsd netbsd openbsd package libc // import "modernc.org/libc" import ( "bufio" "io/ioutil" + "math" + "math/rand" "os" gosignal "os/signal" "reflect" "strconv" "strings" + "sync" "syscall" + "time" "unsafe" + guuid "github.com/google/uuid" "golang.org/x/sys/unix" "modernc.org/libc/errno" "modernc.org/libc/grp" @@ -25,7 +30,9 @@ import ( "modernc.org/libc/pwd" "modernc.org/libc/signal" "modernc.org/libc/stdio" + "modernc.org/libc/stdlib" "modernc.org/libc/sys/types" + ctime "modernc.org/libc/time" ) var staticGetpwnam pwd.Passwd @@ -835,3 +842,153 @@ func Xgetpwuid_r(t *TLS, uid types.Uid_t, cpwd, buf uintptr, buflen types.Size_t *(*uintptr)(unsafe.Pointer(result)) = 0 return 0 } + +// int mkostemp(char *template, int flags); +func Xmkostemp(t *TLS, template uintptr, flags int32) int32 { + len := uintptr(Xstrlen(t, template)) + x := template + uintptr(len-6) + for i := uintptr(0); i < 6; i++ { + if *(*byte)(unsafe.Pointer(x + i)) != 'X' { + t.setErrno(errno.EINVAL) + return -1 + } + } + + fd, err := tempFile(template, x, flags) + if err != nil { + t.setErrno(err) + return -1 + } + + return int32(fd) +} + +// void uuid_generate_random(uuid_t out); +func Xuuid_generate_random(t *TLS, out uintptr) { + x := guuid.New() + copy((*RawMem)(unsafe.Pointer(out))[:], x[:]) +} + +// void uuid_unparse(uuid_t uu, char *out); +func Xuuid_unparse(t *TLS, uu, out uintptr) { + s := (*guuid.UUID)(unsafe.Pointer(uu)).String() + copy((*RawMem)(unsafe.Pointer(out))[:], s) + *(*byte)(unsafe.Pointer(out + uintptr(len(s)))) = 0 +} + +var staticRandomData = &rand.Rand{} + +// char *initstate(unsigned seed, char *state, size_t size); +func Xinitstate(t *TLS, seed uint32, statebuf uintptr, statelen types.Size_t) uintptr { + staticRandomData = rand.New(rand.NewSource(int64(seed))) + return 0 +} + +// char *setstate(const char *state); +func Xsetstate(t *TLS, state uintptr) uintptr { + t.setErrno(errno.EINVAL) //TODO + return 0 +} + +// The initstate_r() function is like initstate(3) except that it initializes +// the state in the object pointed to by buf, rather than initializing the +// global state variable. Before calling this function, the buf.state field +// must be initialized to NULL. The initstate_r() function records a pointer +// to the statebuf argument inside the structure pointed to by buf. Thus, +// state‐ buf should not be deallocated so long as buf is still in use. (So, +// statebuf should typically be allocated as a static variable, or allocated on +// the heap using malloc(3) or similar.) +// +// char *initstate_r(unsigned int seed, char *statebuf, size_t statelen, struct random_data *buf); +func Xinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen types.Size_t, buf uintptr) int32 { + if buf == 0 { + panic(todo("")) + } + + randomDataMu.Lock() + + defer randomDataMu.Unlock() + + randomData[buf] = rand.New(rand.NewSource(int64(seed))) + return 0 +} + +var ( + randomData = map[uintptr]*rand.Rand{} + randomDataMu sync.Mutex +) + +// int mkstemps(char *template, int suffixlen); +func Xmkstemps(t *TLS, template uintptr, suffixlen int32) int32 { + return Xmkstemps64(t, template, suffixlen) +} + +// int mkstemps(char *template, int suffixlen); +func Xmkstemps64(t *TLS, template uintptr, suffixlen int32) int32 { + len := uintptr(Xstrlen(t, template)) + x := template + uintptr(len-6) - uintptr(suffixlen) + for i := uintptr(0); i < 6; i++ { + if *(*byte)(unsafe.Pointer(x + i)) != 'X' { + t.setErrno(errno.EINVAL) + return -1 + } + } + + fd, err := tempFile(template, x, 0) + if err != nil { + t.setErrno(err) + return -1 + } + + return int32(fd) +} + +// int mkstemp(char *template); +func Xmkstemp(t *TLS, template uintptr) int32 { + return Xmkstemp64(t, template) +} + +// int mkstemp(char *template); +func Xmkstemp64(t *TLS, template uintptr) int32 { + return Xmkstemps64(t, template, 0) +} + +// int random_r(struct random_data *buf, int32_t *result); +func Xrandom_r(t *TLS, buf, result uintptr) int32 { + randomDataMu.Lock() + + defer randomDataMu.Unlock() + + mr := randomData[buf] + if stdlib.RAND_MAX != math.MaxInt32 { + panic(todo("")) + } + *(*int32)(unsafe.Pointer(result)) = mr.Int31() + return 0 +} + +// int strerror_r(int errnum, char *buf, size_t buflen); +func Xstrerror_r(t *TLS, errnum int32, buf uintptr, buflen size_t) int32 { + panic(todo("")) +} + +// void endpwent(void); +func Xendpwent(t *TLS) { + // nop +} + +var ctimeStaticBuf [32]byte + +// char *ctime(const time_t *timep); +func Xctime(t *TLS, timep uintptr) uintptr { + return Xctime_r(t, timep, uintptr(unsafe.Pointer(&ctimeStaticBuf[0]))) +} + +// char *ctime_r(const time_t *timep, char *buf); +func Xctime_r(t *TLS, timep, buf uintptr) uintptr { + ut := *(*ctime.Time_t)(unsafe.Pointer(timep)) + tm := time.Unix(int64(ut), 0).Local() + s := tm.Format(time.ANSIC) + "\n\x00" + copy((*RawMem)(unsafe.Pointer(buf))[:26:26], s) + return buf +} diff --git a/vendor/modernc.org/libc/libc_windows.go b/vendor/modernc.org/libc/libc_windows.go index aee9712b9..2c5012cab 100644 --- a/vendor/modernc.org/libc/libc_windows.go +++ b/vendor/modernc.org/libc/libc_windows.go @@ -5872,3 +5872,5 @@ func bootWinEnviron(t *TLS) { wenviron = uintptr(unsafe.Pointer(&winEnviron[0])) wenvValid = true } + +func Xfabsl(t *TLS, x float64) float64 { return math.Abs(x) } diff --git a/vendor/modernc.org/libc/limits/capi_darwin_amd64.go b/vendor/modernc.org/libc/limits/capi_darwin_amd64.go index bf0fdbf4c..5f13594d0 100644 --- a/vendor/modernc.org/libc/limits/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/limits/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package limits -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/limits/capi_darwin_arm64.go b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go index 81c0e802a..41c2cf990 100644 --- a/vendor/modernc.org/libc/limits/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/limits/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package limits -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/limits/capi_freebsd_386.go b/vendor/modernc.org/libc/limits/capi_freebsd_386.go new file mode 100644 index 000000000..18fba028e --- /dev/null +++ b/vendor/modernc.org/libc/limits/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo limits/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_freebsd_386.go -pkgname limits', DO NOT EDIT. + +package limits + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go b/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go new file mode 100644 index 000000000..bda639dfb --- /dev/null +++ b/vendor/modernc.org/libc/limits/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo limits/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_openbsd_amd64.go -pkgname limits', DO NOT EDIT. + +package limits + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/limits/capi_windows_386.go b/vendor/modernc.org/libc/limits/capi_windows_386.go index 30ec29e96..80740cb5d 100644 --- a/vendor/modernc.org/libc/limits/capi_windows_386.go +++ b/vendor/modernc.org/libc/limits/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo limits/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_windows_386.go -pkgname limits', DO NOT EDIT. +// Code generated by 'ccgo limits\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits\limits_windows_386.go -pkgname limits', DO NOT EDIT. package limits diff --git a/vendor/modernc.org/libc/limits/limits_darwin_amd64.go b/vendor/modernc.org/libc/limits/limits_darwin_amd64.go index 58a1b189e..a944a9eca 100644 --- a/vendor/modernc.org/libc/limits/limits_darwin_amd64.go +++ b/vendor/modernc.org/libc/limits/limits_darwin_amd64.go @@ -167,6 +167,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (C) 1992-2021 Free Software Foundation, Inc. // // This file is part of GCC. diff --git a/vendor/modernc.org/libc/limits/limits_freebsd_386.go b/vendor/modernc.org/libc/limits/limits_freebsd_386.go new file mode 100644 index 000000000..c80184097 --- /dev/null +++ b/vendor/modernc.org/libc/limits/limits_freebsd_386.go @@ -0,0 +1,567 @@ +// Code generated by 'ccgo limits/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_freebsd_386.go -pkgname limits', DO NOT EDIT. + +package limits + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ARG_MAX = 262144 + BC_BASE_MAX = 99 + BC_DIM_MAX = 2048 + BC_SCALE_MAX = 99 + BC_STRING_MAX = 1000 + CHARCLASS_NAME_MAX = 14 + CHAR_BIT = 8 + CHAR_MAX = 127 + CHAR_MIN = -128 + CHILD_MAX = 40 + COLL_WEIGHTS_MAX = 10 + EXPR_NEST_MAX = 32 + GID_MAX = 4294967295 + INT_MAX = 2147483647 + INT_MIN = -2147483648 + IOV_MAX = 1024 + LINE_MAX = 2048 + LLONG_MAX = 9223372036854775807 + LLONG_MIN = -9223372036854775808 + LONG_BIT = 32 + LONG_MAX = 2147483647 + LONG_MIN = -2147483648 + MAX_CANON = 255 + MAX_INPUT = 255 + MB_LEN_MAX = 6 + MQ_PRIO_MAX = 64 + NAME_MAX = 255 + NGROUPS_MAX = 1023 + NL_ARGMAX = 4096 + NL_LANGMAX = 31 + NL_MSGMAX = 32767 + NL_NMAX = 1 + NL_SETMAX = 255 + NL_TEXTMAX = 2048 + OFF_MAX = 9223372036854775807 + OFF_MIN = -9223372036854775808 + OPEN_MAX = 64 + PASS_MAX = 128 + PATH_MAX = 1024 + PIPE_BUF = 512 + QUAD_MAX = 9223372036854775807 + QUAD_MIN = -9223372036854775808 + RE_DUP_MAX = 255 + SCHAR_MAX = 127 + SCHAR_MIN = -128 + SHRT_MAX = 32767 + SHRT_MIN = -32768 + SIZE_T_MAX = 4294967295 + SSIZE_MAX = 2147483647 + UCHAR_MAX = 255 + UID_MAX = 4294967295 + UINT_MAX = 4294967295 + ULLONG_MAX = 18446744073709551615 + ULONG_MAX = 4294967295 + UQUAD_MAX = 18446744073709551615 + USHRT_MAX = 65535 + WORD_BIT = 32 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_LIMITS_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_POSIX2_BC_BASE_MAX = 99 + X_POSIX2_BC_DIM_MAX = 2048 + X_POSIX2_BC_SCALE_MAX = 99 + X_POSIX2_BC_STRING_MAX = 1000 + X_POSIX2_CHARCLASS_NAME_MAX = 14 + X_POSIX2_COLL_WEIGHTS_MAX = 2 + X_POSIX2_EQUIV_CLASS_MAX = 2 + X_POSIX2_EXPR_NEST_MAX = 32 + X_POSIX2_LINE_MAX = 2048 + X_POSIX2_RE_DUP_MAX = 255 + X_POSIX_AIO_LISTIO_MAX = 2 + X_POSIX_AIO_MAX = 1 + X_POSIX_ARG_MAX = 4096 + X_POSIX_CHILD_MAX = 25 + X_POSIX_CLOCKRES_MIN = 20000000 + X_POSIX_DELAYTIMER_MAX = 32 + X_POSIX_HOST_NAME_MAX = 255 + X_POSIX_LINK_MAX = 8 + X_POSIX_LOGIN_NAME_MAX = 9 + X_POSIX_MAX_CANON = 255 + X_POSIX_MAX_INPUT = 255 + X_POSIX_MQ_OPEN_MAX = 8 + X_POSIX_MQ_PRIO_MAX = 32 + X_POSIX_NAME_MAX = 14 + X_POSIX_NGROUPS_MAX = 8 + X_POSIX_OPEN_MAX = 20 + X_POSIX_PATH_MAX = 256 + X_POSIX_PIPE_BUF = 512 + X_POSIX_RE_DUP_MAX = 255 + X_POSIX_RTSIG_MAX = 8 + X_POSIX_SEM_NSEMS_MAX = 256 + X_POSIX_SEM_VALUE_MAX = 32767 + X_POSIX_SIGQUEUE_MAX = 32 + X_POSIX_SSIZE_MAX = 32767 + X_POSIX_SS_REPL_MAX = 4 + X_POSIX_STREAM_MAX = 8 + X_POSIX_SYMLINK_MAX = 255 + X_POSIX_SYMLOOP_MAX = 8 + X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 + X_POSIX_THREAD_KEYS_MAX = 128 + X_POSIX_THREAD_THREADS_MAX = 64 + X_POSIX_TIMER_MAX = 32 + X_POSIX_TRACE_EVENT_NAME_MAX = 30 + X_POSIX_TRACE_NAME_MAX = 8 + X_POSIX_TRACE_SYS_MAX = 8 + X_POSIX_TRACE_USER_EVENT_MAX = 32 + X_POSIX_TTY_NAME_MAX = 9 + X_POSIX_TZNAME_MAX = 6 + X_SYS_CDEFS_H_ = 0 + X_SYS_LIMITS_H_ = 0 + X_SYS_SYSLIMITS_H_ = 0 + X_XOPEN_IOV_MAX = 16 + X_XOPEN_NAME_MAX = 255 + X_XOPEN_PATH_MAX = 1024 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.2 (Berkeley) 1/4/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)syslimits.h 8.1 (Berkeley) 6/2/93 +// $FreeBSD$ + +// Do not add any new variables here. (See the comment at the end of +// the file for why.) + +// We leave the following values undefined to force applications to either +// assume conservative values or call sysconf() to get the current value. +// +// HOST_NAME_MAX +// +// (We should do this for most of the values currently defined here, +// but many programs are not prepared to deal with this yet.) + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go b/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go new file mode 100644 index 000000000..f98757d4e --- /dev/null +++ b/vendor/modernc.org/libc/limits/limits_openbsd_amd64.go @@ -0,0 +1,540 @@ +// Code generated by 'ccgo limits/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_openbsd_amd64.go -pkgname limits', DO NOT EDIT. + +package limits + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ARG_MAX = 524288 + BC_BASE_MAX = 2147483647 + BC_DIM_MAX = 65535 + BC_SCALE_MAX = 2147483647 + BC_STRING_MAX = 2147483647 + CHAR_BIT = 8 + CHAR_MAX = 0x7f + CHAR_MIN = -128 + CHILD_MAX = 80 + COLL_WEIGHTS_MAX = 2 + EXPR_NEST_MAX = 32 + GID_MAX = 4294967295 + HOST_NAME_MAX = 255 + INT_MAX = 0x7fffffff + INT_MIN = -2147483648 + IOV_MAX = 1024 + LINE_MAX = 2048 + LINK_MAX = 32767 + LLONG_MAX = 0x7fffffffffffffff + LLONG_MIN = -9223372036854775808 + LOGIN_NAME_MAX = 32 + LONG_BIT = 64 + LONG_MAX = 0x7fffffffffffffff + LONG_MIN = -9223372036854775808 + MAX_CANON = 255 + MAX_INPUT = 255 + MB_LEN_MAX = 4 + NAME_MAX = 255 + NGROUPS_MAX = 16 + NL_ARGMAX = 9 + NL_LANGMAX = 14 + NL_MSGMAX = 32767 + NL_SETMAX = 255 + NL_TEXTMAX = 255 + NZERO = 20 + OPEN_MAX = 64 + PATH_MAX = 1024 + PIPE_BUF = 512 + QUAD_MAX = 0x7fffffffffffffff + QUAD_MIN = -9223372036854775808 + RE_DUP_MAX = 255 + SCHAR_MAX = 0x7f + SCHAR_MIN = -128 + SEM_VALUE_MAX = 4294967295 + SHRT_MAX = 0x7fff + SHRT_MIN = -32768 + SIZE_T_MAX = 18446744073709551615 + SSIZE_MAX = 9223372036854775807 + SYMLINK_MAX = 1024 + SYMLOOP_MAX = 32 + TTY_NAME_MAX = 260 + UCHAR_MAX = 0xff + UID_MAX = 4294967295 + UINT_MAX = 0xffffffff + ULLONG_MAX = 0xffffffffffffffff + ULONG_MAX = 0xffffffffffffffff + UQUAD_MAX = 0xffffffffffffffff + USHRT_MAX = 0xffff + WORD_BIT = 32 + X_FILE_OFFSET_BITS = 64 + X_LIMITS_H_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_LIMITS_H_ = 0 + X_POSIX2_BC_BASE_MAX = 99 + X_POSIX2_BC_DIM_MAX = 2048 + X_POSIX2_BC_SCALE_MAX = 99 + X_POSIX2_BC_STRING_MAX = 1000 + X_POSIX2_CHARCLASS_NAME_MAX = 14 + X_POSIX2_COLL_WEIGHTS_MAX = 2 + X_POSIX2_EXPR_NEST_MAX = 32 + X_POSIX2_LINE_MAX = 2048 + X_POSIX2_RE_DUP_MAX = 255 + X_POSIX_ARG_MAX = 4096 + X_POSIX_CHILD_MAX = 25 + X_POSIX_CLOCKRES_MIN = 20000000 + X_POSIX_HOST_NAME_MAX = 255 + X_POSIX_LINK_MAX = 8 + X_POSIX_LOGIN_NAME_MAX = 9 + X_POSIX_MAX_CANON = 255 + X_POSIX_MAX_INPUT = 255 + X_POSIX_NAME_MAX = 14 + X_POSIX_NGROUPS_MAX = 8 + X_POSIX_OPEN_MAX = 20 + X_POSIX_PATH_MAX = 256 + X_POSIX_PIPE_BUF = 512 + X_POSIX_RE_DUP_MAX = 255 + X_POSIX_SEM_NSEMS_MAX = 256 + X_POSIX_SEM_VALUE_MAX = 32767 + X_POSIX_SSIZE_MAX = 32767 + X_POSIX_STREAM_MAX = 8 + X_POSIX_SYMLINK_MAX = 255 + X_POSIX_SYMLOOP_MAX = 8 + X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 + X_POSIX_THREAD_KEYS_MAX = 128 + X_POSIX_THREAD_THREADS_MAX = 4 + X_POSIX_TTY_NAME_MAX = 9 + X_POSIX_TZNAME_MAX = 6 + X_RET_PROTECTOR = 1 + X_SYS_CDEFS_H_ = 0 + X_SYS_LIMITS_H_ = 0 + X_XOPEN_IOV_MAX = 16 + X_XOPEN_NAME_MAX = 255 + X_XOPEN_PATH_MAX = 1024 + Unix = 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 */ + +// $OpenBSD: limits.h,v 1.19 2015/01/20 22:09:50 tedu Exp $ +// $NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $ + +// Copyright (c) 1988 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 5.9 (Berkeley) 4/3/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: limits.h,v 1.10 2012/06/30 20:21:10 guenther Exp $ +// Copyright (c) 2002 Marc Espie. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD +// PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// Common definitions for limits.h. + +// Legacy +// $OpenBSD: limits.h,v 1.6 2015/04/30 13:42:08 millert Exp $ + +// Copyright (c) 1988 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 7.2 (Berkeley) 6/28/90 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// max value for unsigned long +// max value for a signed long +// min value for a signed long + +// max value for unsigned long long +// max value for a signed long long +// min value for a signed long long + +// $OpenBSD: syslimits.h,v 1.14 2020/04/02 18:00:00 deraadt Exp $ +// $NetBSD: syslimits.h,v 1.12 1995/10/05 05:26:19 thorpej Exp $ + +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)syslimits.h 8.1 (Berkeley) 6/2/93 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/limits/limits_windows_386.go b/vendor/modernc.org/libc/limits/limits_windows_386.go index 7a68f6460..1be004f88 100644 --- a/vendor/modernc.org/libc/limits/limits_windows_386.go +++ b/vendor/modernc.org/libc/limits/limits_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo limits/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_windows_386.go -pkgname limits', DO NOT EDIT. +// Code generated by 'ccgo limits\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits\limits_windows_386.go -pkgname limits', DO NOT EDIT. package limits @@ -44,7 +44,9 @@ const ( LONG_MIN = -2147483648 MB_LEN_MAX = 5 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 PATH_MAX = 260 @@ -79,7 +81,6 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 @@ -92,8 +93,6 @@ const ( X_I64_MIN = -9223372036854775808 X_I8_MAX = 127 X_I8_MIN = -128 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_LIMITS = 0 @@ -109,6 +108,7 @@ const ( X_PGLOBAL = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIZE_T_DEFINED = 0 @@ -146,7 +146,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ -// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// Copyright (C) 1992-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -200,11 +200,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -225,12 +220,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -271,28 +260,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -318,29 +305,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ // File system limits // @@ -350,7 +337,7 @@ type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ // are semantically identical, with a limit of 259 characters for the // path name, plus one for a terminating NUL, for a total of 260. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2018 Free Software Foundation, Inc. // // This file is part of GCC. // diff --git a/vendor/modernc.org/libc/musl_darwin_amd64.go b/vendor/modernc.org/libc/musl_darwin_amd64.go index ae3f33289..0e92a81d9 100644 --- a/vendor/modernc.org/libc/musl_darwin_amd64.go +++ b/vendor/modernc.org/libc/musl_darwin_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_darwin_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT. +// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -hide isascii,isspace,tolower,toupper -nostdinc -nostdlib -o ../musl_darwin_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../darwin/table.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT. package libc @@ -357,83 +357,289 @@ type size_t = uint64 /* <builtin>:9:23 */ type wchar_t = int32 /* <builtin>:15:24 */ -func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ - return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + +// pthread opaque structures + +type __darwin_pthread_handler_rec = struct { + __routine uintptr + __arg uintptr + __next uintptr +} /* table.c:1396:1 */ + +type _opaque_pthread_attr_t = struct { + __sig int64 + __opaque [56]int8 +} /* table.c:1402:1 */ + +type _opaque_pthread_cond_t = struct { + __sig int64 + __opaque [40]int8 +} /* table.c:1407:1 */ + +type _opaque_pthread_condattr_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1412:1 */ + +type _opaque_pthread_mutex_t = struct { + __sig int64 + __opaque [56]int8 +} /* table.c:1417:1 */ + +type _opaque_pthread_mutexattr_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1422:1 */ + +type _opaque_pthread_once_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1427:1 */ + +type _opaque_pthread_rwlock_t = struct { + __sig int64 + __opaque [192]int8 +} /* table.c:1432:1 */ + +type _opaque_pthread_rwlockattr_t = struct { + __sig int64 + __opaque [16]int8 +} /* table.c:1437:1 */ + +type _opaque_pthread_t = struct { + __sig int64 + __cleanup_stack uintptr + __opaque [8176]int8 +} /* table.c:1442:1 */ + +type ct_rune_t = int32 /* table.c:1527:28 */ + +type rune_t = int32 /* table.c:1536:25 */ + +type wint_t = int32 /* table.c:1558:25 */ + +type _RuneEntry = struct { + __min int32 + __max int32 + __map int32 + _ [4]byte + __types uintptr +} /* table.c:1575:3 */ + +type _RuneRange = struct { + __nranges int32 + _ [4]byte + __ranges uintptr +} /* table.c:1580:3 */ + +type _RuneCharClass = struct { + __name [14]int8 + _ [2]byte + __mask uint32 +} /* table.c:1585:3 */ + +type _RuneLocale = struct { + __magic [8]int8 + __encoding [32]int8 + __sgetrune uintptr + __sputrune uintptr + __invalid_rune int32 + __runetype [256]uint32 + __maplower [256]int32 + __mapupper [256]int32 + _ [4]byte + __runetype_ext _RuneRange + __maplower_ext _RuneRange + __mapupper_ext _RuneRange + __variable uintptr + __variable_len int32 + __ncharclasses int32 + __charclasses uintptr +} /* table.c:1616:3 */ + +func X__istype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1670:1: */ + + return func() int32 { + if Xisascii(tls, _c) != 0 { + return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0)) + } + return BoolInt32(!!(X__maskrune(tls, _c, _f) != 0)) + }() + } -type locale_t = uintptr /* alltypes.h:343:32 */ +func X__isctype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1681:1: */ -func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ - return Bool32(func() int32 { - if 0 != 0 { - return Xisalpha(tls, c) - } - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) - }() != 0 || func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) + if _c < 0 || _c >= int32(1)<<8 { + return 0 + } + return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0)) + +} + +func X__wcwidth(tls *TLS, _c int32) int32 { /* table.c:1700:1: */ + var _x uint32 + + if _c == 0 { + return 0 + } + _x = uint32(X__maskrune(tls, _c, uint64(0xe0000000|0x00040000))) + if int64(_x)&0xe0000000 != int64(0) { + return int32(int64(_x) & 0xe0000000 >> 30) + } + return func() int32 { + if int64(_x)&0x00040000 != int64(0) { + return 1 } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0) + return -1 + }() } -func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */ - return Xisalnum(tls, c) +func Xisalnum(tls *TLS, _c int32) int32 { /* table.c:1718:1: */ + return X__istype(tls, _c, uint64(0x00000100|0x00000400)) } -func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) +func Xisalpha(tls *TLS, _c int32) int32 { /* table.c:1724:1: */ + return X__istype(tls, _c, uint64(0x00000100)) } -func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */ - return Xisalpha(tls, c) +func Xisblank(tls *TLS, _c int32) int32 { /* table.c:1730:1: */ + return X__istype(tls, _c, uint64(0x00020000)) } -func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ - return Bool32(uint32(c)-uint32('0') < uint32(10)) +func Xiscntrl(tls *TLS, _c int32) int32 { /* table.c:1736:1: */ + return X__istype(tls, _c, uint64(0x00000200)) } -func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ - return Xisdigit(tls, c) +func Xisdigit(tls *TLS, _c int32) int32 { /* table.c:1743:1: */ + return X__isctype(tls, _c, uint64(0x00000400)) } -func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */ - return Bool32(uint32(c)-uint32('a') < uint32(26)) +func Xisgraph(tls *TLS, _c int32) int32 { /* table.c:1749:1: */ + return X__istype(tls, _c, uint64(0x00000800)) } -func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */ - return Xislower(tls, c) +func Xislower(tls *TLS, _c int32) int32 { /* table.c:1755:1: */ + return X__istype(tls, _c, uint64(0x00001000)) } -func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */ - return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f)) +func Xisprint(tls *TLS, _c int32) int32 { /* table.c:1761:1: */ + return X__istype(tls, _c, uint64(0x00040000)) } -func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */ - return Xisprint(tls, c) +func Xispunct(tls *TLS, _c int32) int32 { /* table.c:1767:1: */ + return X__istype(tls, _c, uint64(0x00002000)) } -func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */ - return Bool32(uint32(c)-uint32('A') < uint32(26)) +func Xisupper(tls *TLS, _c int32) int32 { /* table.c:1779:1: */ + return X__istype(tls, _c, uint64(0x00008000)) } -func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */ - return Xisupper(tls, c) +func Xisxdigit(tls *TLS, _c int32) int32 { /* table.c:1786:1: */ + return X__isctype(tls, _c, uint64(0x00010000)) } -func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */ - return Bool32(func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) - } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) +func Xtoascii(tls *TLS, _c int32) int32 { /* table.c:1792:1: */ + return _c & 0x7F +} + +func Xdigittoint(tls *TLS, _c int32) int32 { /* table.c:1811:1: */ + return X__maskrune(tls, _c, uint64(0x0F)) +} + +func Xishexnumber(tls *TLS, _c int32) int32 { /* table.c:1817:1: */ + return X__istype(tls, _c, uint64(0x00010000)) +} + +func Xisideogram(tls *TLS, _c int32) int32 { /* table.c:1823:1: */ + return X__istype(tls, _c, uint64(0x00080000)) +} + +func Xisnumber(tls *TLS, _c int32) int32 { /* table.c:1829:1: */ + return X__istype(tls, _c, uint64(0x00000400)) +} + +func Xisphonogram(tls *TLS, _c int32) int32 { /* table.c:1835:1: */ + return X__istype(tls, _c, uint64(0x00200000)) +} + +func Xisrune(tls *TLS, _c int32) int32 { /* table.c:1841:1: */ + return X__istype(tls, _c, uint64(0xFFFFFFF0)) +} + +func Xisspecial(tls *TLS, _c int32) int32 { /* table.c:1847:1: */ + return X__istype(tls, _c, uint64(0x00100000)) +} + +func X__maskrune(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1871:2: */ + return int32(uint32(int32(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c&0xff)*4)))) & uint32(_f)) +} + +func X__toupper(tls *TLS, c int32) int32 { /* table.c:1876:20: */ + return Xtoupper(tls, c) } -func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */ - return Xisxdigit(tls, c) +func X__tolower(tls *TLS, c int32) int32 { /* table.c:1878:20: */ + return Xtolower(tls, c) } +var X_DefaultRuneLocale = _RuneLocale{__magic: [8]int8{int8(82), int8(117), int8(110), int8(101), int8(77), int8(97), int8(103), int8(65)}, __encoding: [32]int8{int8(78), int8(79), int8(78), int8(69), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}, __invalid_rune: 0xfffd, __runetype: [256]uint32{ + uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x24200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x200), uint32(0x200), + uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), + uint32(0x64000), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x50c00), uint32(0x50c01), uint32(0x50c02), uint32(0x50c03), uint32(0x50c04), uint32(0x50c05), uint32(0x50c06), uint32(0x50c07), uint32(0x50c08), uint32(0x50c09), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x42800), uint32(0x5890a), uint32(0x5890b), uint32(0x5890c), uint32(0x5890d), uint32(0x5890e), uint32(0x5890f), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), + uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x42800), uint32(0x5190a), uint32(0x5190b), uint32(0x5190c), uint32(0x5190d), uint32(0x5190e), uint32(0x5190f), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), + uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x200), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), +}, __maplower: [256]int32{ + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, +}, __mapupper: [256]int32{ + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, +}, +} /* table.c:1879:13 */ + +var X_CurrentRuneLocale uintptr = 0 /* table.c:1940:13 */ + type div_t = struct { quot int32 rem int32 @@ -447,6 +653,8 @@ type lldiv_t = struct { rem int64 } /* stdlib.h:64:41 */ +type locale_t = uintptr /* alltypes.h:343:32 */ + type ssize_t = int64 /* alltypes.h:65:15 */ type intptr_t = int64 /* alltypes.h:70:15 */ @@ -739,6 +947,10 @@ func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ return *(*uint64)(unsafe.Pointer(bp)) } +func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ + return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +} + type syscall_arg_t = int64 /* syscall.h:22:14 */ func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ @@ -1851,6 +2063,49 @@ func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ return c } +type lconv = struct { + decimal_point uintptr + thousands_sep uintptr + grouping uintptr + int_curr_symbol uintptr + currency_symbol uintptr + mon_decimal_point uintptr + mon_thousands_sep uintptr + mon_grouping uintptr + positive_sign uintptr + negative_sign uintptr + int_frac_digits int8 + frac_digits int8 + p_cs_precedes int8 + p_sep_by_space int8 + n_cs_precedes int8 + n_sep_by_space int8 + p_sign_posn int8 + n_sign_posn int8 + int_p_cs_precedes int8 + int_p_sep_by_space int8 + int_n_cs_precedes int8 + int_n_sep_by_space int8 + int_p_sign_posn int8 + int_n_sign_posn int8 + _ [2]byte +} /* locale.h:24:1 */ + +// Support signed or unsigned plain-char + +// Implementation choices... + +// Arbitrary numbers... + +// POSIX/SUS requirements follow. These numbers come directly +// from SUS and have nothing to do with the host system. + +var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */ + +func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */ + return uintptr(unsafe.Pointer(&posix_lconv)) +} + func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */ bp := tls.Alloc(8) defer tls.Free(8) @@ -3064,7 +3319,7 @@ func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ bp := tls.Alloc(32) defer tls.Free(32) - Xsprintf(tls, s, ts+23, + Xsprintf(tls, s, ts+25, VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) } @@ -3076,10 +3331,10 @@ func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') } - Xstrcpy(tls, s, ts+48) + Xstrcpy(tls, s, ts+50) } -var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 57)) /* getnameinfo.c:36:20 */ +var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ bp := tls.Alloc(556) @@ -3096,13 +3351,13 @@ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int3 // var iplit address at bp+528, 28 //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - var f uintptr = Xfopen(tls, ts+74, ts+85) + var f uintptr = Xfopen(tls, ts+76, ts+87) if !(f != 0) { return } if family == 2 { Xmemcpy(tls, bp+uintptr(12), a, uint64(4)) - Xmemcpy(tls, bp, ts+88, uint64(12)) + Xmemcpy(tls, bp, ts+90, uint64(12)) a = bp /* &atmp[0] */ } for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 { @@ -3120,7 +3375,7 @@ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int3 if (*address)(unsafe.Pointer(bp+528)).family == 2 { Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4)) - Xmemcpy(tls, bp+528+8, ts+88, uint64(12)) + Xmemcpy(tls, bp+528+8, ts+90, uint64(12)) (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) } @@ -3196,7 +3451,7 @@ func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen soc if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) { return -6 } - if Xmemcmp(tls, a, ts+88, uint64(12)) != 0 { + if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { mkptr6(tls, bp, a) } else { mkptr4(tls, bp, a+uintptr(12)) @@ -3336,21 +3591,21 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr switch af { case 2: - if socklen_t(Xsnprintf(tls, s, uint64(l), ts+101, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { return s } break case 10: - if Xmemcmp(tls, a, ts+88, uint64(12)) != 0 { + if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), - ts+113, + ts+115, VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) } else { Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), - ts+137, + ts+139, VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), @@ -3363,7 +3618,7 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { continue } - j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+167)) + j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169)) if j > max { best = i max = j @@ -3632,7 +3887,7 @@ func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); var _f FILE _ = _f - var f uintptr = Xfopen(tls, ts+74, ts+85) + var f uintptr = Xfopen(tls, ts+76, ts+87) if !(f != 0) { switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { case 2: @@ -3755,13 +4010,13 @@ type policy = struct { } /* lookup_name.c:237:14 */ var defpolicy = [6]policy{ - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 170)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 187)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 203)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 219)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 235)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, // Last rule must match all addresses to stop loop. - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 251)), prec: uint8(40), label: uint8(1)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)}, } /* lookup_name.c:241:3 */ func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ @@ -3929,10 +4184,10 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{})) } else { Xmemcpy(tls, bp+28+8, - ts+88, uint64(12)) + ts+90, uint64(12)) Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) Xmemcpy(tls, bp+8, - ts+88, uint64(12)) + ts+90, uint64(12)) Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4)) da = bp + 56 /* &da4 */ @@ -4160,6 +4415,26 @@ func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ return -1 } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) @@ -4361,6 +4636,32 @@ finish: return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s) } +func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */ + var l uintptr = _l + var r uintptr = _r + if !(int32(PostDecUint64(&n, 1)) != 0) { + return 0 + } +__1: + if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) { + goto __3 + } + goto __2 +__2: + l++ + r++ + n-- + goto __1 + goto __3 +__3: + ; + return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) +} + +func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */ + return Xstrncasecmp(tls, l, r, n) +} + func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */ var a uintptr = d d += uintptr(Xstrlen(tls, d)) @@ -4422,5 +4723,10 @@ func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */ var _sp uintptr /* strtok.c:5:14: */ -var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +func init() { + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35: + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35: +} + +var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data diff --git a/vendor/modernc.org/libc/musl_darwin_arm64.go b/vendor/modernc.org/libc/musl_darwin_arm64.go index 5ae6a3b46..6b8b9dedf 100644 --- a/vendor/modernc.org/libc/musl_darwin_arm64.go +++ b/vendor/modernc.org/libc/musl_darwin_arm64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_darwin_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT. +// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -hide isascii,isspace,tolower,toupper -nostdinc -nostdlib -o ../musl_darwin_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../darwin/table.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strchrnul.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c', DO NOT EDIT. package libc @@ -357,83 +357,289 @@ type size_t = uint64 /* <builtin>:9:23 */ type wchar_t = int32 /* <builtin>:15:24 */ -func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ - return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + +// pthread opaque structures + +type __darwin_pthread_handler_rec = struct { + __routine uintptr + __arg uintptr + __next uintptr +} /* table.c:1396:1 */ + +type _opaque_pthread_attr_t = struct { + __sig int64 + __opaque [56]int8 +} /* table.c:1402:1 */ + +type _opaque_pthread_cond_t = struct { + __sig int64 + __opaque [40]int8 +} /* table.c:1407:1 */ + +type _opaque_pthread_condattr_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1412:1 */ + +type _opaque_pthread_mutex_t = struct { + __sig int64 + __opaque [56]int8 +} /* table.c:1417:1 */ + +type _opaque_pthread_mutexattr_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1422:1 */ + +type _opaque_pthread_once_t = struct { + __sig int64 + __opaque [8]int8 +} /* table.c:1427:1 */ + +type _opaque_pthread_rwlock_t = struct { + __sig int64 + __opaque [192]int8 +} /* table.c:1432:1 */ + +type _opaque_pthread_rwlockattr_t = struct { + __sig int64 + __opaque [16]int8 +} /* table.c:1437:1 */ + +type _opaque_pthread_t = struct { + __sig int64 + __cleanup_stack uintptr + __opaque [8176]int8 +} /* table.c:1442:1 */ + +type ct_rune_t = int32 /* table.c:1527:28 */ + +type rune_t = int32 /* table.c:1536:25 */ + +type wint_t = int32 /* table.c:1558:25 */ + +type _RuneEntry = struct { + __min int32 + __max int32 + __map int32 + _ [4]byte + __types uintptr +} /* table.c:1575:3 */ + +type _RuneRange = struct { + __nranges int32 + _ [4]byte + __ranges uintptr +} /* table.c:1580:3 */ + +type _RuneCharClass = struct { + __name [14]int8 + _ [2]byte + __mask uint32 +} /* table.c:1585:3 */ + +type _RuneLocale = struct { + __magic [8]int8 + __encoding [32]int8 + __sgetrune uintptr + __sputrune uintptr + __invalid_rune int32 + __runetype [256]uint32 + __maplower [256]int32 + __mapupper [256]int32 + _ [4]byte + __runetype_ext _RuneRange + __maplower_ext _RuneRange + __mapupper_ext _RuneRange + __variable uintptr + __variable_len int32 + __ncharclasses int32 + __charclasses uintptr +} /* table.c:1616:3 */ + +func X__istype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1670:1: */ + + return func() int32 { + if Xisascii(tls, _c) != 0 { + return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0)) + } + return BoolInt32(!!(X__maskrune(tls, _c, _f) != 0)) + }() + } -type locale_t = uintptr /* alltypes.h:351:32 */ +func X__isctype(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1681:1: */ -func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ - return Bool32(func() int32 { - if 0 != 0 { - return Xisalpha(tls, c) - } - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) - }() != 0 || func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) + if _c < 0 || _c >= int32(1)<<8 { + return 0 + } + return BoolInt32(!!(uint64(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c)*4)))&_f != 0)) + +} + +func X__wcwidth(tls *TLS, _c int32) int32 { /* table.c:1700:1: */ + var _x uint32 + + if _c == 0 { + return 0 + } + _x = uint32(X__maskrune(tls, _c, uint64(0xe0000000|0x00040000))) + if int64(_x)&0xe0000000 != int64(0) { + return int32(int64(_x) & 0xe0000000 >> 30) + } + return func() int32 { + if int64(_x)&0x00040000 != int64(0) { + return 1 } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0) + return -1 + }() } -func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */ - return Xisalnum(tls, c) +func Xisalnum(tls *TLS, _c int32) int32 { /* table.c:1718:1: */ + return X__istype(tls, _c, uint64(0x00000100|0x00000400)) } -func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) +func Xisalpha(tls *TLS, _c int32) int32 { /* table.c:1724:1: */ + return X__istype(tls, _c, uint64(0x00000100)) } -func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */ - return Xisalpha(tls, c) +func Xisblank(tls *TLS, _c int32) int32 { /* table.c:1730:1: */ + return X__istype(tls, _c, uint64(0x00020000)) } -func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ - return Bool32(uint32(c)-uint32('0') < uint32(10)) +func Xiscntrl(tls *TLS, _c int32) int32 { /* table.c:1736:1: */ + return X__istype(tls, _c, uint64(0x00000200)) } -func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ - return Xisdigit(tls, c) +func Xisdigit(tls *TLS, _c int32) int32 { /* table.c:1743:1: */ + return X__isctype(tls, _c, uint64(0x00000400)) } -func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */ - return Bool32(uint32(c)-uint32('a') < uint32(26)) +func Xisgraph(tls *TLS, _c int32) int32 { /* table.c:1749:1: */ + return X__istype(tls, _c, uint64(0x00000800)) } -func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */ - return Xislower(tls, c) +func Xislower(tls *TLS, _c int32) int32 { /* table.c:1755:1: */ + return X__istype(tls, _c, uint64(0x00001000)) } -func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */ - return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f)) +func Xisprint(tls *TLS, _c int32) int32 { /* table.c:1761:1: */ + return X__istype(tls, _c, uint64(0x00040000)) } -func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */ - return Xisprint(tls, c) +func Xispunct(tls *TLS, _c int32) int32 { /* table.c:1767:1: */ + return X__istype(tls, _c, uint64(0x00002000)) } -func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */ - return Bool32(uint32(c)-uint32('A') < uint32(26)) +func Xisupper(tls *TLS, _c int32) int32 { /* table.c:1779:1: */ + return X__istype(tls, _c, uint64(0x00008000)) } -func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */ - return Xisupper(tls, c) +func Xisxdigit(tls *TLS, _c int32) int32 { /* table.c:1786:1: */ + return X__isctype(tls, _c, uint64(0x00010000)) } -func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */ - return Bool32(func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) - } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) +func Xtoascii(tls *TLS, _c int32) int32 { /* table.c:1792:1: */ + return _c & 0x7F +} + +func Xdigittoint(tls *TLS, _c int32) int32 { /* table.c:1811:1: */ + return X__maskrune(tls, _c, uint64(0x0F)) +} + +func Xishexnumber(tls *TLS, _c int32) int32 { /* table.c:1817:1: */ + return X__istype(tls, _c, uint64(0x00010000)) +} + +func Xisideogram(tls *TLS, _c int32) int32 { /* table.c:1823:1: */ + return X__istype(tls, _c, uint64(0x00080000)) +} + +func Xisnumber(tls *TLS, _c int32) int32 { /* table.c:1829:1: */ + return X__istype(tls, _c, uint64(0x00000400)) +} + +func Xisphonogram(tls *TLS, _c int32) int32 { /* table.c:1835:1: */ + return X__istype(tls, _c, uint64(0x00200000)) +} + +func Xisrune(tls *TLS, _c int32) int32 { /* table.c:1841:1: */ + return X__istype(tls, _c, uint64(0xFFFFFFF0)) +} + +func Xisspecial(tls *TLS, _c int32) int32 { /* table.c:1847:1: */ + return X__istype(tls, _c, uint64(0x00100000)) +} + +func X__maskrune(tls *TLS, _c int32, _f uint64) int32 { /* table.c:1871:2: */ + return int32(uint32(int32(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) + 60 + uintptr(_c&0xff)*4)))) & uint32(_f)) +} + +func X__toupper(tls *TLS, c int32) int32 { /* table.c:1876:20: */ + return Xtoupper(tls, c) } -func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */ - return Xisxdigit(tls, c) +func X__tolower(tls *TLS, c int32) int32 { /* table.c:1878:20: */ + return Xtolower(tls, c) } +var X_DefaultRuneLocale = _RuneLocale{__magic: [8]int8{int8(82), int8(117), int8(110), int8(101), int8(77), int8(97), int8(103), int8(65)}, __encoding: [32]int8{int8(78), int8(79), int8(78), int8(69), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0), int8(0)}, __invalid_rune: 0xfffd, __runetype: [256]uint32{ + uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x24200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x4200), uint32(0x200), uint32(0x200), + uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), uint32(0x200), + uint32(0x64000), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x50c00), uint32(0x50c01), uint32(0x50c02), uint32(0x50c03), uint32(0x50c04), uint32(0x50c05), uint32(0x50c06), uint32(0x50c07), uint32(0x50c08), uint32(0x50c09), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x42800), uint32(0x5890a), uint32(0x5890b), uint32(0x5890c), uint32(0x5890d), uint32(0x5890e), uint32(0x5890f), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), + uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x48900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), + uint32(0x42800), uint32(0x5190a), uint32(0x5190b), uint32(0x5190c), uint32(0x5190d), uint32(0x5190e), uint32(0x5190f), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), + uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x41900), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x42800), uint32(0x200), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), + uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), uint32(0x0), +}, __maplower: [256]int32{ + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, +}, __mapupper: [256]int32{ + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, +}, +} /* table.c:1879:13 */ + +var X_CurrentRuneLocale uintptr = 0 /* table.c:1940:13 */ + type div_t = struct { quot int32 rem int32 @@ -447,6 +653,8 @@ type lldiv_t = struct { rem int64 } /* stdlib.h:64:41 */ +type locale_t = uintptr /* alltypes.h:351:32 */ + type ssize_t = int64 /* alltypes.h:73:15 */ type intptr_t = int64 /* alltypes.h:78:15 */ @@ -739,6 +947,10 @@ func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ return *(*uint64)(unsafe.Pointer(bp)) } +func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ + return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +} + type syscall_arg_t = int64 /* syscall.h:22:14 */ func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ @@ -1851,6 +2063,49 @@ func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ return c } +type lconv = struct { + decimal_point uintptr + thousands_sep uintptr + grouping uintptr + int_curr_symbol uintptr + currency_symbol uintptr + mon_decimal_point uintptr + mon_thousands_sep uintptr + mon_grouping uintptr + positive_sign uintptr + negative_sign uintptr + int_frac_digits int8 + frac_digits int8 + p_cs_precedes int8 + p_sep_by_space int8 + n_cs_precedes int8 + n_sep_by_space int8 + p_sign_posn int8 + n_sign_posn int8 + int_p_cs_precedes int8 + int_p_sep_by_space int8 + int_n_cs_precedes int8 + int_n_sep_by_space int8 + int_p_sign_posn int8 + int_n_sign_posn int8 + _ [2]byte +} /* locale.h:24:1 */ + +// Support signed or unsigned plain-char + +// Implementation choices... + +// Arbitrary numbers... + +// POSIX/SUS requirements follow. These numbers come directly +// from SUS and have nothing to do with the host system. + +var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: Int8FromInt32(255), frac_digits: Int8FromInt32(255), p_cs_precedes: Int8FromInt32(255), p_sep_by_space: Int8FromInt32(255), n_cs_precedes: Int8FromInt32(255), n_sep_by_space: Int8FromInt32(255), p_sign_posn: Int8FromInt32(255), n_sign_posn: Int8FromInt32(255), int_p_cs_precedes: Int8FromInt32(255), int_p_sep_by_space: Int8FromInt32(255), int_n_cs_precedes: Int8FromInt32(255), int_n_sep_by_space: Int8FromInt32(255), int_p_sign_posn: Int8FromInt32(255), int_n_sign_posn: Int8FromInt32(255)} /* localeconv.c:4:27 */ + +func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */ + return uintptr(unsafe.Pointer(&posix_lconv)) +} + func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */ bp := tls.Alloc(8) defer tls.Free(8) @@ -3064,7 +3319,7 @@ func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ bp := tls.Alloc(32) defer tls.Free(32) - Xsprintf(tls, s, ts+23, + Xsprintf(tls, s, ts+25, VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) } @@ -3076,10 +3331,10 @@ func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') } - Xstrcpy(tls, s, ts+48) + Xstrcpy(tls, s, ts+50) } -var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 57)) /* getnameinfo.c:36:20 */ +var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ bp := tls.Alloc(556) @@ -3096,13 +3351,13 @@ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int3 // var iplit address at bp+528, 28 //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - var f uintptr = Xfopen(tls, ts+74, ts+85) + var f uintptr = Xfopen(tls, ts+76, ts+87) if !(f != 0) { return } if family == 2 { Xmemcpy(tls, bp+uintptr(12), a, uint64(4)) - Xmemcpy(tls, bp, ts+88, uint64(12)) + Xmemcpy(tls, bp, ts+90, uint64(12)) a = bp /* &atmp[0] */ } for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 { @@ -3120,7 +3375,7 @@ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int3 if (*address)(unsafe.Pointer(bp+528)).family == 2 { Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4)) - Xmemcpy(tls, bp+528+8, ts+88, uint64(12)) + Xmemcpy(tls, bp+528+8, ts+90, uint64(12)) (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) } @@ -3196,7 +3451,7 @@ func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen soc if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) { return -6 } - if Xmemcmp(tls, a, ts+88, uint64(12)) != 0 { + if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { mkptr6(tls, bp, a) } else { mkptr4(tls, bp, a+uintptr(12)) @@ -3336,21 +3591,21 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr switch af { case 2: - if socklen_t(Xsnprintf(tls, s, uint64(l), ts+101, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { return s } break case 10: - if Xmemcmp(tls, a, ts+88, uint64(12)) != 0 { + if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), - ts+113, + ts+115, VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) } else { Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), - ts+137, + ts+139, VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), @@ -3363,7 +3618,7 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { continue } - j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+167)) + j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169)) if j > max { best = i max = j @@ -3632,7 +3887,7 @@ func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); var _f FILE _ = _f - var f uintptr = Xfopen(tls, ts+74, ts+85) + var f uintptr = Xfopen(tls, ts+76, ts+87) if !(f != 0) { switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { case 2: @@ -3755,13 +4010,13 @@ type policy = struct { } /* lookup_name.c:237:14 */ var defpolicy = [6]policy{ - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 170)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 187)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 203)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 219)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 235)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, // Last rule must match all addresses to stop loop. - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 251)), prec: uint8(40), label: uint8(1)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)}, } /* lookup_name.c:241:3 */ func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ @@ -3929,10 +4184,10 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{})) } else { Xmemcpy(tls, bp+28+8, - ts+88, uint64(12)) + ts+90, uint64(12)) Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) Xmemcpy(tls, bp+8, - ts+88, uint64(12)) + ts+90, uint64(12)) Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4)) da = bp + 56 /* &da4 */ @@ -4160,6 +4415,26 @@ func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ return -1 } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) @@ -4361,6 +4636,32 @@ finish: return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s) } +func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */ + var l uintptr = _l + var r uintptr = _r + if !(int32(PostDecUint64(&n, 1)) != 0) { + return 0 + } +__1: + if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) { + goto __3 + } + goto __2 +__2: + l++ + r++ + n-- + goto __1 + goto __3 +__3: + ; + return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) +} + +func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */ + return Xstrncasecmp(tls, l, r, n) +} + func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */ var a uintptr = d d += uintptr(Xstrlen(tls, d)) @@ -4422,5 +4723,10 @@ func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */ var _sp uintptr /* strtok.c:5:14: */ -var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +func init() { + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35: + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.c:1940:35: +} + +var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data diff --git a/vendor/modernc.org/libc/musl_freebsd_386.go b/vendor/modernc.org/libc/musl_freebsd_386.go new file mode 100644 index 000000000..aeec9c684 --- /dev/null +++ b/vendor/modernc.org/libc/musl_freebsd_386.go @@ -0,0 +1,6726 @@ +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_freebsd_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. + +package libc + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +// musl as a whole is licensed under the following standard MIT license: +// +// ---------------------------------------------------------------------- +// Copyright © 2005-2020 Rich Felker, et al. +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ---------------------------------------------------------------------- +// +// Authors/contributors include: +// +// A. Wilcox +// Ada Worcester +// Alex Dowad +// Alex Suykov +// Alexander Monakov +// Andre McCurdy +// Andrew Kelley +// Anthony G. Basile +// Aric Belsito +// Arvid Picciani +// Bartosz Brachaczek +// Benjamin Peterson +// Bobby Bingham +// Boris Brezillon +// Brent Cook +// Chris Spiegel +// Clément Vasseur +// Daniel Micay +// Daniel Sabogal +// Daurnimator +// David Carlier +// David Edelsohn +// Denys Vlasenko +// Dmitry Ivanov +// Dmitry V. Levin +// Drew DeVault +// Emil Renner Berthing +// Fangrui Song +// Felix Fietkau +// Felix Janda +// Gianluca Anzolin +// Hauke Mehrtens +// He X +// Hiltjo Posthuma +// Isaac Dunham +// Jaydeep Patil +// Jens Gustedt +// Jeremy Huntwork +// Jo-Philipp Wich +// Joakim Sindholt +// John Spencer +// Julien Ramseier +// Justin Cormack +// Kaarle Ritvanen +// Khem Raj +// Kylie McClain +// Leah Neukirchen +// Luca Barbato +// Luka Perkov +// M Farkas-Dyck (Strake) +// Mahesh Bodapati +// Markus Wichmann +// Masanori Ogino +// Michael Clark +// Michael Forney +// Mikhail Kremnyov +// Natanael Copa +// Nicholas J. Kain +// orc +// Pascal Cuoq +// Patrick Oppenlander +// Petr Hosek +// Petr Skocik +// Pierre Carrier +// Reini Urban +// Rich Felker +// Richard Pennington +// Ryan Fairfax +// Samuel Holland +// Segev Finer +// Shiz +// sin +// Solar Designer +// Stefan Kristiansson +// Stefan O'Rear +// Szabolcs Nagy +// Timo Teräs +// Trutz Behn +// Valentin Ochs +// Will Dietz +// William Haddon +// William Pitcock +// +// Portions of this software are derived from third-party works licensed +// under terms compatible with the above MIT license: +// +// The TRE regular expression implementation (src/regex/reg* and +// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed +// under a 2-clause BSD license (license text in the source files). The +// included version has been heavily modified by Rich Felker in 2012, in +// the interests of size, simplicity, and namespace cleanliness. +// +// Much of the math library code (src/math/* and src/complex/*) is +// Copyright © 1993,2004 Sun Microsystems or +// Copyright © 2003-2011 David Schultz or +// Copyright © 2003-2009 Steven G. Kargl or +// Copyright © 2003-2009 Bruce D. Evans or +// Copyright © 2008 Stephen L. Moshier or +// Copyright © 2017-2018 Arm Limited +// and labelled as such in comments in the individual source files. All +// have been licensed under extremely permissive terms. +// +// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008 +// The Android Open Source Project and is licensed under a two-clause BSD +// license. It was taken from Bionic libc, used on Android. +// +// The AArch64 memcpy and memset code (src/string/aarch64/*) are +// Copyright © 1999-2019, Arm Limited. +// +// The implementation of DES for crypt (src/crypt/crypt_des.c) is +// Copyright © 1994 David Burren. It is licensed under a BSD license. +// +// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was +// originally written by Solar Designer and placed into the public +// domain. The code also comes with a fallback permissive license for use +// in jurisdictions that may not recognize the public domain. +// +// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011 +// Valentin Ochs and is licensed under an MIT-style license. +// +// The x86_64 port was written by Nicholas J. Kain and is licensed under +// the standard MIT terms. +// +// The mips and microblaze ports were originally written by Richard +// Pennington for use in the ellcc project. The original code was adapted +// by Rich Felker for build system and code conventions during upstream +// integration. It is licensed under the standard MIT terms. +// +// The mips64 port was contributed by Imagination Technologies and is +// licensed under the standard MIT terms. +// +// The powerpc port was also originally written by Richard Pennington, +// and later supplemented and integrated by John Spencer. It is licensed +// under the standard MIT terms. +// +// All other files which have no copyright comments are original works +// produced specifically for use as part of this library, written either +// by Rich Felker, the main author of the library, or by one or more +// contibutors listed above. Details on authorship of individual files +// can be found in the git version control history of the project. The +// omission of copyright and license comments in each file is in the +// interest of source tree size. +// +// In addition, permission is hereby granted for all public header files +// (include/* and arch/*/bits/*) and crt files intended to be linked into +// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit +// the copyright notice and permission notice otherwise required by the +// license, and to use these files without any requirement of +// attribution. These files include substantial contributions from: +// +// Bobby Bingham +// John Spencer +// Nicholas J. Kain +// Rich Felker +// Richard Pennington +// Stefan Kristiansson +// Szabolcs Nagy +// +// all of whom have explicitly granted such permission. +// +// This file previously contained text expressing a belief that most of +// the files covered by the above exception were sufficiently trivial not +// to be subject to copyright, resulting in confusion over whether it +// negated the permissions granted in the license. In the spirit of +// permissive licensing, and of not having licensing issues being an +// obstacle to adoption, that text has been removed. +const ( /* copyright.c:194:1: */ + __musl__copyright__ = 0 +) + +const ( /* nameser.h:117:1: */ + ns_uop_delete = 0 + ns_uop_add = 1 + ns_uop_max = 2 +) + +const ( /* nameser.h:147:1: */ + ns_t_invalid = 0 + ns_t_a = 1 + ns_t_ns = 2 + ns_t_md = 3 + ns_t_mf = 4 + ns_t_cname = 5 + ns_t_soa = 6 + ns_t_mb = 7 + ns_t_mg = 8 + ns_t_mr = 9 + ns_t_null = 10 + ns_t_wks = 11 + ns_t_ptr = 12 + ns_t_hinfo = 13 + ns_t_minfo = 14 + ns_t_mx = 15 + ns_t_txt = 16 + ns_t_rp = 17 + ns_t_afsdb = 18 + ns_t_x25 = 19 + ns_t_isdn = 20 + ns_t_rt = 21 + ns_t_nsap = 22 + ns_t_nsap_ptr = 23 + ns_t_sig = 24 + ns_t_key = 25 + ns_t_px = 26 + ns_t_gpos = 27 + ns_t_aaaa = 28 + ns_t_loc = 29 + ns_t_nxt = 30 + ns_t_eid = 31 + ns_t_nimloc = 32 + ns_t_srv = 33 + ns_t_atma = 34 + ns_t_naptr = 35 + ns_t_kx = 36 + ns_t_cert = 37 + ns_t_a6 = 38 + ns_t_dname = 39 + ns_t_sink = 40 + ns_t_opt = 41 + ns_t_apl = 42 + ns_t_tkey = 249 + ns_t_tsig = 250 + ns_t_ixfr = 251 + ns_t_axfr = 252 + ns_t_mailb = 253 + ns_t_maila = 254 + ns_t_any = 255 + ns_t_zxfr = 256 + ns_t_max = 65536 +) + +const ( /* nameser.h:210:1: */ + ns_c_invalid = 0 + ns_c_in = 1 + ns_c_2 = 2 + ns_c_chaos = 3 + ns_c_hs = 4 + ns_c_none = 254 + ns_c_any = 255 + ns_c_max = 65536 +) + +const ( /* nameser.h:221:1: */ + ns_kt_rsa = 1 + ns_kt_dh = 2 + ns_kt_dsa = 3 + ns_kt_private = 254 +) + +const ( /* nameser.h:228:1: */ + cert_t_pkix = 1 + cert_t_spki = 2 + cert_t_pgp = 3 + cert_t_url = 253 + cert_t_oid = 254 +) + +const ( /* nameser.h:28:1: */ + ns_s_qd = 0 + ns_s_zn = 0 + ns_s_an = 1 + ns_s_pr = 1 + ns_s_ns = 2 + ns_s_ud = 2 + ns_s_ar = 3 + ns_s_max = 4 +) + +const ( /* nameser.h:75:1: */ + ns_f_qr = 0 + ns_f_opcode = 1 + ns_f_aa = 2 + ns_f_tc = 3 + ns_f_rd = 4 + ns_f_ra = 5 + ns_f_z = 6 + ns_f_ad = 7 + ns_f_cd = 8 + ns_f_rcode = 9 + ns_f_max = 10 +) + +const ( /* nameser.h:89:1: */ + ns_o_query = 0 + ns_o_iquery = 1 + ns_o_status = 2 + ns_o_notify = 4 + ns_o_update = 5 + ns_o_max = 6 +) + +const ( /* nameser.h:98:1: */ + ns_r_noerror = 0 + ns_r_formerr = 1 + ns_r_servfail = 2 + ns_r_nxdomain = 3 + ns_r_notimpl = 4 + ns_r_refused = 5 + ns_r_yxdomain = 6 + ns_r_yxrrset = 7 + ns_r_nxrrset = 8 + ns_r_notauth = 9 + ns_r_notzone = 10 + ns_r_max = 11 + ns_r_badvers = 16 + ns_r_badsig = 16 + ns_r_badkey = 17 + ns_r_badtime = 18 +) + +type ptrdiff_t = int32 /* <builtin>:3:26 */ + +type size_t = uint32 /* <builtin>:9:23 */ + +type wchar_t = int32 /* <builtin>:15:24 */ + +/// typedef __ct_rune_t __wint_t; +/// +/// +/// +/// typedef __uint_least16_t __char16_t; +/// typedef __uint_least32_t __char32_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef struct { +/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long)))); +/// +/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double)))); +/// +/// } __max_align_t; +/// +/// typedef __uint64_t __dev_t; +/// +/// typedef __uint32_t __fixpt_t; +/// +/// +/// +/// +/// +/// typedef union { +/// char __mbstate8[128]; +/// __int64_t _mbstateL; +/// } __mbstate_t; +/// +/// typedef __uintmax_t __rman_res_t; +/// +/// +/// +/// +/// +/// +/// typedef __builtin_va_list __va_list; +/// +/// +/// +/// +/// +/// +/// typedef __va_list __gnuc_va_list; +/// +/// +/// +/// +/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__)); +/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__)); +/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__)); +/// +/// +/// extern int __mb_sb_limit; + +type _RuneEntry = struct { + __min int32 + __max int32 + __map int32 + __types uintptr +} /* table.cpp.c:290:3 */ + +type _RuneRange = struct { + __nranges int32 + __ranges uintptr +} /* table.cpp.c:295:3 */ + +type _RuneLocale = struct { + __magic [8]int8 + __encoding [32]int8 + __sgetrune uintptr + __sputrune uintptr + __invalid_rune int32 + __runetype [256]uint32 + __maplower [256]int32 + __mapupper [256]int32 + __runetype_ext _RuneRange + __maplower_ext _RuneRange + __mapupper_ext _RuneRange + __variable uintptr + __variable_len int32 +} /* table.cpp.c:320:3 */ +/// +/// extern const _RuneLocale _DefaultRuneLocale; +/// extern const _RuneLocale *_CurrentRuneLocale; +/// +/// +/// +/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale; +/// static __inline const _RuneLocale *__getCurrentRuneLocale(void) +/// { +/// +/// if (_ThreadRuneLocale) +/// return _ThreadRuneLocale; +/// return _CurrentRuneLocale; +/// } +/// +/// +/// +/// +/// +/// static __inline int +/// __maskrune(__ct_rune_t _c, unsigned long _f) +/// { +/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) : +/// (__getCurrentRuneLocale())->__runetype[_c]) & _f; +/// } +/// +/// static __inline int +/// __sbmaskrune(__ct_rune_t _c, unsigned long _f) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 : +/// (__getCurrentRuneLocale())->__runetype[_c] & _f; +/// } +/// +/// static __inline int +/// __istype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (!!__maskrune(_c, _f)); +/// } +/// +/// static __inline int +/// __sbistype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (!!__sbmaskrune(_c, _f)); +/// } +/// +/// static __inline int +/// __isctype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (_c < 0 || _c >= 128) ? 0 : +/// !!(_DefaultRuneLocale.__runetype[_c] & _f); +/// } +/// +/// static __inline __ct_rune_t +/// __toupper(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) : +/// (__getCurrentRuneLocale())->__mapupper[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __sbtoupper(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? _c : +/// (__getCurrentRuneLocale())->__mapupper[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __tolower(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) : +/// (__getCurrentRuneLocale())->__maplower[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __sbtolower(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? _c : +/// (__getCurrentRuneLocale())->__maplower[_c]; +/// } +/// +/// static __inline int +/// __wcwidth(__ct_rune_t _c) +/// { +/// unsigned int _x; +/// +/// if (_c == 0) +/// return (0); +/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L); +/// if ((_x & 0xe0000000L) != 0) +/// return ((_x & 0xe0000000L) >> 30); +/// return ((_x & 0x00040000L) != 0 ? 1 : -1); +/// } +/// +/// +/// +/// int isalnum(int); +/// int isalpha(int); +/// int iscntrl(int); +/// int isdigit(int); +/// int isgraph(int); +/// int islower(int); +/// int isprint(int); +/// int ispunct(int); +/// int isspace(int); +/// int isupper(int); +/// int isxdigit(int); +/// int tolower(int); +/// int toupper(int); +/// +/// +/// int isascii(int); +/// int toascii(int); +/// +/// +/// +/// int isblank(int); +/// +/// +/// +/// int digittoint(int); +/// int ishexnumber(int); +/// int isideogram(int); +/// int isnumber(int); +/// int isphonogram(int); +/// int isrune(int); +/// int isspecial(int); +/// +/// +/// +/// +/// +/// typedef struct _xlocale *locale_t; +/// +/// +/// +/// +/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// _RuneLocale *__runes_for_locale(locale_t, int*); +/// +/// inline int +/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc); +/// inline int +/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc); +/// +/// inline int +/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc) +/// { +/// int __limit; +/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit); +/// return (__c < 0 || __c >= __limit) ? 0 : +/// runes->__runetype[__c] & __f; +/// } +/// +/// inline int +/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc) +/// { +/// return (!!__sbmaskrune_l(__c, __f, __loc)); +/// } +/// +/// +/// +/// +/// +/// +/// +/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); } +/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); } +/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); } +/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); } +/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); } +/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); } +/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); } +/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); } +/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); } +/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); } +/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); } +/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); } +/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); } +/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); } +/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); } +/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); } +/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); } +/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); } +/// +/// inline int digittoint_l(int, locale_t); +/// inline int tolower_l(int, locale_t); +/// inline int toupper_l(int, locale_t); +/// +/// inline int digittoint_l(int __c, locale_t __l) +/// { return __sbmaskrune_l((__c), 0xFF, __l); } +/// +/// inline int tolower_l(int __c, locale_t __l) +/// { +/// int __limit; +/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit); +/// return (__c < 0 || __c >= __limit) ? __c : +/// __runes->__maplower[__c]; +/// } +/// inline int toupper_l(int __c, locale_t __l) +/// { +/// int __limit; +/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit); +/// return (__c < 0 || __c >= __limit) ? __c : +/// __runes->__mapupper[__c]; +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __mbstate_t mbstate_t; +/// +/// +/// +/// +/// typedef __size_t size_t; +/// +/// +/// +/// +/// +/// typedef __va_list va_list; +/// +/// +/// +/// +/// +/// +/// typedef ___wchar_t wchar_t; +/// +/// +/// +/// +/// +/// typedef __wint_t wint_t; +/// +/// typedef struct __sFILE FILE; +/// +/// struct tm; +/// +/// +/// wint_t btowc(int); +/// wint_t fgetwc(FILE *); +/// wchar_t * +/// fgetws(wchar_t * restrict, int, FILE * restrict); +/// wint_t fputwc(wchar_t, FILE *); +/// int fputws(const wchar_t * restrict, FILE * restrict); +/// int fwide(FILE *, int); +/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...); +/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...); +/// wint_t getwc(FILE *); +/// wint_t getwchar(void); +/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict); +/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t, +/// mbstate_t * restrict); +/// int mbsinit(const mbstate_t *); +/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t, +/// mbstate_t * restrict); +/// wint_t putwc(wchar_t, FILE *); +/// wint_t putwchar(wchar_t); +/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict, +/// ...); +/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...); +/// wint_t ungetwc(wint_t, FILE *); +/// int vfwprintf(FILE * restrict, const wchar_t * restrict, +/// __va_list); +/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict, +/// __va_list); +/// int vwprintf(const wchar_t * restrict, __va_list); +/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict); +/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict); +/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__)); +/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// int wcscoll(const wchar_t *, const wchar_t *); +/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict); +/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict, +/// const struct tm * restrict); +/// size_t wcslen(const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict, +/// size_t); +/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__)); +/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t); +/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__)); +/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t, +/// mbstate_t * restrict); +/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict) +/// __attribute__((__pure__)); +/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t); +/// int wctob(wint_t); +/// double wcstod(const wchar_t * restrict, wchar_t ** restrict); +/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict, +/// wchar_t ** restrict); +/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int); +/// unsigned long +/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int); +/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__)); +/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__)); +/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t); +/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +/// wchar_t *wmemset(wchar_t *, wchar_t, size_t); +/// int wprintf(const wchar_t * restrict, ...); +/// int wscanf(const wchar_t * restrict, ...); +/// +/// +/// extern FILE *__stdinp; +/// extern FILE *__stdoutp; +/// extern FILE *__stderrp; +/// +/// int vfwscanf(FILE * restrict, const wchar_t * restrict, +/// __va_list); +/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict, +/// __va_list); +/// int vwscanf(const wchar_t * restrict, __va_list); +/// float wcstof(const wchar_t * restrict, wchar_t ** restrict); +/// long double +/// wcstold(const wchar_t * restrict, wchar_t ** restrict); +/// +/// +/// long long +/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int); +/// +/// unsigned long long +/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int); +/// +/// +/// +/// +/// int wcswidth(const wchar_t *, size_t); +/// int wcwidth(wchar_t); +/// +/// +/// +/// +/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t, +/// size_t, mbstate_t * restrict); +/// FILE *open_wmemstream(wchar_t **, size_t *); +/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict); +/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t); +/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__)); +/// int wcscasecmp(const wchar_t *, const wchar_t *); +/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n); +/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__)); +/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t, +/// size_t, mbstate_t * restrict); +/// +/// +/// +/// wchar_t *fgetwln(FILE * restrict, size_t * restrict); +/// size_t wcslcat(wchar_t *, const wchar_t *, size_t); +/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t); +/// +/// +/// +/// +/// +/// int wcscasecmp_l(const wchar_t *, const wchar_t *, +/// locale_t); +/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, +/// locale_t); +/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); +/// size_t wcsxfrm_l(wchar_t * restrict, +/// const wchar_t * restrict, size_t, locale_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// struct lconv { +/// char *decimal_point; +/// char *thousands_sep; +/// char *grouping; +/// char *int_curr_symbol; +/// char *currency_symbol; +/// char *mon_decimal_point; +/// char *mon_thousands_sep; +/// char *mon_grouping; +/// char *positive_sign; +/// char *negative_sign; +/// char int_frac_digits; +/// char frac_digits; +/// char p_cs_precedes; +/// char p_sep_by_space; +/// char n_cs_precedes; +/// char n_sep_by_space; +/// char p_sign_posn; +/// char n_sign_posn; +/// char int_p_cs_precedes; +/// char int_n_cs_precedes; +/// char int_p_sep_by_space; +/// char int_n_sep_by_space; +/// char int_p_sign_posn; +/// char int_n_sign_posn; +/// }; +/// +/// +/// struct lconv *localeconv(void); +/// char *setlocale(int, const char *); +/// +/// +/// +/// +/// locale_t duplocale(locale_t base); +/// void freelocale(locale_t loc); +/// locale_t newlocale(int mask, const char *locale, locale_t base); +/// const char *querylocale(int mask, locale_t loc); +/// locale_t uselocale(locale_t loc); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// wint_t btowc_l(int, locale_t); +/// wint_t fgetwc_l(FILE *, locale_t); +/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict, +/// locale_t); +/// wint_t fputwc_l(wchar_t, FILE *, locale_t); +/// int fputws_l(const wchar_t * restrict, FILE * restrict, +/// locale_t); +/// int fwprintf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// int fwscanf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// wint_t getwc_l(FILE *, locale_t); +/// wint_t getwchar_l(locale_t); +/// size_t mbrlen_l(const char * restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// size_t mbrtowc_l(wchar_t * restrict, +/// const char * restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// int mbsinit_l(const mbstate_t *, locale_t); +/// size_t mbsrtowcs_l(wchar_t * restrict, +/// const char ** restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// wint_t putwc_l(wchar_t, FILE *, locale_t); +/// wint_t putwchar_l(wchar_t, locale_t); +/// int swprintf_l(wchar_t * restrict, size_t n, locale_t, +/// const wchar_t * restrict, ...); +/// int swscanf_l(const wchar_t * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// wint_t ungetwc_l(wint_t, FILE *, locale_t); +/// int vfwprintf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vwprintf_l(locale_t, const wchar_t * restrict, +/// __va_list); +/// size_t wcrtomb_l(char * restrict, wchar_t, +/// mbstate_t * restrict, locale_t); +/// size_t wcsftime_l(wchar_t * restrict, size_t, +/// const wchar_t * restrict, +/// const struct tm * restrict, locale_t); +/// size_t wcsrtombs_l(char * restrict, +/// const wchar_t ** restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// double wcstod_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long wcstol_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// unsigned long wcstoul_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// int wcswidth_l(const wchar_t *, size_t, locale_t); +/// int wctob_l(wint_t, locale_t); +/// int wcwidth_l(wchar_t, locale_t); +/// int wprintf_l(locale_t, const wchar_t * restrict, ...); +/// int wscanf_l(locale_t, const wchar_t * restrict, ...); +/// int vfwscanf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vswscanf_l(const wchar_t * restrict, locale_t, +/// const wchar_t *restrict, __va_list); +/// int vwscanf_l(locale_t, const wchar_t * restrict, +/// __va_list); +/// float wcstof_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long double wcstold_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long long wcstoll_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// unsigned long long wcstoull_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// size_t mbsnrtowcs_l(wchar_t * restrict, +/// const char ** restrict, size_t, size_t, +/// mbstate_t * restrict, locale_t); +/// size_t wcsnrtombs_l(char * restrict, +/// const wchar_t ** restrict, size_t, size_t, +/// mbstate_t * restrict, locale_t); +/// +/// +/// +/// +/// +/// struct lconv *localeconv_l(locale_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __rune_t rune_t; +/// +/// typedef struct { +/// int quot; +/// int rem; +/// } div_t; +/// +/// typedef struct { +/// long quot; +/// long rem; +/// } ldiv_t; +/// +/// +/// +/// +/// +/// double atof_l(const char *, locale_t); +/// int atoi_l(const char *, locale_t); +/// long atol_l(const char *, locale_t); +/// long long atoll_l(const char *, locale_t); +/// int mblen_l(const char *, size_t, locale_t); +/// size_t mbstowcs_l(wchar_t * restrict, +/// const char * restrict, size_t, locale_t); +/// int mbtowc_l(wchar_t * restrict, +/// const char * restrict, size_t, locale_t); +/// double strtod_l(const char *, char **, locale_t); +/// float strtof_l(const char *, char **, locale_t); +/// long strtol_l(const char *, char **, int, locale_t); +/// long double strtold_l(const char *, char **, locale_t); +/// long long strtoll_l(const char *, char **, int, locale_t); +/// unsigned long strtoul_l(const char *, char **, int, locale_t); +/// unsigned long long strtoull_l(const char *, char **, int, locale_t); +/// size_t wcstombs_l(char * restrict, +/// const wchar_t * restrict, size_t, locale_t); +/// int wctomb_l(char *, wchar_t, locale_t); +/// +/// int ___mb_cur_max_l(locale_t); +/// +/// +/// extern int __mb_cur_max; +/// extern int ___mb_cur_max(void); +/// +/// +/// _Noreturn void abort(void); +/// int abs(int) __attribute__((__const__)); +/// int atexit(void (* )(void)); +/// double atof(const char *); +/// int atoi(const char *); +/// long atol(const char *); +/// void *bsearch(const void *, const void *, size_t, +/// size_t, int (*)(const void * , const void *)); +/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) +/// __attribute__((__alloc_size__(1, 2))); +/// div_t div(int, int) __attribute__((__const__)); +/// _Noreturn void exit(int); +/// void free(void *); +/// char *getenv(const char *); +/// long labs(long) __attribute__((__const__)); +/// ldiv_t ldiv(long, long) __attribute__((__const__)); +/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1))); +/// int mblen(const char *, size_t); +/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t); +/// int mbtowc(wchar_t * restrict, const char * restrict, size_t); +/// void qsort(void *, size_t, size_t, +/// int (* )(const void *, const void *)); +/// int rand(void); +/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2))); +/// void srand(unsigned); +/// double strtod(const char * restrict, char ** restrict); +/// float strtof(const char * restrict, char ** restrict); +/// long strtol(const char * restrict, char ** restrict, int); +/// long double +/// strtold(const char * restrict, char ** restrict); +/// unsigned long +/// strtoul(const char * restrict, char ** restrict, int); +/// int system(const char *); +/// int wctomb(char *, wchar_t); +/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t); +/// +/// typedef struct { +/// long long quot; +/// long long rem; +/// } lldiv_t; +/// +/// +/// long long +/// atoll(const char *); +/// +/// long long +/// llabs(long long) __attribute__((__const__)); +/// +/// lldiv_t lldiv(long long, long long) __attribute__((__const__)); +/// +/// long long +/// strtoll(const char * restrict, char ** restrict, int); +/// +/// unsigned long long +/// strtoull(const char * restrict, char ** restrict, int); +/// +/// +/// _Noreturn void _Exit(int); +/// +/// +/// +/// +/// +/// +/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1))) +/// __attribute__((__alloc_size__(2))); +/// int at_quick_exit(void (*)(void)); +/// _Noreturn void +/// quick_exit(int); +/// +/// +/// +/// +/// +/// char *realpath(const char * restrict, char * restrict); +/// +/// +/// int rand_r(unsigned *); +/// +/// +/// int posix_memalign(void **, size_t, size_t); +/// int setenv(const char *, const char *, int); +/// int unsetenv(const char *); +/// +/// +/// +/// int getsubopt(char **, char *const *, char **); +/// +/// char *mkdtemp(char *); +/// +/// +/// +/// int mkstemp(char *); +/// +/// long a64l(const char *); +/// double drand48(void); +/// +/// double erand48(unsigned short[3]); +/// +/// +/// char *initstate(unsigned int, char *, size_t); +/// long jrand48(unsigned short[3]); +/// char *l64a(long); +/// void lcong48(unsigned short[7]); +/// long lrand48(void); +/// +/// char *mktemp(char *); +/// +/// +/// long mrand48(void); +/// long nrand48(unsigned short[3]); +/// int putenv(char *); +/// long random(void); +/// unsigned short +/// *seed48(unsigned short[3]); +/// char *setstate( char *); +/// void srand48(long); +/// void srandom(unsigned int); +/// +/// +/// +/// int grantpt(int); +/// int posix_openpt(int); +/// char *ptsname(int); +/// int unlockpt(int); +/// +/// +/// +/// int ptsname_r(int, char *, size_t); +/// +/// +/// +/// extern const char *malloc_conf; +/// extern void (*malloc_message)(void *, const char *); +/// +/// void abort2(const char *, int, void **) __attribute__((__noreturn__)); +/// __uint32_t +/// arc4random(void); +/// void arc4random_buf(void *, size_t); +/// __uint32_t +/// arc4random_uniform(__uint32_t); +/// +/// +/// +/// +/// +/// +/// char *getbsize(int *, long *); +/// +/// char *cgetcap(char *, const char *, int); +/// int cgetclose(void); +/// int cgetent(char **, char **, const char *); +/// int cgetfirst(char **, char **); +/// int cgetmatch(const char *, const char *); +/// int cgetnext(char **, char **); +/// int cgetnum(char *, const char *, long *); +/// int cgetset(const char *); +/// int cgetstr(char *, const char *, char **); +/// int cgetustr(char *, const char *, char **); +/// +/// int daemon(int, int); +/// int daemonfd(int, int); +/// char *devname(__dev_t, __mode_t); +/// char *devname_r(__dev_t, __mode_t, char *, int); +/// char *fdevname(int); +/// char *fdevname_r(int, char *, int); +/// int getloadavg(double [], int); +/// const char * +/// getprogname(void); +/// +/// int heapsort(void *, size_t, size_t, +/// int (* )(const void *, const void *)); +/// +/// +/// +/// +/// +/// +/// int l64a_r(long, char *, int); +/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *)); +/// +/// +/// +/// int mkostemp(char *, int); +/// int mkostemps(char *, int, int); +/// int mkostempsat(int, char *, int, int); +/// void qsort_r(void *, size_t, size_t, void *, +/// int (*)(void *, const void *, const void *)); +/// int radixsort(const unsigned char **, int, const unsigned char *, +/// unsigned); +/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__)) +/// __attribute__((__alloc_size__(2, 3))); +/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2))); +/// int rpmatch(const char *); +/// void setprogname(const char *); +/// int sradixsort(const unsigned char **, int, const unsigned char *, +/// unsigned); +/// void srandomdev(void); +/// long long +/// strtonum(const char *, long long, long long, const char **); +/// +/// +/// __int64_t +/// strtoq(const char *, char **, int); +/// __uint64_t +/// strtouq(const char *, char **, int); +/// +/// extern char *suboptarg; +/// +/// +/// +/// +/// +/// +/// typedef size_t rsize_t; +/// +/// +/// +/// +/// typedef int errno_t; +/// +/// +/// +/// typedef void (*constraint_handler_t)(const char * restrict, +/// void * restrict, errno_t); +/// +/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler); +/// +/// _Noreturn void abort_handler_s(const char * restrict, void * restrict, +/// errno_t); +/// +/// void ignore_handler_s(const char * restrict, void * restrict, errno_t); +/// +/// errno_t qsort_s(void *, rsize_t, rsize_t, +/// int (*)(const void *, const void *, void *), void *); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __int8_t int8_t; +/// +/// +/// +/// +/// typedef __int16_t int16_t; +/// +/// +/// +/// +/// typedef __int32_t int32_t; +/// +/// +/// +/// +/// typedef __int64_t int64_t; +/// +/// +/// +/// +/// typedef __uint8_t uint8_t; +/// +/// +/// +/// +/// typedef __uint16_t uint16_t; +/// +/// +/// +/// +/// typedef __uint32_t uint32_t; +/// +/// +/// +/// +/// typedef __uint64_t uint64_t; +/// +/// +/// +/// +/// typedef __intptr_t intptr_t; +/// +/// +/// +/// typedef __uintptr_t uintptr_t; +/// +/// +/// +/// typedef __intmax_t intmax_t; +/// +/// +/// +/// typedef __uintmax_t uintmax_t; +/// +/// +/// typedef __int_least8_t int_least8_t; +/// typedef __int_least16_t int_least16_t; +/// typedef __int_least32_t int_least32_t; +/// typedef __int_least64_t int_least64_t; +/// +/// typedef __uint_least8_t uint_least8_t; +/// typedef __uint_least16_t uint_least16_t; +/// typedef __uint_least32_t uint_least32_t; +/// typedef __uint_least64_t uint_least64_t; +/// +/// typedef __int_fast8_t int_fast8_t; +/// typedef __int_fast16_t int_fast16_t; +/// typedef __int_fast32_t int_fast32_t; +/// typedef __int_fast64_t int_fast64_t; +/// +/// typedef __uint_fast8_t uint_fast8_t; +/// typedef __uint_fast16_t uint_fast16_t; +/// typedef __uint_fast32_t uint_fast32_t; +/// typedef __uint_fast64_t uint_fast64_t; +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// struct pthread; +/// struct pthread_attr; +/// struct pthread_cond; +/// struct pthread_cond_attr; +/// struct pthread_mutex; +/// struct pthread_mutex_attr; +/// struct pthread_once; +/// struct pthread_rwlock; +/// struct pthread_rwlockattr; +/// struct pthread_barrier; +/// struct pthread_barrier_attr; +/// struct pthread_spinlock; +/// +/// typedef struct pthread *pthread_t; +/// +/// +/// typedef struct pthread_attr *pthread_attr_t; +/// typedef struct pthread_mutex *pthread_mutex_t; +/// typedef struct pthread_mutex_attr *pthread_mutexattr_t; +/// typedef struct pthread_cond *pthread_cond_t; +/// typedef struct pthread_cond_attr *pthread_condattr_t; +/// typedef int pthread_key_t; +/// typedef struct pthread_once pthread_once_t; +/// typedef struct pthread_rwlock *pthread_rwlock_t; +/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t; +/// typedef struct pthread_barrier *pthread_barrier_t; +/// typedef struct pthread_barrierattr *pthread_barrierattr_t; +/// typedef struct pthread_spinlock *pthread_spinlock_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef void *pthread_addr_t; +/// typedef void *(*pthread_startroutine_t)(void *); +/// +/// +/// +/// +/// struct pthread_once { +/// int state; +/// pthread_mutex_t mutex; +/// }; +/// +/// +/// +/// typedef unsigned char u_char; +/// typedef unsigned short u_short; +/// typedef unsigned int u_int; +/// typedef unsigned long u_long; +/// +/// typedef unsigned short ushort; +/// typedef unsigned int uint; +/// +/// typedef __uint8_t u_int8_t; +/// typedef __uint16_t u_int16_t; +/// typedef __uint32_t u_int32_t; +/// typedef __uint64_t u_int64_t; +/// +/// typedef __uint64_t u_quad_t; +/// typedef __int64_t quad_t; +/// typedef quad_t * qaddr_t; +/// +/// typedef char * caddr_t; +/// typedef const char * c_caddr_t; +/// +/// +/// typedef __blksize_t blksize_t; +/// +/// +/// +/// typedef __cpuwhich_t cpuwhich_t; +/// typedef __cpulevel_t cpulevel_t; +/// typedef __cpusetid_t cpusetid_t; +/// +/// +/// typedef __blkcnt_t blkcnt_t; +/// +/// +/// +/// +/// typedef __clock_t clock_t; +/// +/// +/// +/// +/// typedef __clockid_t clockid_t; +/// +/// +/// +/// typedef __critical_t critical_t; +/// typedef __daddr_t daddr_t; +/// +/// +/// typedef __dev_t dev_t; +/// +/// +/// +/// +/// typedef __fflags_t fflags_t; +/// +/// +/// +/// typedef __fixpt_t fixpt_t; +/// +/// +/// typedef __fsblkcnt_t fsblkcnt_t; +/// typedef __fsfilcnt_t fsfilcnt_t; +/// +/// +/// +/// +/// typedef __gid_t gid_t; +/// +/// +/// +/// +/// typedef __uint32_t in_addr_t; +/// +/// +/// +/// +/// typedef __uint16_t in_port_t; +/// +/// +/// +/// +/// typedef __id_t id_t; +/// +/// +/// +/// +/// typedef __ino_t ino_t; +/// +/// +/// +/// +/// typedef __key_t key_t; +/// +/// +/// +/// +/// typedef __lwpid_t lwpid_t; +/// +/// +/// +/// +/// typedef __mode_t mode_t; +/// +/// +/// +/// +/// typedef __accmode_t accmode_t; +/// +/// +/// +/// +/// typedef __nlink_t nlink_t; +/// +/// +/// +/// +/// typedef __off_t off_t; +/// +/// +/// +/// +/// typedef __off64_t off64_t; +/// +/// +/// +/// +/// typedef __pid_t pid_t; +/// +/// +/// +/// typedef __register_t register_t; +/// +/// +/// typedef __rlim_t rlim_t; +/// +/// +/// +/// typedef __int64_t sbintime_t; +/// +/// typedef __segsz_t segsz_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef __ssize_t ssize_t; +/// +/// +/// +/// +/// typedef __suseconds_t suseconds_t; +/// +/// +/// +/// +/// typedef __time_t time_t; +/// +/// +/// +/// +/// typedef __timer_t timer_t; +/// +/// +/// +/// +/// typedef __mqd_t mqd_t; +/// +/// +/// +/// typedef __u_register_t u_register_t; +/// +/// +/// typedef __uid_t uid_t; +/// +/// +/// +/// +/// typedef __useconds_t useconds_t; +/// +/// +/// +/// +/// +/// typedef unsigned long cap_ioctl_t; +/// +/// +/// +/// +/// struct cap_rights; +/// +/// typedef struct cap_rights cap_rights_t; +/// +/// typedef __uint64_t kpaddr_t; +/// typedef __uint64_t kvaddr_t; +/// typedef __uint64_t ksize_t; +/// typedef __int64_t kssize_t; +/// +/// typedef __vm_offset_t vm_offset_t; +/// typedef __uint64_t vm_ooffset_t; +/// typedef __vm_paddr_t vm_paddr_t; +/// typedef __uint64_t vm_pindex_t; +/// typedef __vm_size_t vm_size_t; +/// +/// typedef __rman_res_t rman_res_t; +/// +/// static __inline __uint16_t +/// __bitcount16(__uint16_t _x) +/// { +/// +/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1); +/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f; +/// _x = (_x + (_x >> 8)) & 0x00ff; +/// return (_x); +/// } +/// +/// static __inline __uint32_t +/// __bitcount32(__uint32_t _x) +/// { +/// +/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1); +/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f; +/// _x = (_x + (_x >> 8)); +/// _x = (_x + (_x >> 16)) & 0x000000ff; +/// return (_x); +/// } +/// +/// +/// static __inline __uint64_t +/// __bitcount64(__uint64_t _x) +/// { +/// +/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1); +/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f; +/// _x = (_x + (_x >> 8)); +/// _x = (_x + (_x >> 16)); +/// _x = (_x + (_x >> 32)) & 0x000000ff; +/// return (_x); +/// } +/// +/// +/// +/// +/// +/// typedef struct __sigset { +/// __uint32_t __bits[4]; +/// } __sigset_t; +/// +/// +/// +/// struct timeval { +/// time_t tv_sec; +/// suseconds_t tv_usec; +/// }; +/// +/// +/// +/// +/// +/// struct timespec { +/// time_t tv_sec; +/// long tv_nsec; +/// }; +/// +/// +/// struct itimerspec { +/// struct timespec it_interval; +/// struct timespec it_value; +/// }; +/// +/// +/// typedef unsigned long __fd_mask; +/// +/// typedef __fd_mask fd_mask; +/// +/// +/// +/// +/// typedef __sigset_t sigset_t; +/// +/// typedef struct fd_set { +/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))]; +/// } fd_set; +/// +/// +/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict, +/// const struct timespec *restrict, const sigset_t *restrict); +/// +/// +/// +/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +/// +/// +/// +/// +/// static __inline int +/// __major(dev_t _d) +/// { +/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff)); +/// } +/// +/// static __inline int +/// __minor(dev_t _d) +/// { +/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff)); +/// } +/// +/// static __inline dev_t +/// __makedev(int _Major, int _Minor) +/// { +/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) | +/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff)); +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// int ftruncate(int, off_t); +/// +/// +/// +/// off_t lseek(int, off_t, int); +/// +/// +/// +/// void * mmap(void *, size_t, int, int, int, off_t); +/// +/// +/// +/// int truncate(const char *, off_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// +/// +/// +/// +/// +/// static __inline u_int +/// atomic_fetchadd_int(volatile u_int *p, u_int v) +/// { +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " xaddl %0,%1 ; " +/// "# atomic_fetchadd_int" +/// : "+r" (v), +/// "+m" (*p) +/// : : "cc"); +/// return (v); +/// } +/// +/// +/// +/// +/// +/// static __inline u_long +/// atomic_fetchadd_long(volatile u_long *p, u_long v) +/// { +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " xaddq %0,%1 ; " +/// "# atomic_fetchadd_long" +/// : "+r" (v), +/// "+m" (*p) +/// : : "cc"); +/// return (v); +/// } +/// +/// static __inline int +/// atomic_testandset_int(volatile u_int *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btsl %2,%1 ; " +/// "# atomic_testandset_int" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Ir" (v & 0x1f) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandset_long(volatile u_long *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btsq %2,%1 ; " +/// "# atomic_testandset_long" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Jr" ((u_long)(v & 0x3f)) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandclear_int(volatile u_int *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btrl %2,%1 ; " +/// "# atomic_testandclear_int" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Ir" (v & 0x1f) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandclear_long(volatile u_long *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btrq %2,%1 ; " +/// "# atomic_testandclear_long" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Jr" ((u_long)(v & 0x3f)) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline void +/// __storeload_barrier(void) +/// { +/// +/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_acq(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_rel(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_acq_rel(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_seq_cst(void) +/// { +/// +/// __storeload_barrier(); +/// } +/// +/// +/// +/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// +/// +/// +/// +/// +/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// +/// static __inline u_int +/// atomic_swap_int(volatile u_int *p, u_int v) +/// { +/// +/// __asm volatile( +/// " xchgl %1,%0 ; " +/// "# atomic_swap_int" +/// : "+r" (v), +/// "+m" (*p)); +/// return (v); +/// } +/// +/// static __inline u_long +/// atomic_swap_long(volatile u_long *p, u_long v) +/// { +/// +/// __asm volatile( +/// " xchgq %1,%0 ; " +/// "# atomic_swap_long" +/// : "+r" (v), +/// "+m" (*p)); +/// return (v); +/// } +/// +/// +/// +/// +/// +/// extern char *_PathLocale; +/// +/// int __detect_path_locale(void); +/// int __wrap_setrunelocale(const char *); +/// +/// +/// enum { +/// XLC_COLLATE = 0, +/// XLC_CTYPE, +/// XLC_MONETARY, +/// XLC_NUMERIC, +/// XLC_TIME, +/// XLC_MESSAGES, +/// XLC_LAST +/// }; +/// +/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous"); +/// _Static_assert(XLC_COLLATE == +/// +/// 1 +/// +/// - 1, +/// "XLC_COLLATE doesn't match the LC_COLLATE value."); +/// _Static_assert(XLC_CTYPE == +/// +/// 2 +/// +/// - 1, +/// "XLC_CTYPE doesn't match the LC_CTYPE value."); +/// _Static_assert(XLC_MONETARY == +/// +/// 3 +/// +/// - 1, +/// "XLC_MONETARY doesn't match the LC_MONETARY value."); +/// _Static_assert(XLC_NUMERIC == +/// +/// 4 +/// +/// - 1, +/// "XLC_NUMERIC doesn't match the LC_NUMERIC value."); +/// _Static_assert(XLC_TIME == +/// +/// 5 +/// +/// - 1, +/// "XLC_TIME doesn't match the LC_TIME value."); +/// _Static_assert(XLC_MESSAGES == +/// +/// 6 +/// +/// - 1, +/// "XLC_MESSAGES doesn't match the LC_MESSAGES value."); +/// +/// struct xlocale_refcounted { +/// +/// long retain_count; +/// +/// void(*destructor)(void*); +/// }; +/// +/// +/// +/// +/// +/// +/// +/// struct xlocale_component { +/// struct xlocale_refcounted header; +/// +/// char locale[31 +1]; +/// +/// char version[12]; +/// }; +/// +/// +/// +/// +/// struct _xlocale { +/// struct xlocale_refcounted header; +/// +/// struct xlocale_component *components[XLC_LAST]; +/// +/// +/// int monetary_locale_changed; +/// +/// +/// int using_monetary_locale; +/// +/// +/// int numeric_locale_changed; +/// +/// +/// int using_numeric_locale; +/// +/// +/// int using_time_locale; +/// +/// +/// int using_messages_locale; +/// +/// struct lconv lconv; +/// +/// char *csym; +/// }; +/// +/// +/// +/// +/// __attribute__((unused)) static void* +/// xlocale_retain(void *val) +/// { +/// struct xlocale_refcounted *obj = val; +/// atomic_add_long(&(obj->retain_count), 1); +/// return (val); +/// } +/// +/// +/// +/// +/// __attribute__((unused)) static void +/// xlocale_release(void *val) +/// { +/// struct xlocale_refcounted *obj = val; +/// long count; +/// +/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1; +/// if (count < 0 && obj->destructor != +/// +/// ((void *)0) +/// +/// ) +/// obj->destructor(obj); +/// } +/// +/// +/// +/// +/// +/// extern void* __collate_load(const char*, locale_t); +/// extern void* __ctype_load(const char*, locale_t); +/// extern void* __messages_load(const char*, locale_t); +/// extern void* __monetary_load(const char*, locale_t); +/// extern void* __numeric_load(const char*, locale_t); +/// extern void* __time_load(const char*, locale_t); +/// +/// extern struct _xlocale __xlocale_global_locale; +/// extern struct _xlocale __xlocale_C_locale; +/// +/// +/// +/// +/// void __set_thread_rune_locale(locale_t loc); +/// +/// +/// +/// +/// extern int __has_thread_locale; +/// +/// +/// +/// +/// +/// extern _Thread_local locale_t __thread_locale; +/// +/// +/// +/// +/// +/// +/// +/// static inline locale_t __get_locale(void) +/// { +/// +/// if (!__has_thread_locale) { +/// return (&__xlocale_global_locale); +/// } +/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale); +/// } +/// +/// +/// +/// +/// +/// static inline locale_t get_real_locale(locale_t locale) +/// { +/// switch ((intptr_t)locale) { +/// case 0: return (&__xlocale_C_locale); +/// case -1: return (&__xlocale_global_locale); +/// default: return (locale); +/// } +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// struct xlocale_ctype { +/// struct xlocale_component header; +/// _RuneLocale *runes; +/// size_t (*__mbrtowc)(wchar_t * +/// +/// restrict +/// +/// , const char * +/// +/// restrict +/// +/// , +/// size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// int (*__mbsinit)(const mbstate_t *); +/// size_t (*__mbsnrtowcs)(wchar_t * +/// +/// restrict +/// +/// , const char ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t (*__wcrtomb)(char * +/// +/// restrict +/// +/// , wchar_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t (*__wcsnrtombs)(char * +/// +/// restrict +/// +/// , const wchar_t ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// int __mb_cur_max; +/// int __mb_sb_limit; +/// +/// __mbstate_t mblen; +/// +/// __mbstate_t mbrlen; +/// +/// __mbstate_t mbrtoc16; +/// +/// __mbstate_t mbrtoc32; +/// +/// __mbstate_t mbrtowc; +/// +/// __mbstate_t mbsnrtowcs; +/// +/// __mbstate_t mbsrtowcs; +/// +/// __mbstate_t mbtowc; +/// +/// __mbstate_t c16rtomb; +/// +/// __mbstate_t c32rtomb; +/// +/// __mbstate_t wcrtomb; +/// +/// __mbstate_t wcsnrtombs; +/// +/// __mbstate_t wcsrtombs; +/// +/// __mbstate_t wctomb; +/// }; +/// +/// extern struct xlocale_ctype __xlocale_global_ctype; +/// +/// +/// +/// +/// int _none_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// +/// typedef size_t (*mbrtowc_pfn_t)(wchar_t * +/// +/// restrict +/// +/// , +/// const char * +/// +/// restrict +/// +/// , size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// typedef size_t (*wcrtomb_pfn_t)(char * +/// +/// restrict +/// +/// , wchar_t, +/// mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t __mbsnrtowcs_std(wchar_t * +/// +/// restrict +/// +/// , const char ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// , mbrtowc_pfn_t); +/// size_t __wcsnrtombs_std(char * +/// +/// restrict +/// +/// , const wchar_t ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// , wcrtomb_pfn_t); +/// + +var X_DefaultRuneLocale = _RuneLocale{ + + __magic: *(*[8]int8)(unsafe.Pointer(ts)), + __encoding: *(*[32]int8)(unsafe.Pointer(ts + 9)), + __invalid_rune: 0xFFFD, + + __runetype: [256]uint32{ + + 0: uint32(0x00000200), + + 1: uint32(0x00000200), + + 2: uint32(0x00000200), + + 3: uint32(0x00000200), + + 4: uint32(0x00000200), + + 5: uint32(0x00000200), + + 6: uint32(0x00000200), + + 7: uint32(0x00000200), + + 8: uint32(0x00000200), + + 9: uint32(0x00000200 | + + 0x00004000 | + + 0x00020000), + + 10: uint32(0x00000200 | + + 0x00004000), + + 11: uint32(0x00000200 | + + 0x00004000), + + 12: uint32(0x00000200 | + + 0x00004000), + + 13: uint32(0x00000200 | + + 0x00004000), + + 14: uint32(0x00000200), + + 15: uint32(0x00000200), + + 16: uint32(0x00000200), + + 17: uint32(0x00000200), + + 18: uint32(0x00000200), + + 19: uint32(0x00000200), + + 20: uint32(0x00000200), + + 21: uint32(0x00000200), + + 22: uint32(0x00000200), + + 23: uint32(0x00000200), + + 24: uint32(0x00000200), + + 25: uint32(0x00000200), + + 26: uint32(0x00000200), + + 27: uint32(0x00000200), + + 28: uint32(0x00000200), + + 29: uint32(0x00000200), + + 30: uint32(0x00000200), + + 31: uint32(0x00000200), + + 32: uint32(0x00004000 | + + 0x00020000 | + + 0x00040000), + + 33: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 34: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 35: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 36: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 37: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 38: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 39: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 40: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 41: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 42: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 43: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 44: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 45: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 46: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 47: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 48: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 0), + + 49: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 1), + + 50: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 2), + + 51: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 3), + + 52: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 4), + + 53: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 5), + + 54: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 6), + + 55: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 7), + + 56: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 8), + + 57: uint32(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + 9), + + 58: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 59: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 60: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 61: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 62: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 63: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 64: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 65: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 10), + + 66: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 11), + + 67: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 12), + + 68: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 13), + + 69: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 14), + + 70: uint32(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 15), + + 71: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 72: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 73: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 74: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 75: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 76: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 77: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 78: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 79: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 80: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 81: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 82: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 83: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 84: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 85: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 86: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 87: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 88: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 89: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 90: uint32(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 91: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 92: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 93: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 94: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 95: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 96: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 97: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 10), + + 98: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 11), + + 99: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 12), + + 100: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 13), + + 101: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 14), + + 102: uint32(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + 15), + + 103: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 104: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 105: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 106: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 107: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 108: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 109: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 110: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 111: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 112: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 113: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 114: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 115: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 116: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 117: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 118: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 119: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 120: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 121: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 122: uint32(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 123: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 124: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 125: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 126: uint32(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 127: uint32(0x00000200), + }, + __maplower: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, + __mapupper: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, +} /* table.cpp.c:2243:19 */ + +var X_CurrentRuneLocale uintptr = 0 /* table.cpp.c:4092:19 */ + +/// _RuneLocale * +/// __runes_for_locale(locale_t locale, int *mb_sb_limit) +/// { +/// (locale = get_real_locale(locale)); +/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]); +/// *mb_sb_limit = c->__mb_sb_limit; +/// return c->runes; +/// } + +func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ + return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +} + +type locale_t = uintptr /* alltypes.h:366:32 */ + +func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ + return Bool32(func() int32 { + if 0 != 0 { + return Xisalpha(tls, c) + } + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) + }() != 0 || func() int32 { + if 0 != 0 { + return Xisdigit(tls, c) + } + return Bool32(uint32(c)-uint32('0') < uint32(10)) + }() != 0) +} + +func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */ + return Xisalnum(tls, c) +} + +func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) +} + +func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */ + return Xisalpha(tls, c) +} + +func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ + return Bool32(uint32(c)-uint32('0') < uint32(10)) +} + +func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ + return Xisdigit(tls, c) +} + +type uintptr_t = uint32 /* alltypes.h:78:24 */ + +type intptr_t = int32 /* alltypes.h:93:15 */ + +type int8_t = int8 /* alltypes.h:119:25 */ + +type int16_t = int16 /* alltypes.h:124:25 */ + +type int32_t = int32 /* alltypes.h:129:25 */ + +type int64_t = int64 /* alltypes.h:134:25 */ + +type intmax_t = int64 /* alltypes.h:139:25 */ + +type uint8_t = uint8 /* alltypes.h:144:25 */ + +type uint16_t = uint16 /* alltypes.h:149:25 */ + +type uint32_t = uint32 /* alltypes.h:154:25 */ + +type uint64_t = uint64 /* alltypes.h:159:25 */ + +type uintmax_t = uint64 /* alltypes.h:169:25 */ + +type int_fast8_t = int8_t /* stdint.h:22:16 */ +type int_fast64_t = int64_t /* stdint.h:23:17 */ + +type int_least8_t = int8_t /* stdint.h:25:17 */ +type int_least16_t = int16_t /* stdint.h:26:17 */ +type int_least32_t = int32_t /* stdint.h:27:17 */ +type int_least64_t = int64_t /* stdint.h:28:17 */ + +type uint_fast8_t = uint8_t /* stdint.h:30:17 */ +type uint_fast64_t = uint64_t /* stdint.h:31:18 */ + +type uint_least8_t = uint8_t /* stdint.h:33:18 */ +type uint_least16_t = uint16_t /* stdint.h:34:18 */ +type uint_least32_t = uint32_t /* stdint.h:35:18 */ +type uint_least64_t = uint64_t /* stdint.h:36:18 */ + +type int_fast16_t = int32_t /* stdint.h:1:17 */ +type int_fast32_t = int32_t /* stdint.h:2:17 */ +type uint_fast16_t = uint32_t /* stdint.h:3:18 */ +type uint_fast32_t = uint32_t /* stdint.h:4:18 */ + +type ssize_t = int32 /* alltypes.h:88:15 */ + +type off_t = int64 /* alltypes.h:185:16 */ + +type _IO_FILE = struct { + flags uint32 + rpos uintptr + rend uintptr + close uintptr + wend uintptr + wpos uintptr + mustbezero_1 uintptr + wbase uintptr + read uintptr + write uintptr + seek uintptr + buf uintptr + buf_size size_t + prev uintptr + next uintptr + fd int32 + pipe_pid int32 + lockcount int32 + mode int32 + lock int32 + lbf int32 + cookie uintptr + off off_t + getln_buf uintptr + mustbezero_2 uintptr + shend uintptr + shlim off_t + shcnt off_t + prev_locked uintptr + next_locked uintptr + locale uintptr +} /* alltypes.h:343:9 */ + +type FILE = _IO_FILE /* alltypes.h:343:25 */ + +type va_list = uintptr /* alltypes.h:349:27 */ + +type _G_fpos64_t = struct { + _ [0]uint32 + __opaque [16]int8 +} /* stdio.h:54:9 */ + +type fpos_t = _G_fpos64_t /* stdio.h:58:3 */ + +type float_t = float64 /* alltypes.h:38:21 */ + +type double_t = float64 /* alltypes.h:43:21 */ + +func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + // var __u struct {__f float32;} at bp, 4 + + *(*float32)(unsafe.Pointer(bp)) = __f + return *(*uint32)(unsafe.Pointer(bp)) +} + +func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + // var __u struct {__f float64;} at bp, 8 + + *(*float64)(unsafe.Pointer(bp)) = __f + return *(*uint64)(unsafe.Pointer(bp)) +} + +type syscall_arg_t = int32 /* syscall.h:22:14 */ + +func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ + var c int32 + var x int32 + var y int64 + var neg int32 = 0 + + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if c == '+' || c == '-' { + neg = Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if uint32(c-'0') >= 10 && pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } + if uint32(c-'0') >= 10 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + return -0x7fffffffffffffff - int64(1) + } + for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + x = 10*x + c - '0' + } + for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + y = int64(10)*y + int64(c) - int64('0') + } + for ; uint32(c-'0') < 10; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if neg != 0 { + return -y + } + return y +} + +func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */ + bp := tls.Alloc(512) + defer tls.Free(512) + + // var x [128]uint32_t at bp, 512 + + var i int32 + var j int32 + var k int32 + var a int32 + var z int32 + var lrp int64 = int64(0) + var dc int64 = int64(0) + var e10 int64 = int64(0) + var lnz int32 = 0 + var gotdig int32 = 0 + var gotrad int32 = 0 + var rp int32 + var e2 int32 + var emax int32 = -emin - bits + 3 + var denormal int32 = 0 + var y float64 + var frac float64 = float64(0) + var bias float64 = float64(0) + + j = 0 + k = 0 + + // Don't let leading zeros consume buffer space + for ; c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + } + if c == '.' { + gotrad = 1 + for c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }(); c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + lrp-- + } + } + + *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0) + for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + if c == '.' { + if gotrad != 0 { + break + } + gotrad = 1 + lrp = dc + } else if k < 128-3 { + dc++ + if c != '0' { + lnz = int32(dc) + } + if j != 0 { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0') + } else { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0') + } + if PreIncInt32(&j, 1) == 9 { + k++ + j = 0 + } + gotdig = 1 + } else { + dc++ + if c != '0' { + lnz = (128 - 4) * 9 + *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1) + } + } + } + if !(gotrad != 0) { + lrp = dc + } + + if gotdig != 0 && c|32 == 'e' { + e10 = scanexp(tls, f, pok) + if e10 == -0x7fffffffffffffff-int64(1) { + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } else { + X__shlim(tls, f, int64(0)) + return float64(0) + } + e10 = int64(0) + } + lrp = lrp + e10 + } else if c >= 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + if !(gotdig != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + + // Handle zero specially to avoid nasty special cases later + if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) { + return float64(sign) * 0.0 + } + + // Optimize small integers (w/no exponent) and over/under-flow + if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) + } + if lrp > int64(-emin/2) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 + } + if lrp < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 + } + + // Align incomplete final B1B digit + if j != 0 { + for ; j < 9; j++ { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10) + } + k++ + j = 0 + } + + a = 0 + z = k + e2 = 0 + rp = int32(lrp) + + // Optimize small to mid-size integers (even in exp. notation) + if lnz < 9 && lnz <= rp && rp < 18 { + if rp == 9 { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) + } + if rp < 9 { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp]) + } + var bitlim int32 = bits - 3*(rp-9) + if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10]) + } + } + + // Drop trailing zeros + for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- { + } + + // Align radix point to B1B digit boundary + if rp%9 != 0 { + var rpm9 int32 + if rp >= 0 { + rpm9 = rp % 9 + } else { + rpm9 = rp%9 + 9 + } + var p10 int32 = _sp10s[8-rpm9] + var carry uint32_t = uint32_t(0) + for k = a; k != z; k++ { + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry + carry = uint32_t(1000000000/p10) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) + rp = rp - 9 + } + } + if carry != 0 { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry + } + rp = rp + (9 - rpm9) + } + + // Upscale until desired number of bits are left of radix point + for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] { + var carry uint32_t = uint32_t(0) + e2 = e2 - 29 + for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) { + var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry) + if tmp > uint64(1000000000) { + carry = uint32_t(tmp / uint64(1000000000)) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000)) + } else { + carry = uint32_t(0) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp) + } + if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + z = k + } + if k == a { + break + } + } + if carry != 0 { + rp = rp + 9 + a = (a - 1) & (128 - 1) + if a == z { + z = (z - 1) & (128 - 1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) + } + *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry + } + } + + // Downscale until exactly number of bits are left of radix point + for { + var carry uint32_t = uint32_t(0) + var sh int32 = 1 + for i = 0; i < 2; i++ { + k = (a + i) & (128 - 1) + if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] { + i = 2 + break + } + if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] { + break + } + } + if i == 2 && rp == 9*2 { + break + } + // FIXME: find a way to compute optimal sh + if rp > 9+9*2 { + sh = 9 + } + e2 = e2 + sh + for k = a; k != z; k = (k + 1) & (128 - 1) { + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry + carry = uint32_t(int32(1000000000)>>sh) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) + i-- + rp = rp - 9 + } + } + if carry != 0 { + if (z+1)&(128-1) != a { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry + z = (z + 1) & (128 - 1) + } else { + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1) + } + } + } + + // Assemble desired bits into floating point variable + for y = float64(AssignInt32(&i, 0)); i < 2; i++ { + if (a+i)&(128-1) == z { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0) + } + y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))) + } + + y = y * float64(sign) + + // Limit precision for denormal results + if bits > 53+e2-emin { + bits = 53 + e2 - emin + if bits < 0 { + bits = 0 + } + denormal = 1 + } + + // Calculate bias term to force rounding, move out lower bits + if bits < 53 { + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y) + frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits)) + y = y - frac + y = y + bias + } + + // Process tail of decimal input so it can affect rounding + if (a+i)&(128-1) != z { + var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) + if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) { + frac = frac + 0.25*float64(sign) + } else if t > uint32_t(500000000) { + frac = frac + 0.75*float64(sign) + } else if t == uint32_t(500000000) { + if (a+i+1)&(128-1) == z { + frac = frac + 0.5*float64(sign) + } else { + frac = frac + 0.75*float64(sign) + } + } + if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) { + frac += 1 + } + } + + y = y + frac + y = y - bias + + if (e2+53)&0x7fffffff > emax-5 { + if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 { + if denormal != 0 && bits == 53+e2-emin { + denormal = 0 + } + y = y * 0.5 + e2++ + } + if e2+53 > emax || denormal != 0 && frac != 0 { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + } + } + + return Xscalbnl(tls, y, e2) +} + +var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */ +var _sp10s = [8]int32{10, 100, 1000, 10000, + 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */ + +func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */ + var x uint32_t = uint32_t(0) + var y float64 = float64(0) + var scale float64 = float64(1) + var bias float64 = float64(0) + var gottail int32 = 0 + var gotrad int32 = 0 + var gotdig int32 = 0 + var rp int64 = int64(0) + var dc int64 = int64(0) + var e2 int64 = int64(0) + var d int32 + var c int32 + + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + + // Skip leading zeros + for ; c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + } + + if c == '.' { + gotrad = 1 + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + // Count zeros after the radix point before significand + rp = int64(0) + __1: + if !(c == '0') { + goto __3 + } + gotdig = 1 + goto __2 + __2: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + rp-- + goto __1 + goto __3 + __3: + } + + for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + if c == '.' { + if gotrad != 0 { + break + } + rp = dc + gotrad = 1 + } else { + gotdig = 1 + if c > '9' { + d = c | 32 + 10 - 'a' + } else { + d = c - '0' + } + if dc < int64(8) { + x = x*uint32_t(16) + uint32_t(d) + } else if dc < int64(53/4+1) { + y = y + float64(d)*AssignDivFloat64(&scale, float64(16)) + } else if d != 0 && !(gottail != 0) { + y = y + 0.5*scale + gottail = 1 + } + dc++ + } + } + if !(gotdig != 0) { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if gotrad != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } else { + X__shlim(tls, f, int64(0)) + } + return float64(sign) * 0.0 + } + if !(gotrad != 0) { + rp = dc + } + for dc < int64(8) { + x = x * uint32_t(16) + dc++ + } + if c|32 == 'p' { + e2 = scanexp(tls, f, pok) + if e2 == -0x7fffffffffffffff-int64(1) { + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } else { + X__shlim(tls, f, int64(0)) + return float64(0) + } + e2 = int64(0) + } + } else { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + e2 = e2 + (int64(4)*rp - int64(32)) + + if !(x != 0) { + return float64(sign) * 0.0 + } + if e2 > int64(-emin) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 + } + if e2 < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 + } + + for x < 0x80000000 { + if y >= 0.5 { + x = x + (x + uint32_t(1)) + y = y + (y - float64(1)) + } else { + x = x + x + y = y + y + } + e2-- + } + + if int64(bits) > int64(32)+e2-int64(emin) { + bits = int32(int64(32) + e2 - int64(emin)) + if bits < 0 { + bits = 0 + } + } + + if bits < 53 { + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign)) + } + + if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) { + x++ + y = float64(0) + } + + y = bias + float64(sign)*float64(x) + float64(sign)*y + y = y - bias + + if !(y != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + } + + return Xscalbnl(tls, y, int32(e2)) +} + +func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */ + var sign int32 = 1 + var i size_t + var bits int32 + var emin int32 + var c int32 + + switch prec { + case 0: + bits = 24 + emin = -125 - bits + break + case 1: + bits = 53 + emin = -1021 - bits + break + case 2: + bits = 53 + emin = -1021 - bits + break + default: + return float64(0) + } + + for __isspace(tls, AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) != 0 { + } + + if c == '+' || c == '-' { + sign = sign - 2*Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + + for i = size_t(0); i < size_t(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 41 /* "infinity" */ + uintptr(i)))); i++ { + if i < size_t(7) { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + } + if i == size_t(3) || i == size_t(8) || i > size_t(3) && pok != 0 { + if i != size_t(8) { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if pok != 0 { + for ; i > size_t(3); i-- { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } + } + return float64(float32(sign) * X__builtin_inff(tls)) + } + if !(i != 0) { + for i = size_t(0); i < size_t(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 50 /* "nan" */ + uintptr(i)))); i++ { + if i < size_t(2) { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + } + } + if i == size_t(3) { + if func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() != '(' { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + return float64(X__builtin_nanf(tls, ts+54)) + } + for i = size_t(1); ; i++ { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' { + continue + } + if c == ')' { + return float64(X__builtin_nanf(tls, ts+54)) + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(pok != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + for PostDecUint32(&i, 1) != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + return float64(X__builtin_nanf(tls, ts+54)) + } + return float64(X__builtin_nanf(tls, ts+54)) + } + + if i != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + + if c == '0' { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if c|32 == 'x' { + return hexfloat(tls, f, bits, emin, sign, pok) + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + c = '0' + } + + return decfloat(tls, f, c, bits, emin, sign, pok) +} + +// Lookup table for digit values. -1==255>=36 -> invalid +var table = [257]uint8{Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), + uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), + uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), +} /* intscan.c:7:28 */ + +func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */ + var val uintptr + var c int32 + var neg int32 + var x uint32 + var y uint64 + var bs int32 + val = uintptr(unsafe.Pointer(&table)) + uintptr(1) + neg = 0 + if !(base > uint32(36) || base == uint32(1)) { + goto __1 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + return uint64(0) +__1: + ; +__2: + if !(__isspace(tls, AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) != 0) { + goto __3 + } + goto __2 +__3: + ; + if !(c == '+' || c == '-') { + goto __4 + } + neg = -Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() +__4: + ; + if !((base == uint32(0) || base == uint32(16)) && c == '0') { + goto __5 + } + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if !(c|32 == 'x') { + goto __7 + } + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) { + goto __9 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(pok != 0) { + goto __10 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + goto __11 +__10: + X__shlim(tls, f, int64(0)) +__11: + ; + return uint64(0) +__9: + ; + base = uint32(16) + goto __8 +__7: + if !(base == uint32(0)) { + goto __12 + } + base = uint32(8) +__12: + ; +__8: + ; + goto __6 +__5: + if !(base == uint32(0)) { + goto __13 + } + base = uint32(10) +__13: + ; + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) { + goto __14 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + X__shlim(tls, f, int64(0)) + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + return uint64(0) +__14: + ; +__6: + ; + if !(base == uint32(10)) { + goto __15 + } + x = uint32(0) +__17: + if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) { + goto __19 + } + x = x*uint32(10) + uint32(c-'0') + goto __18 +__18: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __17 + goto __19 +__19: + ; + y = uint64(x) +__20: + if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) { + goto __22 + } + y = y*uint64(10) + uint64(c-'0') + goto __21 +__21: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __20 + goto __22 +__22: + ; + if !(uint32(c-'0') >= 10) { + goto __23 + } + goto done +__23: + ; + goto __16 +__15: + if !!(base&(base-uint32(1)) != 0) { + goto __24 + } + bs = int32(*(*int8)(unsafe.Pointer(ts + 55 + uintptr(uint32(0x17)*base>>5&uint32(7))))) + x = uint32(0) +__26: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) { + goto __28 + } + x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __27 +__27: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __26 + goto __28 +__28: + ; + y = uint64(x) +__29: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) { + goto __31 + } + y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __30 +__30: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __29 + goto __31 +__31: + ; + goto __25 +__24: + x = uint32(0) +__32: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) { + goto __34 + } + x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __33 +__33: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __32 + goto __34 +__34: + ; + y = uint64(x) +__35: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) { + goto __37 + } + y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __36 +__36: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __35 + goto __37 +__37: + ; +__25: + ; +__16: + ; + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) { + goto __38 + } +__39: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) { + goto __41 + } + goto __40 +__40: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __39 + goto __41 +__41: + ; + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + y = lim + if !(lim&uint64(1) != 0) { + goto __42 + } + neg = 0 +__42: + ; +__38: + ; +done: + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(y >= lim) { + goto __43 + } + if !(!(lim&uint64(1) != 0) && !(neg != 0)) { + goto __44 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return lim - uint64(1) + goto __45 +__44: + if !(y > lim) { + goto __46 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return lim +__46: + ; +__45: + ; +__43: + ; + return y ^ uint64(neg) - uint64(neg) +} + +// The shcnt field stores the number of bytes read so far, offset by +// the value of buf-rpos at the last function call (__shlim or __shgetc), +// so that between calls the inline shcnt macro can add rpos-buf to get +// the actual count. + +func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */ + (*FILE)(unsafe.Pointer(f)).shlim = lim + (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf) - int32((*FILE)(unsafe.Pointer(f)).rpos)) / 1) + // If lim is nonzero, rend must be a valid pointer. + if lim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > lim { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim) + } else { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend + } +} + +func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ + var c int32 + var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(f)).rpos)-int32((*FILE)(unsafe.Pointer(f)).buf))/1) + if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 { + (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + (*FILE)(unsafe.Pointer(f)).shlim = int64(-1) + return -1 + } + cnt++ + if (*FILE)(unsafe.Pointer(f)).shlim != 0 && off_t((int32((*FILE)(unsafe.Pointer(f)).rend)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) > (*FILE)(unsafe.Pointer(f)).shlim-cnt { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt) + } else { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend + } + (*FILE)(unsafe.Pointer(f)).shcnt = off_t((int32((*FILE)(unsafe.Pointer(f)).buf)-int32((*FILE)(unsafe.Pointer(f)).rpos))/1) + cnt + if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf { + *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c) + } + return c +} + +func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */ + return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24 +} + +func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */ + return Xcopysign(tls, x, y) +} + +func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */ + return Xfabs(tls, x) +} + +func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */ + return Xfmod(tls, x, y) +} + +var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */ + +func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) { + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x + return r + }() + var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff)) + var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63) + var y double_t + + if e >= 0x3ff+52 { + return x + } + if s != 0 { + y = x - toint + toint + } else { + y = x + toint - toint + } + if y == float64(0) { + if s != 0 { + return -Float64FromFloat64(0.0) + } + return float64(0) + } + return y +} + +func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + // var u struct {f float64;} at bp, 8 + + var y double_t = x + + if n > 1023 { + y = y * 0x1p1023 + n = n - 1023 + if n > 1023 { + y = y * 0x1p1023 + n = n - 1023 + if n > 1023 { + n = 1023 + } + } + } else if n < -1022 { + // make sure final n < -53 to avoid double + // rounding in the subnormal range + y = y * (float64(0x1p-1022) * 0x1p53) + n = n + (1022 - 53) + if n < -1022 { + y = y * (float64(0x1p-1022) * 0x1p53) + n = n + (1022 - 53) + if n < -1022 { + n = -1022 + } + } + } + *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52 + x = y * *(*float64)(unsafe.Pointer(bp)) + return x +} + +func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */ + return Xscalbn(tls, x, n) +} + +type div_t = struct { + quot int32 + rem int32 +} /* stdlib.h:62:35 */ +type ldiv_t = struct { + quot int32 + rem int32 +} /* stdlib.h:63:36 */ +type lldiv_t = struct { + quot int64 + rem int64 +} /* stdlib.h:64:41 */ + +type max_align_t = struct { + __ll int64 + __ld float64 +} /* alltypes.h:51:66 */ + +type imaxdiv_t = struct { + quot intmax_t + rem intmax_t +} /* inttypes.h:14:40 */ + +type pid_t = int32 /* alltypes.h:258:13 */ + +type uid_t = uint32 /* alltypes.h:268:18 */ + +type gid_t = uint32 /* alltypes.h:273:18 */ + +type iovec = struct { + iov_base uintptr + iov_len size_t +} /* alltypes.h:378:1 */ + +type socklen_t = uint32 /* alltypes.h:384:18 */ + +type sa_family_t = uint16 /* alltypes.h:389:24 */ + +type msghdr = struct { + msg_name uintptr + msg_namelen socklen_t + msg_iov uintptr + msg_iovlen int32 + msg_control uintptr + msg_controllen socklen_t + msg_flags int32 +} /* socket.h:22:1 */ + +type cmsghdr = struct { + cmsg_len socklen_t + cmsg_level int32 + cmsg_type int32 +} /* socket.h:44:1 */ + +type linger = struct { + l_onoff int32 + l_linger int32 +} /* socket.h:74:1 */ + +type sockaddr = struct { + sa_family sa_family_t + sa_data [14]int8 +} /* socket.h:367:1 */ + +type sockaddr_storage = struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 +} /* socket.h:372:1 */ + +type in_port_t = uint16_t /* in.h:12:18 */ +type in_addr_t = uint32_t /* in.h:13:18 */ +type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */ + +type sockaddr_in = struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t +} /* in.h:16:1 */ + +type in6_addr = struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } +} /* in.h:23:1 */ + +type sockaddr_in6 = struct { + sin6_family sa_family_t + sin6_port in_port_t + sin6_flowinfo uint32_t + sin6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + sin6_scope_id uint32_t +} /* in.h:34:1 */ + +type ipv6_mreq = struct { + ipv6mr_multiaddr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + ipv6mr_interface uint32 +} /* in.h:42:1 */ + +type ip_opts = struct { + ip_dst struct{ s_addr in_addr_t } + ip_opts [40]int8 +} /* in.h:229:1 */ + +type ip_mreq = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_interface struct{ s_addr in_addr_t } +} /* in.h:247:1 */ + +type ip_mreqn = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_address struct{ s_addr in_addr_t } + imr_ifindex int32 +} /* in.h:252:1 */ + +type ip_mreq_source = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_interface struct{ s_addr in_addr_t } + imr_sourceaddr struct{ s_addr in_addr_t } +} /* in.h:258:1 */ + +type ip_msfilter = struct { + imsf_multiaddr struct{ s_addr in_addr_t } + imsf_interface struct{ s_addr in_addr_t } + imsf_fmode uint32_t + imsf_numsrc uint32_t + imsf_slist [1]struct{ s_addr in_addr_t } +} /* in.h:264:1 */ + +type group_req = struct { + gr_interface uint32_t + gr_group struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 + } +} /* in.h:275:1 */ + +type group_source_req = struct { + gsr_interface uint32_t + gsr_group struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 + } + gsr_source struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 + } +} /* in.h:280:1 */ + +type group_filter = struct { + gf_interface uint32_t + gf_group struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 + } + gf_fmode uint32_t + gf_numsrc uint32_t + gf_slist [1]struct { + ss_family sa_family_t + __ss_padding [122]int8 + __ss_align uint32 + } +} /* in.h:286:1 */ + +type in_pktinfo = struct { + ipi_ifindex int32 + ipi_spec_dst struct{ s_addr in_addr_t } + ipi_addr struct{ s_addr in_addr_t } +} /* in.h:297:1 */ + +type in6_pktinfo = struct { + ipi6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + ipi6_ifindex uint32 +} /* in.h:303:1 */ + +type ip6_mtuinfo = struct { + ip6m_addr struct { + sin6_family sa_family_t + sin6_port in_port_t + sin6_flowinfo uint32_t + sin6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + sin6_scope_id uint32_t + } + ip6m_mtu uint32_t +} /* in.h:308:1 */ + +type addrinfo = struct { + ai_flags int32 + ai_family int32 + ai_socktype int32 + ai_protocol int32 + ai_addrlen socklen_t + ai_addr uintptr + ai_canonname uintptr + ai_next uintptr +} /* netdb.h:16:1 */ + +// Legacy functions follow (marked OBsolete in SUS) + +type netent = struct { + n_name uintptr + n_aliases uintptr + n_addrtype int32 + n_net uint32_t +} /* netdb.h:62:1 */ + +type hostent = struct { + h_name uintptr + h_aliases uintptr + h_addrtype int32 + h_length int32 + h_addr_list uintptr +} /* netdb.h:69:1 */ + +type servent = struct { + s_name uintptr + s_aliases uintptr + s_port int32 + s_proto uintptr +} /* netdb.h:78:1 */ + +type protoent = struct { + p_name uintptr + p_aliases uintptr + p_proto int32 +} /* netdb.h:85:1 */ + +type aibuf = struct { + ai struct { + ai_flags int32 + ai_family int32 + ai_socktype int32 + ai_protocol int32 + ai_addrlen socklen_t + ai_addr uintptr + ai_canonname uintptr + ai_next uintptr + } + sa struct { + sin struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + _ [12]byte + } + lock [1]int32 + slot int16 + ref int16 +} /* lookup.h:10:1 */ + +type sa = struct { + sin struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + _ [12]byte +} /* lookup.h:10:1 */ + +type address = struct { + family int32 + scopeid uint32 + addr [16]uint8_t + sortkey int32 +} /* lookup.h:20:1 */ + +type service = struct { + port uint16_t + proto uint8 + socktype uint8 +} /* lookup.h:27:1 */ + +type resolvconf = struct { + ns [3]struct { + family int32 + scopeid uint32 + addr [16]uint8_t + sortkey int32 + } + nns uint32 + attempts uint32 + ndots uint32 + timeout uint32 +} /* lookup.h:34:1 */ + +func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */ + var cnt size_t + cnt = size_t(1) +__1: + if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) { + goto __3 + } + goto __2 +__2: + cnt++ + p = (*addrinfo)(unsafe.Pointer(p)).ai_next + goto __1 + goto __3 +__3: + ; + var b uintptr = p - uintptr(uint32(uintptr(0))) + b -= 68 * uintptr((*aibuf)(unsafe.Pointer(b)).slot) + //TODO LOCK(b->lock); + if !(int32(AssignSubPtrInt16(b+66, int16(cnt))) != 0) { + Xfree(tls, b) + } + //TODO else UNLOCK(b->lock); +} + +type time_t = int64 /* alltypes.h:108:16 */ + +type clockid_t = int32 /* alltypes.h:237:13 */ + +type timespec = struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ +} /* alltypes.h:252:1 */ + +type pthread_t = uintptr /* alltypes.h:296:26 */ + +type pthread_once_t = int32 /* alltypes.h:302:13 */ + +type pthread_key_t = uint32 /* alltypes.h:307:18 */ + +type pthread_spinlock_t = int32 /* alltypes.h:312:13 */ + +type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:317:37 */ + +type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:322:37 */ + +type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:327:37 */ + +type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:332:40 */ + +type __sigset_t = struct{ __bits [32]uint32 } /* alltypes.h:372:9 */ + +type sigset_t = __sigset_t /* alltypes.h:372:71 */ + +type pthread_attr_t = struct{ __u struct{ __i [9]int32 } } /* alltypes.h:395:147 */ + +type pthread_mutex_t = struct{ __u struct{ __i [6]int32 } } /* alltypes.h:400:157 */ + +type pthread_cond_t = struct{ __u struct{ __i [12]int32 } } /* alltypes.h:410:112 */ + +type pthread_rwlock_t = struct{ __u struct{ __i [8]int32 } } /* alltypes.h:420:139 */ + +type pthread_barrier_t = struct{ __u struct{ __i [5]int32 } } /* alltypes.h:425:137 */ + +type sched_param = struct { + sched_priority int32 + __reserved1 int32 + __reserved2 [4]int32 + __reserved3 int32 +} /* sched.h:19:1 */ + +type timer_t = uintptr /* alltypes.h:232:14 */ + +type clock_t = int32 /* alltypes.h:242:14 */ + +type tm = struct { + tm_sec int32 + tm_min int32 + tm_hour int32 + tm_mday int32 + tm_mon int32 + tm_year int32 + tm_wday int32 + tm_yday int32 + tm_isdst int32 + tm_gmtoff int32 + tm_zone uintptr +} /* time.h:38:1 */ + +type itimerspec = struct { + it_interval struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ + } + it_value struct { + tv_sec time_t + tv_nsec int32 + __12 uint32 /* int : 32 */ + } +} /* time.h:80:1 */ + +type __ptcb = struct { + __f uintptr + __x uintptr + __next uintptr +} /* pthread.h:206:1 */ + +type useconds_t = uint32 /* alltypes.h:283:18 */ + +func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */ + bp := tls.Alloc(1608) + defer tls.Free(1608) + + // var ports [2]service at bp, 8 + + // var addrs [48]address at bp+8, 1344 + + // var canon [256]int8 at bp+1352, 256 + + var outcanon uintptr + var nservs int32 + var naddrs int32 + var nais int32 + var canon_len int32 + var i int32 + var j int32 + var k int32 + var family int32 = 0 + var flags int32 = 0 + var proto int32 = 0 + var socktype int32 = 0 + var out uintptr + + if !(host != 0) && !(serv != 0) { + return -2 + } + + if hint != 0 { + family = (*addrinfo)(unsafe.Pointer(hint)).ai_family + flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags + proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol + socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype + + var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400 + if flags&mask != flags { + return -1 + } + + switch family { + case 2: + fallthrough + case 10: + fallthrough + case 0: + break + fallthrough + default: + return -6 + } + } + + if flags&0x20 != 0 { + Xabort(tls) //TODO- + // /* Define the "an address is configured" condition for address + // * families via ability to create a socket for the family plus + // * routability of the loopback address for the family. */ + // static const struct sockaddr_in lo4 = { + // .sin_family = AF_INET, .sin_port = 65535, + // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN + // ? 0x7f000001 : 0x0100007f + // }; + // static const struct sockaddr_in6 lo6 = { + // .sin6_family = AF_INET6, .sin6_port = 65535, + // .sin6_addr = IN6ADDR_LOOPBACK_INIT + // }; + // int tf[2] = { AF_INET, AF_INET6 }; + // const void *ta[2] = { &lo4, &lo6 }; + // socklen_t tl[2] = { sizeof lo4, sizeof lo6 }; + // for (i=0; i<2; i++) { + // if (family==tf[1-i]) continue; + // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM, + // IPPROTO_UDP); + // if (s>=0) { + // int cs; + // pthread_setcancelstate( + // PTHREAD_CANCEL_DISABLE, &cs); + // int r = connect(s, ta[i], tl[i]); + // pthread_setcancelstate(cs, 0); + // close(s); + // if (!r) continue; + // } + // switch (errno) { + // case EADDRNOTAVAIL: + // case EAFNOSUPPORT: + // case EHOSTUNREACH: + // case ENETDOWN: + // case ENETUNREACH: + // break; + // default: + // return EAI_SYSTEM; + // } + // if (family == tf[i]) return EAI_NONAME; + // family = tf[1-i]; + // } + } + + nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags) + if nservs < 0 { + return nservs + } + + naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags) + if naddrs < 0 { + return naddrs + } + + nais = nservs * naddrs + canon_len = int32(Xstrlen(tls, bp+1352)) + out = Xcalloc(tls, uint32(1), uint32(nais)*uint32(unsafe.Sizeof(aibuf{}))+uint32(canon_len)+uint32(1)) + if !(out != 0) { + return -10 + } + + if canon_len != 0 { + outcanon = out + uintptr(nais)*68 + Xmemcpy(tls, outcanon, bp+1352, uint32(canon_len+1)) + } else { + outcanon = uintptr(0) + } + + for k = AssignInt32(&i, 0); i < naddrs; i++ { + j = 0 + __1: + if !(j < nservs) { + goto __3 + } + { + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).slot = int16(k) + //TODO out[k].ai = (struct addrinfo){ + //TODO .ai_family = addrs[i].family, + //TODO .ai_socktype = ports[j].socktype, + //TODO .ai_protocol = ports[j].proto, + //TODO .ai_addrlen = addrs[i].family == AF_INET + //TODO ? sizeof(struct sockaddr_in) + //TODO : sizeof(struct sockaddr_in6), + //TODO .ai_addr = (void *)&out[k].sa, + //TODO .ai_canonname = outcanon }; + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addrlen = func() uint32 { + if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 { + return uint32(unsafe.Sizeof(sockaddr_in{})) + } + return uint32(unsafe.Sizeof(sockaddr_in6{})) + }() + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_addr = out + uintptr(k)*68 + 32 + (*aibuf)(unsafe.Pointer(out + uintptr(k)*68)).ai.ai_canonname = outcanon + if k != 0 { + (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*68)).ai.ai_next = out + uintptr(k)*68 + } + switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family { + case 2: + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_family = sa_family_t(2) + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + Xmemcpy(tls, out+uintptr(k)*68+32+4, bp+8+uintptr(i)*28+8, uint32(4)) + break + case 10: + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_family = sa_family_t(10) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*68 + 32)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid + Xmemcpy(tls, out+uintptr(k)*68+32+8, bp+8+uintptr(i)*28+8, uint32(16)) + break + } + + } + goto __2 + __2: + j++ + k++ + goto __1 + goto __3 + __3: + } + (*aibuf)(unsafe.Pointer(out)).ref = int16(nais) + *(*uintptr)(unsafe.Pointer(res)) = out + return 0 +} + +type ucred = struct { + pid pid_t + uid uid_t + gid gid_t +} /* socket.h:57:1 */ + +type mmsghdr = struct { + msg_hdr struct { + msg_name uintptr + msg_namelen socklen_t + msg_iov uintptr + msg_iovlen int32 + msg_control uintptr + msg_controllen socklen_t + msg_flags int32 + } + msg_len uint32 +} /* socket.h:63:1 */ + +func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + var size size_t = size_t(63) + // var res uintptr at bp, 4 + + var err int32 + for ok := true; ok; ok = err == 34 { + Xfree(tls, _sh) + _sh = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1))) + if !(_sh != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 + return uintptr(0) + } + err = Xgethostbyaddr_r(tls, a, l, af, _sh, + _sh+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) + } + if err != 0 { + return uintptr(0) + } + return _sh +} + +var _sh uintptr /* gethostbyaddr.c:9:24: */ + +func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */ + return Xgethostbyname2(tls, name, 2) +} + +func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + var size size_t = size_t(63) + // var res uintptr at bp, 4 + + var err int32 + for ok := true; ok; ok = err == 34 { + Xfree(tls, _sh1) + _sh1 = Xmalloc(tls, AssignAddUint32(&size, size+size_t(1))) + if !(_sh1 != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 + return uintptr(0) + } + err = Xgethostbyname2_r(tls, name, af, _sh1, + _sh1+uintptr(1)*20, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) + } + if err != 0 { + return uintptr(0) + } + return _sh1 +} + +var _sh1 uintptr /* gethostbyname2.c:10:24: */ + +func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */ + bp := tls.Alloc(1600) + defer tls.Free(1600) + + // var addrs [48]address at bp, 1344 + + // var canon [256]int8 at bp+1344, 256 + + var i int32 + var cnt int32 + var align size_t + var need size_t + + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02) + if cnt < 0 { + switch cnt { + case -2: + *(*int32)(unsafe.Pointer(err)) = 1 + return 2 + fallthrough + case -3: + *(*int32)(unsafe.Pointer(err)) = 2 + return 11 + fallthrough + default: + fallthrough + case -4: + *(*int32)(unsafe.Pointer(err)) = 3 + return 74 + fallthrough + case -10: + fallthrough + case -11: + *(*int32)(unsafe.Pointer(err)) = 3 + return *(*int32)(unsafe.Pointer(X___errno_location(tls))) + } + } + + (*hostent)(unsafe.Pointer(h)).h_addrtype = af + (*hostent)(unsafe.Pointer(h)).h_length = func() int32 { + if af == 10 { + return 16 + } + return 4 + }() + + // Align buffer + align = -uintptr_t(buf) & (uint32(unsafe.Sizeof(uintptr(0))) - uint32(1)) + + need = uint32(4) * uint32(unsafe.Sizeof(uintptr(0))) + need = need + uint32(cnt+1)*(uint32(unsafe.Sizeof(uintptr(0)))+uint32((*hostent)(unsafe.Pointer(h)).h_length)) + need = need + (Xstrlen(tls, name) + size_t(1)) + need = need + (Xstrlen(tls, bp+1344) + size_t(1)) + need = need + align + + if need > buflen { + return 34 + } + + buf += uintptr(align) + (*hostent)(unsafe.Pointer(h)).h_aliases = buf + buf += uintptr(uint32(3) * uint32(unsafe.Sizeof(uintptr(0)))) + (*hostent)(unsafe.Pointer(h)).h_addr_list = buf + buf += uintptr(uint32(cnt+1) * uint32(unsafe.Sizeof(uintptr(0)))) + + for i = 0; i < cnt; i++ { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = buf + buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)), bp+uintptr(i)*28+8, uint32((*hostent)(unsafe.Pointer(h)).h_length)) + } + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*4)) = uintptr(0) + + (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf) + Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344) + buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + size_t(1)) + + if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = buf + Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)), name) + buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4))) + size_t(1)) + } else { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*4)) = uintptr(0) + } + + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*4)) = uintptr(0) + + *(*uintptr)(unsafe.Pointer(res)) = h + return 0 +} + +type if_nameindex = struct { + if_index uint32 + if_name uintptr +} /* if.h:12:1 */ + +type ifaddr = struct { + ifa_addr struct { + sa_family sa_family_t + sa_data [14]int8 + } + ifa_ifu struct { + ifu_broadaddr struct { + sa_family sa_family_t + sa_data [14]int8 + } + } + ifa_ifp uintptr + ifa_next uintptr +} /* if.h:51:1 */ + +type ifmap = struct { + mem_start uint32 + mem_end uint32 + base_addr uint16 + irq uint8 + dma uint8 + port uint8 + _ [3]byte +} /* if.h:64:1 */ + +type ifreq = struct { + ifr_ifrn struct{ ifrn_name [16]int8 } + ifr_ifru struct { + _ [0]uint32 + ifru_addr struct { + sa_family sa_family_t + sa_data [14]int8 + } + } +} /* if.h:76:1 */ + +type ifconf = struct { + ifc_len int32 + ifc_ifcu struct{ ifcu_buf uintptr } +} /* if.h:116:1 */ + +type ns_sect = uint32 /* nameser.h:37:3 */ + +type __ns_msg = struct { + _msg uintptr + _eom uintptr + _id uint16_t + _flags uint16_t + _counts [4]uint16_t + _sections [4]uintptr + _sect ns_sect + _rrnum int32 + _msg_ptr uintptr +} /* nameser.h:39:9 */ + +type ns_msg = __ns_msg /* nameser.h:46:3 */ + +type _ns_flagdata = struct { + mask int32 + shift int32 +} /* nameser.h:48:1 */ + +type __ns_rr = struct { + name [1025]int8 + _ [1]byte + __type uint16_t + rr_class uint16_t + _ [2]byte + ttl uint32_t + rdlength uint16_t + _ [2]byte + rdata uintptr +} /* nameser.h:59:9 */ + +type ns_rr = __ns_rr /* nameser.h:66:3 */ + +type ns_flag = uint32 /* nameser.h:87:3 */ + +type ns_opcode = uint32 /* nameser.h:96:3 */ + +type ns_rcode = uint32 /* nameser.h:115:3 */ + +type ns_update_operation = uint32 /* nameser.h:121:3 */ + +type ns_tsig_key1 = struct { + name [1025]int8 + alg [1025]int8 + _ [2]byte + data uintptr + len int32 +} /* nameser.h:123:1 */ + +type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */ + +type ns_tcp_tsig_state1 = struct { + counter int32 + key uintptr + ctx uintptr + sig [512]uint8 + siglen int32 +} /* nameser.h:130:1 */ + +type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */ + +type ns_type = uint32 /* nameser.h:200:3 */ + +type ns_class = uint32 /* nameser.h:219:3 */ + +type ns_key_types = uint32 /* nameser.h:226:3 */ + +type ns_cert_types = uint32 /* nameser.h:234:3 */ + +type HEADER = struct { + _ [0]uint32 + id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */ + qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */ + nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */ +} /* nameser.h:353:3 */ + +// unused; purely for broken apps +type __res_state = struct { + retrans int32 + retry int32 + options uint32 + nscount int32 + nsaddr_list [3]struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + id uint16 + _ [2]byte + dnsrch [7]uintptr + defdname [256]int8 + pfcode uint32 + ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */ + _ [4]byte + sort_list [10]struct { + addr struct{ s_addr in_addr_t } + mask uint32_t + } + qhook uintptr + rhook uintptr + res_h_errno int32 + _vcsock int32 + _flags uint32 + _u struct { + _ [0]uint32 + pad [52]int8 + } +} /* resolv.h:26:9 */ + +// unused; purely for broken apps +type res_state = uintptr /* resolv.h:62:3 */ + +type res_sym = struct { + number int32 + name uintptr + humanname uintptr +} /* resolv.h:70:1 */ + +func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */ + p += uintptr(uint32(3) * uint32(unsafe.Sizeof(int32(0)))) + *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0) + for ok := true; ok; ok = x != 0 { + *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10)) + x = x / uint32(10) + } + return p +} + +func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ + bp := tls.Alloc(32) + defer tls.Free(32) + + Xsprintf(tls, s, ts+64, + VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) +} + +func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ + var i int32 + for i = 15; i >= 0; i-- { + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') + } + Xstrcpy(tls, s, ts+89) +} + +var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 98)) /* getnameinfo.c:36:20 */ + +func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ + bp := tls.Alloc(556) + defer tls.Free(556) + + // var line [512]int8 at bp+16, 512 + + var p uintptr + var z uintptr + var _buf [1032]uint8 + _ = _buf + // var atmp [16]uint8 at bp, 16 + + // var iplit address at bp+528, 28 + + //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); + var f uintptr = Xfopen(tls, ts+115, ts+126) + if !(f != 0) { + return + } + if family == 2 { + Xmemcpy(tls, bp+uintptr(12), a, uint32(4)) + Xmemcpy(tls, bp, ts+129, uint32(12)) + a = bp /* &atmp[0] */ + } + for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 { + if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 { + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') + *(*int8)(unsafe.Pointer(p)) = int8(0) + } + + for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + } + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) + if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 { + continue + } + + if (*address)(unsafe.Pointer(bp+528)).family == 2 { + Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint32(4)) + Xmemcpy(tls, bp+528+8, ts+129, uint32(12)) + (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) + } + + if Xmemcmp(tls, a, bp+528+8, uint32(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid { + continue + } + + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { + } + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + } + *(*int8)(unsafe.Pointer(z)) = int8(0) + if (int32(z)-int32(p))/1 < 256 { + Xmemcpy(tls, buf, p, uint32((int32(z)-int32(p))/1+1)) + break + } + } + //TODO __fclose_ca(f); + Xfclose(tls, f) +} + +func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */ + Xabort(tls) //TODO- + // unsigned long svport; + // char line[128], *p, *z; + // unsigned char _buf[1032]; + // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); + // if (!f) return; + // while (fgets(line, sizeof line, f)) { + // if ((p=strchr(line, '#'))) *p++='\n', *p=0; + + // for (p=line; *p && !isspace(*p); p++); + // if (!*p) continue; + // *p++ = 0; + // svport = strtoul(p, &z, 10); + + // if (svport != port || z==p) continue; + // if (dgram && strncmp(z, "/udp", 4)) continue; + // if (!dgram && strncmp(z, "/tcp", 4)) continue; + // if (p-line > 32) continue; + + // memcpy(buf, line, p-line); + // break; + // } + // __fclose_ca(f); +} + +var Xh_errno int32 /* h_errno.c:4:5: */ + +func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */ + return uintptr(unsafe.Pointer(&Xh_errno)) +} + +func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */ + bp := tls.Alloc(20) + defer tls.Free(20) + + var s uintptr = s0 + var d uintptr = dest + *(*[4]uint32)(unsafe.Pointer(bp /* a */)) = [4]uint32{0: uint32(0)} + // var z uintptr at bp+16, 4 + + var i int32 + + for i = 0; i < 4; i++ { + *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) = Xstrtoul(tls, s, bp+16, 0) + if *(*uintptr)(unsafe.Pointer(bp + 16)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != '.' || !(func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s)))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) + }() != 0) { + return 0 + } + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))) != 0) { + break + } + s = *(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(1) + } + if i == 4 { + return 0 + } + switch i { + case 0: + *(*uint32)(unsafe.Pointer(bp + 1*4)) = *(*uint32)(unsafe.Pointer(bp)) & uint32(0xffffff) + AssignShrPtrUint32(bp, int(24)) + fallthrough + case 1: + *(*uint32)(unsafe.Pointer(bp + 2*4)) = *(*uint32)(unsafe.Pointer(bp + 1*4)) & uint32(0xffff) + AssignShrPtrUint32(bp+1*4, int(16)) + fallthrough + case 2: + *(*uint32)(unsafe.Pointer(bp + 3*4)) = *(*uint32)(unsafe.Pointer(bp + 2*4)) & uint32(0xff) + AssignShrPtrUint32(bp+2*4, int(8)) + } + for i = 0; i < 4; i++ { + if *(*uint32)(unsafe.Pointer(bp + uintptr(i)*4)) > uint32(255) { + return 0 + } + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint32)(unsafe.Pointer(bp + uintptr(i)*4))) + } + return 1 +} + +func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */ + bp := tls.Alloc(276) + defer tls.Free(276) + + var a uintptr = a0 + var i int32 + var j int32 + var max int32 + var best int32 + // var buf [100]int8 at bp+176, 100 + + switch af { + case 2: + if socklen_t(Xsnprintf(tls, s, l, ts+142, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + return s + } + break + case 10: + if Xmemcmp(tls, a, ts+129, uint32(12)) != 0 { + Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})), + ts+154, + VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } else { + Xsnprintf(tls, bp+176, uint32(unsafe.Sizeof([100]int8{})), + ts+178, + VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), + int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } + // Replace longest /(^0|:)[:0]{2,}/ with "::" + i = AssignInt32(&best, 0) + max = 2 + for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ { + if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { + continue + } + j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+208)) + if j > max { + best = i + max = j + } + } + if max > 3 { + *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':')) + Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint32(i-best-max+1)) + } + if Xstrlen(tls, bp+176) < l { + Xstrcpy(tls, s, bp+176) + return s + } + break + default: + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 + return uintptr(0) + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28 + return uintptr(0) +} + +func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */ + if c-uint32('0') < uint32(10) { + return int32(c - uint32('0')) + } + c = c | uint32(32) + if c-uint32('a') < uint32(6) { + return int32(c - uint32('a') + uint32(10)) + } + return -1 +} + +func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */ + bp := tls.Alloc(16) + defer tls.Free(16) + + // var ip [8]uint16_t at bp, 16 + + var a uintptr = a0 + var i int32 + var j int32 + var v int32 + var d int32 + var brk int32 = -1 + var need_v4 int32 = 0 + + if af == 2 { + for i = 0; i < 4; i++ { + for v = AssignInt32(&j, 0); j < 3 && func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10)) + }() != 0; j++ { + v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0' + } + if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 { + return 0 + } + *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 { + return 1 + } + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' { + return 0 + } + s += uintptr(j + 1) + } + return 0 + } else if af != 10 { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 + return -1 + } + + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' { + return 0 + } + + for i = 0; ; i++ { + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 { + brk = i + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0) + if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) { + break + } + if i == 7 { + return 0 + } + continue + } + for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ { + v = 16*v + d + } + if j == 0 { + return 0 + } + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v) + if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) { + break + } + if i == 7 { + return 0 + } + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' { + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 { + return 0 + } + need_v4 = 1 + i++ + break + } + s += uintptr(j + 1) + } + if brk >= 0 { + Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint32(2*(i+1-brk))) + for j = 0; j < 7-i; j++ { + *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0) + } + } + for j = 0; j < 8; j++ { + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8) + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) + } + if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 { + return 0 + } + return 1 +} + +func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */ + bp := tls.Alloc(88) + defer tls.Free(88) + + // var a4 in_addr at bp, 4 + + // var a6 in6_addr at bp+68, 16 + + if X__inet_aton(tls, name, bp) > 0 { + if family == 10 { // wrong family + return -2 + } + Xmemcpy(tls, buf+8, bp, uint32(unsafe.Sizeof(in_addr{}))) + (*address)(unsafe.Pointer(buf)).family = 2 + (*address)(unsafe.Pointer(buf)).scopeid = uint32(0) + return 1 + } + // var tmp [64]int8 at bp+4, 64 + + var p uintptr = Xstrchr(tls, name, '%') + // var z uintptr at bp+84, 4 + + var scopeid uint64 = uint64(0) + if p != 0 && (int32(p)-int32(name))/1 < 64 { + Xmemcpy(tls, bp+4, name, uint32((int32(p)-int32(name))/1)) + *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int32(p)-int32(name))/1))) = int8(0) + name = bp + 4 /* &tmp[0] */ + } + + if Xinet_pton(tls, 10, name, bp+68) <= 0 { + return 0 + } + if family == 2 { // wrong family + return -2 + } + + Xmemcpy(tls, buf+8, bp+68, uint32(unsafe.Sizeof(in6_addr{}))) + (*address)(unsafe.Pointer(buf)).family = 10 + if p != 0 { + if func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10)) + }() != 0 { + scopeid = Xstrtoull(tls, p, bp+84, 10) + } else { + *(*uintptr)(unsafe.Pointer(bp + 84 /* z */)) = p - uintptr(1) + } + if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)))) != 0 { + Xabort(tls) //TODO- + // if (!IN6_IS_ADDR_LINKLOCAL(&a6) && + // !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) + // return EAI_NONAME; + // scopeid = if_nametoindex(p); + // if (!scopeid) return EAI_NONAME; + } + if scopeid > uint64(0xffffffff) { + return -2 + } + } + (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid) + return 1 +} + +type mode_t = uint32 /* alltypes.h:175:18 */ + +type flock = struct { + l_type int16 + l_whence int16 + l_start off_t + l_len off_t + l_pid pid_t +} /* fcntl.h:24:1 */ + +func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */ + var s uintptr + //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0; + if Xstrnlen(tls, host, uint32(255))-size_t(1) >= size_t(254) { + return 0 + } + for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ { + } + return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0)) +} + +var Xzero_struct_address address /* lookup_name.c:27:16: */ + +func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */ + var cnt int32 = 0 + if name != 0 { + return 0 + } + if flags&0x01 != 0 { + //TODO if (family != AF_INET6) + //TODO buf[cnt++] = (struct address){ .family = AF_INET }; + if family != 10 { + var x = Xzero_struct_address + x.family = 2 + *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x + } + //TODO if (family != AF_INET) + //TODO buf[cnt++] = (struct address){ .family = AF_INET6 }; + if family != 2 { + var x = Xzero_struct_address + x.family = 10 + *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x + } + } else { + Xabort(tls) //TODO- + // if (family != AF_INET6) + // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } }; + // if (family != AF_INET) + // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } }; + } + return cnt +} + +func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */ + return X__lookup_ipliteral(tls, buf, name, family) +} + +func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */ + bp := tls.Alloc(512) + defer tls.Free(512) + + // var line [512]int8 at bp, 512 + + var l size_t = Xstrlen(tls, name) + var cnt int32 = 0 + var badfam int32 = 0 + var _buf [1032]uint8 + _ = _buf + //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); + var _f FILE + _ = _f + var f uintptr = Xfopen(tls, ts+115, ts+126) + if !(f != 0) { + switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { + case 2: + fallthrough + case 20: + fallthrough + case 13: + return 0 + fallthrough + default: + return -11 + } + } + for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 { + var p uintptr + var z uintptr + + if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 { + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') + *(*int8)(unsafe.Pointer(p)) = int8(0) + } + for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ { + } + if !(p != 0) { + continue + } + + // Isolate IP address to parse + for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + } + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) + switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) { + case 1: + cnt++ + break + case 0: + continue + default: + badfam = -2 + continue + } + + // Extract first name as canonical name + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { + } + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + } + *(*int8)(unsafe.Pointer(z)) = int8(0) + if is_valid_hostname(tls, p) != 0 { + Xmemcpy(tls, canon, p, uint32((int32(z)-int32(p))/1+1)) + } + } + //TODO __fclose_ca(f); + Xfclose(tls, f) + if cnt != 0 { + return cnt + } + return badfam +} + +type dpc_ctx = struct { + addrs uintptr + canon uintptr + cnt int32 +} /* lookup_name.c:112:1 */ + +func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */ + return -1 //TODO- + Xabort(tls) + return int32(0) //TODO- + // char search[256]; + // struct resolvconf conf; + // size_t l, dots; + // char *p, *z; + + // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1; + + // /* Count dots, suppress search when >=ndots or name ends in + // * a dot, which is an explicit request for global scope. */ + // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++; + // if (dots >= conf.ndots || name[l-1]=='.') *search = 0; + + // /* Strip final dot for canon, fail if multiple trailing dots. */ + // if (name[l-1]=='.') l--; + // if (!l || name[l-1]=='.') return EAI_NONAME; + + // /* This can never happen; the caller already checked length. */ + // if (l >= 256) return EAI_NONAME; + + // /* Name with search domain appended is setup in canon[]. This both + // * provides the desired default canonical name (if the requested + // * name is not a CNAME record) and serves as a buffer for passing + // * the full requested name to name_from_dns. */ + // memcpy(canon, name, l); + // canon[l] = '.'; + + // for (p=search; *p; p=z) { + // for (; isspace(*p); p++); + // for (z=p; *z && !isspace(*z); z++); + // if (z==p) break; + // if (z-p < 256 - l - 1) { + // memcpy(canon+l+1, p, z-p); + // canon[z-p+1+l] = 0; + // int cnt = name_from_dns(buf, canon, canon, family, &conf); + // if (cnt) return cnt; + // } + // } + + // canon[l] = 0; + // return name_from_dns(buf, canon, name, family, &conf); +} + +type policy = struct { + addr [16]uint8 + len uint8 + mask uint8 + prec uint8 + label uint8 +} /* lookup_name.c:237:14 */ + +var defpolicy = [6]policy{ + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 211)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 228)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 244)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 260)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 276)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, + // Last rule must match all addresses to stop loop. + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 292)), prec: uint8(40), label: uint8(1)}, +} /* lookup_name.c:241:3 */ + +func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ + var i int32 + for i = 0; ; i++ { + if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint32(defpolicy[i].len)) != 0 { + continue + } + if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) != + int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) { + continue + } + return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + } + return uintptr(0) +} + +func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */ + return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label) +} + +func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */ + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff { + return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15 + } + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 { + return 2 + } + if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 { + return 2 + } + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 { + return 5 + } + return 14 +} + +func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */ + // FIXME: The common prefix length should be limited to no greater + // than the nominal length of the prefix portion of the source + // address. However the definition of the source prefix length is + // not clear and thus this limiting is not yet implemented. + var i uint32 + for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ { + } + return int32(i) +} + +func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */ + var a uintptr = _a + var b uintptr = _b + return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey +} + +func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */ + bp := tls.Alloc(92) + defer tls.Free(92) + + var cnt int32 = 0 + var i int32 + var j int32 + _ = j + + *(*int8)(unsafe.Pointer(canon)) = int8(0) + if name != 0 { + // reject empty name and check len so it fits into temp bufs + var l size_t = Xstrnlen(tls, name, uint32(255)) + if l-size_t(1) >= size_t(254) { + return -2 + } + Xmemcpy(tls, canon, name, l+size_t(1)) + } + + // Procedurally, a request for v6 addresses with the v4-mapped + // flag set is like a request for unspecified family, followed + // by filtering of the results. + if flags&0x08 != 0 { + if family == 10 { + family = 0 + } else { + flags = flags - 0x08 + } + } + + // Try each backend until there's at least one result. + cnt = name_from_null(tls, buf, name, family, flags) + if !(cnt != 0) { + cnt = name_from_numeric(tls, buf, name, family) + } + if !(cnt != 0) && !(flags&0x04 != 0) { + cnt = name_from_hosts(tls, buf, canon, name, family) + if !(cnt != 0) { + cnt = name_from_dns_search(tls, buf, canon, name, family) + } + } + if cnt <= 0 { + if cnt != 0 { + return cnt + } + return -2 + } + + // Filter/transform results for v4-mapped lookup, if requested. + if flags&0x08 != 0 { + Xabort(tls) //TODO- + // if (!(flags & AI_ALL)) { + // /* If any v6 results exist, remove v4 results. */ + // for (i=0; i<cnt && buf[i].family != AF_INET6; i++); + // if (i<cnt) { + // for (j=0; i<cnt; i++) { + // if (buf[i].family == AF_INET6) + // buf[j++] = buf[i]; + // } + // cnt = i = j; + // } + // } + // /* Translate any remaining v4 results to v6 */ + // for (i=0; i<cnt; i++) { + // if (buf[i].family != AF_INET) continue; + // memcpy(buf[i].addr+12, buf[i].addr, 4); + // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12); + // buf[i].family = AF_INET6; + // } + } + + // No further processing is needed if there are fewer than 2 + // results or if there are only IPv4 results. + if cnt < 2 || family == 2 { + return cnt + } + for i = 0; i < cnt; i++ { + if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 { + break + } + } + if i == cnt { + return cnt + } + var cs int32 + _ = cs + //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); + + // The following implements a subset of RFC 3484/6724 destination + // address selection by generating a single 31-bit sort key for + // each address. Rules 3, 4, and 7 are omitted for having + // excessive runtime and code size cost and dubious benefit. + // So far the label/precedence table cannot be customized. + for i = 0; i < cnt; i++ { + var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family + var key int32 = 0 + *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{} + *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid} + *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{} + *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)} + var sa1 uintptr + var da uintptr + // var salen socklen_t at bp+88, 4 + + var dalen socklen_t + if family == 10 { + Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint32(16)) + da = bp /* &da6 */ + dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{})) + sa1 = bp + 28 /* &sa6 */ + *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{})) + } else { + Xmemcpy(tls, bp+28+8, + ts+129, uint32(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4)) + Xmemcpy(tls, bp+8, + ts+129, uint32(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint32(4)) + Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint32(4)) + da = bp + 56 /* &da4 */ + dalen = socklen_t(unsafe.Sizeof(sockaddr_in{})) + sa1 = bp + 72 /* &sa4 */ + *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{})) + } + var dpolicy uintptr = policyof(tls, bp+8) + var dscope int32 = scopeof(tls, bp+8) + var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label) + var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec) + var prefixlen int32 = 0 + var fd int32 = Xsocket(tls, family, 2|02000000, 17) + if fd >= 0 { + if !(Xconnect(tls, fd, da, dalen) != 0) { + key = key | 0x40000000 + if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) { + if family == 2 { + Xmemcpy(tls, + bp+28+8+uintptr(12), + bp+72+4, uint32(4)) + } + if dscope == scopeof(tls, bp+28+8) { + key = key | 0x20000000 + } + if dlabel == labelof(tls, bp+28+8) { + key = key | 0x10000000 + } + prefixlen = prefixmatch(tls, bp+28+8, + bp+8) + } + } + Xclose(tls, fd) + } + key = key | dprec<<20 + key = key | (15-dscope)<<16 + key = key | prefixlen<<8 + key = key | (48-i)<<0 + (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key + } + Xqsort(tls, buf, uint32(cnt), uint32(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct { + f func(*TLS, uintptr, uintptr) int32 + }{addrcmp}))) + + //TODO pthread_setcancelstate(cs, 0); + + return cnt +} + +func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + var line [128]int8 + _ = line + var cnt int32 = 0 + var p uintptr + _ = p + *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 54 /* "" */ + var port uint32 = uint32(0) + + switch socktype { + case 1: + switch proto { + case 0: + proto = 6 + fallthrough + case 6: + break + default: + return -8 + } + break + case 2: + switch proto { + case 0: + proto = 17 + fallthrough + case 17: + break + default: + return -8 + } + fallthrough + case 0: + break + default: + if name != 0 { + return -8 + } + (*service)(unsafe.Pointer(buf)).port = uint16_t(0) + (*service)(unsafe.Pointer(buf)).proto = uint8(proto) + (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype) + return 1 + } + + if name != 0 { + if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) { + return -8 + } + port = Xstrtoul(tls, name, bp, 10) + } + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) { + if port > uint32(65535) { + return -8 + } + if proto != 17 { + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1) + (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6) + } + if proto != 6 { + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2) + (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17) + } + return cnt + } + + if flags&0x400 != 0 { + return -2 + } + + var l size_t = Xstrlen(tls, name) + _ = l + + Xabort(tls) //TODO- + // unsigned char _buf[1032]; + // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); + // if (!f) switch (errno) { + // case ENOENT: + // case ENOTDIR: + // case EACCES: + // return EAI_SERVICE; + // default: + // return EAI_SYSTEM; + // } + + Xabort(tls) //TODO- + // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) { + // if ((p=strchr(line, '#'))) *p++='\n', *p=0; + + // /* Find service name */ + // for(p=line; (p=strstr(p, name)); p++) { + // if (p>line && !isspace(p[-1])) continue; + // if (p[l] && !isspace(p[l])) continue; + // break; + // } + // if (!p) continue; + + // /* Skip past canonical name at beginning of line */ + // for (p=line; *p && !isspace(*p); p++); + + // port = strtoul(p, &z, 10); + // if (port > 65535 || z==p) continue; + // if (!strncmp(z, "/udp", 4)) { + // if (proto == IPPROTO_TCP) continue; + // buf[cnt].port = port; + // buf[cnt].socktype = SOCK_DGRAM; + // buf[cnt++].proto = IPPROTO_UDP; + // } + // if (!strncmp(z, "/tcp", 4)) { + // if (proto == IPPROTO_UDP) continue; + // buf[cnt].port = port; + // buf[cnt].socktype = SOCK_STREAM; + // buf[cnt++].proto = IPPROTO_TCP; + // } + // } + // __fclose_ca(f); + // return cnt > 0 ? cnt : EAI_SERVICE; + Xabort(tls) + return int32(0) //TODO- +} + +func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */ + *(*int32)(unsafe.Pointer(f + 72)) |= (*FILE)(unsafe.Pointer(f)).mode - 1 + if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase { + (*struct { + f func(*TLS, uintptr, uintptr, size_t) size_t + })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint32(0)) + } + (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+28, AssignPtrUintptr(f+16, uintptr(0))) + if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 { + *(*uint32)(unsafe.Pointer(f)) |= uint32(32) + return -1 + } + (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+8, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size)) + if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 { + return -1 + } + return 0 +} + +func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */ + X__builtin_abort(tls) //TODO- + // __stdio_exit_needed(); +} + +// This function assumes it will never be called if there is already +// data buffered for reading. + +func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ + bp := tls.Alloc(1) + defer tls.Free(1) + + // var c uint8 at bp, 1 + + if !(X__toread(tls, f) != 0) && (*struct { + f func(*TLS, uintptr, uintptr, size_t) size_t + })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint32(1)) == size_t(1) { + return int32(*(*uint8)(unsafe.Pointer(bp))) + } + return -1 +} + +func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ + bp := tls.Alloc(136) + defer tls.Free(136) + + // var f FILE at bp, 136 + + (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s) + (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y float64 = X__floatscan(tls, bp, prec, 1) + var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1) + if p != 0 { + *(*uintptr)(unsafe.Pointer(p)) = func() uintptr { + if cnt != 0 { + return s + uintptr(cnt) + } + return s + }() + } + return y +} + +func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */ + return float32(strtox(tls, s, p, 0)) +} + +func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */ + return strtox(tls, s, p, 1) +} + +func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */ + return strtox(tls, s, p, 2) +} + +func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */ + bp := tls.Alloc(136) + defer tls.Free(136) + + // var f FILE at bp, 136 + + (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+4, s) + (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim) + if p != 0 { + var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + off_t((int32((*FILE)(unsafe.Pointer(bp)).rpos)-int32((*FILE)(unsafe.Pointer(bp)).buf))/1)) + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) + } + return y +} + +func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */ + return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)) +} + +func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */ + return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1)))) +} + +func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint32 { /* strtol.c:31:15: */ + return uint32(strtox1(tls, s, p, base, uint64(2*uint32(0x7fffffff)+uint32(1)))) +} + +func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int32 { /* strtol.c:36:6: */ + return int32(strtox1(tls, s, p, base, uint64(0+Uint32FromInt32(Int32(-Int32(0x7fffffff))-Int32FromInt32(1))))) +} + +func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */ + return Xstrtoll(tls, s, p, base) +} + +func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */ + return Xstrtoull(tls, s, p, base) +} + +func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */ + var l size_t = Xstrlen(tls, s) + var d uintptr = Xmalloc(tls, l+size_t(1)) + if !(d != 0) { + return uintptr(0) + } + return Xmemcpy(tls, d, s, l+size_t(1)) +} + +func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */ + var p uintptr = Xmemchr(tls, s, 0, n) + if p != 0 { + return uint32((int32(p) - int32(s)) / 1) + } + return n +} + +func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */ + bp := tls.Alloc(32) + defer tls.Free(32) + + var a uintptr = s + *(*[8]size_t)(unsafe.Pointer(bp /* byteset */)) = [8]size_t{0: size_t(0)} + + if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) { + return size_t(0) + } + if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) { + for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ { + } + return size_t((int32(s) - int32(a)) / 1) + } + + for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint32(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4, size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; c++ { + } + for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))*4))&(size_t(size_t(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint32(8)*uint32(unsafe.Sizeof(size_t(0)))))) != 0; s++ { + } + return size_t((int32(s) - int32(a)) / 1) +} + +func init() { + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.cpp.c:4092:41: +} + +var ts1 = "RuneMagi\x00NONE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data diff --git a/vendor/modernc.org/libc/musl_freebsd_amd64.go b/vendor/modernc.org/libc/musl_freebsd_amd64.go index 55490d4d2..2e0a6e55f 100644 --- a/vendor/modernc.org/libc/musl_freebsd_amd64.go +++ b/vendor/modernc.org/libc/musl_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_freebsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_freebsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isupper.c src/ctype/isxdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. package libc @@ -3356,6 +3356,51 @@ func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ return Xisdigit(tls, c) } +func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */ + return Bool32(uint32(c)-uint32('a') < uint32(26)) +} + +func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */ + return Xislower(tls, c) +} + +func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */ + return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f)) +} + +func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */ + return Xisprint(tls, c) +} + +func Xisspace(tls *TLS, c int32) int32 { /* isspace.c:4:5: */ + return Bool32(c == ' ' || uint32(c)-uint32('\t') < uint32(5)) +} + +func X__isspace_l(tls *TLS, c int32, l locale_t) int32 { /* isspace.c:9:5: */ + return Xisspace(tls, c) +} + +func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */ + return Bool32(uint32(c)-uint32('A') < uint32(26)) +} + +func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */ + return Xisupper(tls, c) +} + +func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */ + return Bool32(func() int32 { + if 0 != 0 { + return Xisdigit(tls, c) + } + return Bool32(uint32(c)-uint32('0') < uint32(10)) + }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) +} + +func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */ + return Xisxdigit(tls, c) +} + type uintptr_t = uint64 /* alltypes.h:55:24 */ type intptr_t = int64 /* alltypes.h:70:15 */ @@ -6667,6 +6712,26 @@ func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ return -1 } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) diff --git a/vendor/modernc.org/libc/musl_linux_386.go b/vendor/modernc.org/libc/musl_linux_386.go index 164e168c2..3b730c21c 100644 --- a/vendor/modernc.org/libc/musl_linux_386.go +++ b/vendor/modernc.org/libc/musl_linux_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -6452,6 +6452,26 @@ func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c return Xvfscanf(tls, bp, fmt, ap) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > size_t(0) { + try = base + uintptr(width*(nel/size_t(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / size_t(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/size_t(2) + size_t(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(136) defer tls.Free(136) diff --git a/vendor/modernc.org/libc/musl_linux_amd64.go b/vendor/modernc.org/libc/musl_linux_amd64.go index 874dfbdf8..d7ea0f239 100644 --- a/vendor/modernc.org/libc/musl_linux_amd64.go +++ b/vendor/modernc.org/libc/musl_linux_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -6507,6 +6507,26 @@ func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c return Xvfscanf(tls, bp, fmt, ap) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) diff --git a/vendor/modernc.org/libc/musl_linux_arm.go b/vendor/modernc.org/libc/musl_linux_arm.go index 301c4b314..8d4208843 100644 --- a/vendor/modernc.org/libc/musl_linux_arm.go +++ b/vendor/modernc.org/libc/musl_linux_arm.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm.go -pkgname libc -static-locals-prefix _s -Iarch/arm -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm.go -pkgname libc -static-locals-prefix _s -Iarch/arm -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -6485,6 +6485,26 @@ func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c return Xvfscanf(tls, bp, fmt, ap) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > size_t(0) { + try = base + uintptr(width*(nel/size_t(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / size_t(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/size_t(2) + size_t(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(144) defer tls.Free(144) diff --git a/vendor/modernc.org/libc/musl_linux_arm64.go b/vendor/modernc.org/libc/musl_linux_arm64.go index 3e1bf4ad1..0e3b64c11 100644 --- a/vendor/modernc.org/libc/musl_linux_arm64.go +++ b/vendor/modernc.org/libc/musl_linux_arm64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -6595,6 +6595,26 @@ func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c return Xvfscanf(tls, bp, fmt, ap) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) diff --git a/vendor/modernc.org/libc/musl_linux_s390x.go b/vendor/modernc.org/libc/musl_linux_s390x.go index 6d55607c5..fd790654e 100644 --- a/vendor/modernc.org/libc/musl_linux_s390x.go +++ b/vendor/modernc.org/libc/musl_linux_s390x.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_s390x.go -pkgname libc -static-locals-prefix _s -Iarch/s390x -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_s390x.go -pkgname libc -static-locals-prefix _s -Iarch/s390x -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. package libc @@ -6535,6 +6535,26 @@ func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c return Xvfscanf(tls, bp, fmt, ap) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) diff --git a/vendor/modernc.org/libc/musl_netbsd_amd64.go b/vendor/modernc.org/libc/musl_netbsd_amd64.go index 9aeb094a5..927bc2e8e 100644 --- a/vendor/modernc.org/libc/musl_netbsd_amd64.go +++ b/vendor/modernc.org/libc/musl_netbsd_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_netbsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../netbsd/ctype_.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_netbsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../netbsd/ctype_.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. package libc @@ -432,18 +432,18 @@ var X_C_ctype_tab_ = [257]uint16{ 8: uint16(0x0002), 9: uint16(0x0002), - 10: (uint16((0x0200 | - 0x0002) | - 0x0040)), - 11: (uint16(0x0002 | - 0x0040)), - 12: (uint16(0x0002 | - 0x0040)), - - 13: (uint16(0x0002 | - 0x0040)), - 14: (uint16(0x0002 | - 0x0040)), + 10: uint16(0x0200 | + 0x0002 | + 0x0040), + 11: uint16(0x0002 | + 0x0040), + 12: uint16(0x0002 | + 0x0040), + + 13: uint16(0x0002 | + 0x0040), + 14: uint16(0x0002 | + 0x0040), 15: uint16(0x0002), 16: uint16(0x0002), @@ -467,410 +467,410 @@ var X_C_ctype_tab_ = [257]uint16{ 31: uint16(0x0002), 32: uint16(0x0002), - 33: (uint16((0x0200 | - 0x0400) | - 0x0040)), - 34: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 35: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 36: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 37: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 38: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 39: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 40: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 41: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 42: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 43: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 44: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 45: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 46: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 47: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 48: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 49: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 50: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 51: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 52: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - - 53: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 54: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 55: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 56: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - - 57: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 58: (uint16(((0x0004 | - 0x0008) | - 0x0400) | - 0x0100)), - 59: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 60: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 61: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 62: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 63: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 64: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 65: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 66: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - 67: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - 68: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - - 69: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - 70: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - 71: (uint16((((0x0001 | - 0x0008) | - 0x0400) | - 0x0080) | - 0x0100)), - 72: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - - 73: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 74: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 75: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 76: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - - 77: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 78: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 79: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 80: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - - 81: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 82: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 83: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 84: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - - 85: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 86: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 87: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 88: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - - 89: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 90: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 91: (uint16(((0x0001 | - 0x0008) | - 0x0400) | - 0x0080)), - 92: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 93: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 94: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 95: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 96: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 97: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 98: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - 99: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - 100: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - - 101: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - 102: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - 103: (uint16((((0x0001 | - 0x0008) | - 0x0010) | - 0x0400) | - 0x0100)), - 104: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - - 105: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 106: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 107: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 108: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - - 109: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 110: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 111: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 112: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - - 113: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 114: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 115: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 116: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - - 117: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 118: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 119: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 120: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - - 121: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 122: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 123: (uint16(((0x0001 | - 0x0008) | - 0x0010) | - 0x0400)), - 124: (uint16((0x0008 | - 0x0400) | - 0x0020)), - - 125: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 126: (uint16((0x0008 | - 0x0400) | - 0x0020)), - 127: (uint16((0x0008 | - 0x0400) | - 0x0020)), + 33: uint16(0x0200 | + 0x0400 | + 0x0040), + 34: uint16(0x0008 | + 0x0400 | + 0x0020), + 35: uint16(0x0008 | + 0x0400 | + 0x0020), + 36: uint16(0x0008 | + 0x0400 | + 0x0020), + + 37: uint16(0x0008 | + 0x0400 | + 0x0020), + 38: uint16(0x0008 | + 0x0400 | + 0x0020), + 39: uint16(0x0008 | + 0x0400 | + 0x0020), + 40: uint16(0x0008 | + 0x0400 | + 0x0020), + + 41: uint16(0x0008 | + 0x0400 | + 0x0020), + 42: uint16(0x0008 | + 0x0400 | + 0x0020), + 43: uint16(0x0008 | + 0x0400 | + 0x0020), + 44: uint16(0x0008 | + 0x0400 | + 0x0020), + + 45: uint16(0x0008 | + 0x0400 | + 0x0020), + 46: uint16(0x0008 | + 0x0400 | + 0x0020), + 47: uint16(0x0008 | + 0x0400 | + 0x0020), + 48: uint16(0x0008 | + 0x0400 | + 0x0020), + + 49: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 50: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 51: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 52: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + + 53: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 54: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 55: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 56: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + + 57: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 58: uint16(0x0004 | + 0x0008 | + 0x0400 | + 0x0100), + 59: uint16(0x0008 | + 0x0400 | + 0x0020), + 60: uint16(0x0008 | + 0x0400 | + 0x0020), + + 61: uint16(0x0008 | + 0x0400 | + 0x0020), + 62: uint16(0x0008 | + 0x0400 | + 0x0020), + 63: uint16(0x0008 | + 0x0400 | + 0x0020), + 64: uint16(0x0008 | + 0x0400 | + 0x0020), + + 65: uint16(0x0008 | + 0x0400 | + 0x0020), + 66: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + 67: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + 68: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + + 69: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + 70: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + 71: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080 | + 0x0100), + 72: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + + 73: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 74: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 75: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 76: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + + 77: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 78: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 79: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 80: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + + 81: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 82: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 83: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 84: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + + 85: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 86: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 87: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 88: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + + 89: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 90: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 91: uint16(0x0001 | + 0x0008 | + 0x0400 | + 0x0080), + 92: uint16(0x0008 | + 0x0400 | + 0x0020), + + 93: uint16(0x0008 | + 0x0400 | + 0x0020), + 94: uint16(0x0008 | + 0x0400 | + 0x0020), + 95: uint16(0x0008 | + 0x0400 | + 0x0020), + 96: uint16(0x0008 | + 0x0400 | + 0x0020), + + 97: uint16(0x0008 | + 0x0400 | + 0x0020), + 98: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + 99: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + 100: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + + 101: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + 102: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + 103: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400 | + 0x0100), + 104: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + + 105: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 106: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 107: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 108: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + + 109: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 110: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 111: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 112: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + + 113: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 114: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 115: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 116: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + + 117: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 118: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 119: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 120: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + + 121: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 122: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 123: uint16(0x0001 | + 0x0008 | + 0x0010 | + 0x0400), + 124: uint16(0x0008 | + 0x0400 | + 0x0020), + + 125: uint16(0x0008 | + 0x0400 | + 0x0020), + 126: uint16(0x0008 | + 0x0400 | + 0x0020), + 127: uint16(0x0008 | + 0x0400 | + 0x0020), 128: uint16(0x0002), } /* ctype_.cpp.c:601:22 */ var X_ctype_tab_ uintptr = 0 /* ctype_.cpp.c:2233:22 */ func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ - return (Bool32((_c == ' ') || ((uint32(_c) - uint32('\t')) < uint32(5)))) + return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) } type locale_t1 = uintptr /* alltypes.h:343:32 */ func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ - return (Bool32((func() int32 { + return Bool32(func() int32 { if 0 != 0 { return Xisalpha(tls, c) } - return (Bool32((((uint32(c)) | uint32(32)) - uint32('a')) < uint32(26))) - }() != 0) || (func() int32 { + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) + }() != 0 || func() int32 { if 0 != 0 { return Xisdigit(tls, c) } - return (Bool32(((uint32(c)) - uint32('0')) < uint32(10))) - }() != 0))) + return Bool32(uint32(c)-uint32('0') < uint32(10)) + }() != 0) } func X__isalnum_l(tls *TLS, c int32, l locale_t1) int32 { /* isalnum.c:8:5: */ @@ -878,7 +878,7 @@ func X__isalnum_l(tls *TLS, c int32, l locale_t1) int32 { /* isalnum.c:8:5: */ } func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ - return (Bool32(((uint32(c) | uint32(32)) - uint32('a')) < uint32(26))) + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) } func X__isalpha_l(tls *TLS, c int32, l locale_t1) int32 { /* isalpha.c:9:5: */ @@ -886,7 +886,7 @@ func X__isalpha_l(tls *TLS, c int32, l locale_t1) int32 { /* isalpha.c:9:5: */ } func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ - return (Bool32((uint32(c) - uint32('0')) < uint32(10))) + return Bool32(uint32(c)-uint32('0') < uint32(10)) } func X__isdigit_l(tls *TLS, c int32, l locale_t1) int32 { /* isdigit.c:9:5: */ @@ -995,8 +995,8 @@ func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */ // var __u struct {__f float32;} at bp, 4 - *(*float32)(unsafe.Pointer(bp /* &__u */)) = __f - return *(*uint32)(unsafe.Pointer(bp /* &__u */)) + *(*float32)(unsafe.Pointer(bp)) = __f + return *(*uint32)(unsafe.Pointer(bp)) } func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ @@ -1005,8 +1005,8 @@ func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ // var __u struct {__f float64;} at bp, 8 - *(*float64)(unsafe.Pointer(bp /* &__u */)) = __f - return *(*uint64)(unsafe.Pointer(bp /* &__u */)) + *(*float64)(unsafe.Pointer(bp)) = __f + return *(*uint64)(unsafe.Pointer(bp)) } type syscall_arg_t = int64 /* syscall.h:22:14 */ @@ -1018,57 +1018,57 @@ func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ var neg int32 = 0 c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() - if (c == '+') || (c == '-') { - neg = (Bool32(c == '-')) + if c == '+' || c == '-' { + neg = Bool32(c == '-') c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() - if ((uint32(c - '0')) >= 10) && (pok != 0) { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if uint32(c-'0') >= 10 && pok != 0 { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } } } - if (uint32(c - '0')) >= 10 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if uint32(c-'0') >= 10 { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } - return (-0x7fffffffffffffff - int64(1)) + return -0x7fffffffffffffff - int64(1) } - for x = 0; ((uint32(c - '0')) < 10) && (x < (0x7fffffff / 10)); c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() { - x = (((10 * x) + c) - '0') + x = 10*x + c - '0' } - for y = int64(x); ((uint32(c - '0')) < 10) && (y < (0x7fffffffffffffff / int64(100))); c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() { - y = (((int64(10) * y) + int64(c)) - int64('0')) + y = int64(10)*y + int64(c) - int64('0') } - for ; (uint32(c - '0')) < 10; c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + for ; uint32(c-'0') < 10; c = func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() { } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1097,7 +1097,7 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, var gotrad int32 = 0 var rp int32 var e2 int32 - var emax int32 = ((-emin - bits) + 3) + var emax int32 = -emin - bits + 3 var denormal int32 = 0 var y float64 var frac float64 = float64(0) @@ -1108,7 +1108,7 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, // Don't let leading zeros consume buffer space for ; c == '0'; c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1118,12 +1118,12 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, if c == '.' { gotrad = 1 for c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }(); c == '0'; c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1133,9 +1133,9 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } } - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) = uint32_t(0) - for ; ((uint32(c - '0')) < 10) || (c == '.'); c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0) + for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1146,15 +1146,15 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } gotrad = 1 lrp = dc - } else if k < (128 - 3) { + } else if k < 128-3 { dc++ if c != '0' { lnz = int32(dc) } if j != 0 { - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) * uint32_t(10)) + uint32_t(c)) - uint32_t('0')) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0') } else { - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (uint32_t(c - '0')) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0') } if PreIncInt32(&j, 1) == 9 { k++ @@ -1164,8 +1164,8 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } else { dc++ if c != '0' { - lnz = ((128 - 4) * 9) - *(*uint32_t)(unsafe.Pointer(bp /* &x */ + 124*4)) |= (uint32_t(1)) + lnz = (128 - 4) * 9 + *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1) } } } @@ -1173,11 +1173,11 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, lrp = dc } - if (gotdig != 0) && ((c | 32) == 'e') { + if gotdig != 0 && c|32 == 'e' { e10 = scanexp(tls, f, pok) - if e10 == (-0x7fffffffffffffff - int64(1)) { + if e10 == -0x7fffffffffffffff-int64(1) { if pok != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1187,41 +1187,41 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } e10 = int64(0) } - lrp = lrp + (e10) + lrp = lrp + e10 } else if c >= 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } } if !(gotdig != 0) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 X__shlim(tls, f, int64(0)) return float64(0) } // Handle zero specially to avoid nasty special cases later - if !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */))) != 0) { - return (float64(sign) * 0.0) + if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) { + return float64(sign) * 0.0 } // Optimize small integers (w/no exponent) and over/under-flow - if ((lrp == dc) && (dc < int64(10))) && ((bits > 30) || ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) >> bits) == uint32_t(0))) { - return (float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) + if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) } - if lrp > (int64(-emin / 2)) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 - return ((float64(sign) * 1.79769313486231570815e+308) * 1.79769313486231570815e+308) + if lrp > int64(-emin/2) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 } - if lrp < (int64(emin - (2 * 53))) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 - return ((float64(sign) * 2.22507385850720138309e-308) * 2.22507385850720138309e-308) + if lrp < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 } // Align incomplete final B1B digit if j != 0 { for ; j < 9; j++ { - *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(k)*4)) *= (uint32_t(10)) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10) } k++ j = 0 @@ -1233,62 +1233,62 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, rp = int32(lrp) // Optimize small to mid-size integers (even in exp. notation) - if ((lnz < 9) && (lnz <= rp)) && (rp < 18) { + if lnz < 9 && lnz <= rp && rp < 18 { if rp == 9 { - return (float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) } if rp < 9 { - return ((float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) / float64(_sp10s[(8-rp)])) + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp]) } - var bitlim int32 = (bits - (3 * (rp - 9))) - if (bitlim > 30) || ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)) >> bitlim) == uint32_t(0)) { - return ((float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */)))) * float64(_sp10s[(rp-10)])) + var bitlim int32 = bits - 3*(rp-9) + if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10]) } } // Drop trailing zeros - for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr((z-1))*4))) != 0); z-- { + for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- { } // Align radix point to B1B digit boundary - if (rp % 9) != 0 { + if rp%9 != 0 { var rpm9 int32 if rp >= 0 { - rpm9 = (rp % 9) + rpm9 = rp % 9 } else { - rpm9 = ((rp % 9) + 9) + rpm9 = rp%9 + 9 } - var p10 int32 = _sp10s[(8 - rpm9)] + var p10 int32 = _sp10s[8-rpm9] var carry uint32_t = uint32_t(0) for k = a; k != z; k++ { - var tmp uint32_t = (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) % uint32_t(p10)) - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) / uint32_t(p10)) + carry) - carry = ((uint32_t(1000000000 / p10)) * tmp) - if (k == a) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) { - a = ((a + 1) & (128 - 1)) - rp = rp - (9) + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry + carry = uint32_t(1000000000/p10) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) + rp = rp - 9 } } if carry != 0 { - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(PostIncInt32(&z, 1))*4)) = carry + *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry } rp = rp + (9 - rpm9) } // Upscale until desired number of bits are left of radix point - for (rp < (9 * 2)) || ((rp == (9 * 2)) && (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(a)*4)) < _sth[0])) { + for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] { var carry uint32_t = uint32_t(0) - e2 = e2 - (29) - for k = ((z - 1) & (128 - 1)); ; k = ((k - 1) & (128 - 1)) { - var tmp uint64_t = ((uint64_t(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) << 29) + uint64_t(carry)) + e2 = e2 - 29 + for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) { + var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry) if tmp > uint64(1000000000) { - carry = (uint32_t(tmp / uint64(1000000000))) - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = (uint32_t(tmp % uint64(1000000000))) + carry = uint32_t(tmp / uint64(1000000000)) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000)) } else { carry = uint32_t(0) - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = uint32_t(tmp) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp) } - if ((k == ((z - 1) & (128 - 1))) && (k != a)) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) { + if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { z = k } if k == a { @@ -1296,13 +1296,13 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } } if carry != 0 { - rp = rp + (9) - a = ((a - 1) & (128 - 1)) + rp = rp + 9 + a = (a - 1) & (128 - 1) if a == z { - z = ((z - 1) & (128 - 1)) - *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(((z-1)&(128-1)))*4)) |= (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(z)*4))) + z = (z - 1) & (128 - 1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) } - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(a)*4)) = carry + *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry } } @@ -1311,56 +1311,56 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, var carry uint32_t = uint32_t(0) var sh int32 = 1 for i = 0; i < 2; i++ { - k = ((a + i) & (128 - 1)) - if (k == z) || (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) < _sth[i]) { + k = (a + i) & (128 - 1) + if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] { i = 2 break } - if *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4)) > _sth[i] { + if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] { break } } - if (i == 2) && (rp == (9 * 2)) { + if i == 2 && rp == 9*2 { break } // FIXME: find a way to compute optimal sh - if rp > (9 + (9 * 2)) { + if rp > 9+9*2 { sh = 9 } - e2 = e2 + (sh) - for k = a; k != z; k = ((k + 1) & (128 - 1)) { - var tmp uint32_t = (*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) & (uint32_t((int32(1) << sh) - 1))) - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) = ((*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4)) >> sh) + carry) - carry = ((uint32_t(int32(1000000000) >> sh)) * tmp) - if (k == a) && !(int32(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(k)*4))) != 0) { - a = ((a + 1) & (128 - 1)) + e2 = e2 + sh + for k = a; k != z; k = (k + 1) & (128 - 1) { + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry + carry = uint32_t(int32(1000000000)>>sh) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) i-- - rp = rp - (9) + rp = rp - 9 } } if carry != 0 { - if ((z + 1) & (128 - 1)) != a { - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(z)*4)) = carry - z = ((z + 1) & (128 - 1)) + if (z+1)&(128-1) != a { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry + z = (z + 1) & (128 - 1) } else { - *(*uint32_t)(unsafe.Pointer(bp /* &x */ + uintptr(((z-1)&(128-1)))*4)) |= (uint32_t(1)) + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1) } } } // Assemble desired bits into floating point variable for y = float64(AssignInt32(&i, 0)); i < 2; i++ { - if ((a + i) & (128 - 1)) == z { - *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((AssignInt32(&z, ((z+1)&(128-1))))-1))*4)) = uint32_t(0) + if (a+i)&(128-1) == z { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0) } - y = ((1000000000.0 * y) + float64(*(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4)))) + y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))) } - y = y * (float64(sign)) + y = y * float64(sign) // Limit precision for denormal results - if bits > ((53 + e2) - emin) { - bits = ((53 + e2) - emin) + if bits > 53+e2-emin { + bits = 53 + e2 - emin if bits < 0 { bits = 0 } @@ -1369,44 +1369,44 @@ func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, // Calculate bias term to force rounding, move out lower bits if bits < 53 { - bias = Xcopysignl(tls, Xscalbn(tls, float64(1), (((2*53)-bits)-1)), y) - frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), (53-bits))) - y = y - (frac) - y = y + (bias) + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y) + frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits)) + y = y - frac + y = y + bias } // Process tail of decimal input so it can affect rounding - if ((a + i) & (128 - 1)) != z { - var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp /* &x[0] */ + uintptr(((a+i)&(128-1)))*4)) - if (t < uint32_t(500000000)) && ((t != 0) || ((((a + i) + 1) & (128 - 1)) != z)) { - frac = frac + (0.25 * float64(sign)) + if (a+i)&(128-1) != z { + var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) + if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) { + frac = frac + 0.25*float64(sign) } else if t > uint32_t(500000000) { - frac = frac + (0.75 * float64(sign)) + frac = frac + 0.75*float64(sign) } else if t == uint32_t(500000000) { - if (((a + i) + 1) & (128 - 1)) == z { - frac = frac + (0.5 * float64(sign)) + if (a+i+1)&(128-1) == z { + frac = frac + 0.5*float64(sign) } else { - frac = frac + (0.75 * float64(sign)) + frac = frac + 0.75*float64(sign) } } - if ((53 - bits) >= 2) && !(Xfmodl(tls, frac, float64(1)) != 0) { + if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) { frac += 1 } } - y = y + (frac) - y = y - (bias) + y = y + frac + y = y - bias - if ((e2 + 53) & 0x7fffffff) > (emax - 5) { - if Xfabsl(tls, y) >= (float64(float64(2)) / 2.22044604925031308085e-16) { - if (denormal != 0) && (bits == ((53 + e2) - emin)) { + if (e2+53)&0x7fffffff > emax-5 { + if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 { + if denormal != 0 && bits == 53+e2-emin { denormal = 0 } - y = y * (0.5) + y = y * 0.5 e2++ } - if ((e2 + 53) > emax) || ((denormal != 0) && (frac != 0)) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 + if e2+53 > emax || denormal != 0 && frac != 0 { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 } } @@ -1432,7 +1432,7 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 var c int32 c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1440,7 +1440,7 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 // Skip leading zeros for ; c == '0'; c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1451,7 +1451,7 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 if c == '.' { gotrad = 1 c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1466,7 +1466,7 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 goto __2 __2: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1477,8 +1477,8 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 __3: } - for ; (((uint32(c - '0')) < 10) || ((uint32((c | 32) - 'a')) < 6)) || (c == '.'); c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1492,33 +1492,33 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 } else { gotdig = 1 if c > '9' { - d = (((c | 32) + 10) - 'a') + d = c | 32 + 10 - 'a' } else { - d = (c - '0') + d = c - '0' } if dc < int64(8) { - x = ((x * uint32_t(16)) + uint32_t(d)) - } else if dc < (int64((53 / 4) + 1)) { - y = y + (float64(d) * (AssignDivFloat64(&scale, float64(16)))) - } else if (d != 0) && !(gottail != 0) { - y = y + (0.5 * scale) + x = x*uint32_t(16) + uint32_t(d) + } else if dc < int64(53/4+1) { + y = y + float64(d)*AssignDivFloat64(&scale, float64(16)) + } else if d != 0 && !(gottail != 0) { + y = y + 0.5*scale gottail = 1 } dc++ } } if !(gotdig != 0) { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if pok != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if gotrad != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1526,20 +1526,20 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 } else { X__shlim(tls, f, int64(0)) } - return (float64(sign) * 0.0) + return float64(sign) * 0.0 } if !(gotrad != 0) { rp = dc } for dc < int64(8) { - x = x * (uint32_t(16)) + x = x * uint32_t(16) dc++ } - if (c | 32) == 'p' { + if c|32 == 'p' { e2 = scanexp(tls, f, pok) - if e2 == (-0x7fffffffffffffff - int64(1)) { + if e2 == -0x7fffffffffffffff-int64(1) { if pok != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1550,23 +1550,23 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 e2 = int64(0) } } else { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } } - e2 = e2 + ((int64(4) * rp) - int64(32)) + e2 = e2 + (int64(4)*rp - int64(32)) if !(x != 0) { - return (float64(sign) * 0.0) + return float64(sign) * 0.0 } if e2 > int64(-emin) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 - return ((float64(sign) * 1.79769313486231570815e+308) * 1.79769313486231570815e+308) + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 } - if e2 < (int64(emin - (2 * 53))) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 - return ((float64(sign) * 2.22507385850720138309e-308) * 2.22507385850720138309e-308) + if e2 < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 } for x < 0x80000000 { @@ -1574,33 +1574,33 @@ func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32 x = x + (x + uint32_t(1)) y = y + (y - float64(1)) } else { - x = x + (x) - y = y + (y) + x = x + x + y = y + y } e2-- } - if int64(bits) > ((int64(32) + e2) - int64(emin)) { - bits = (int32((int64(32) + e2) - int64(emin))) + if int64(bits) > int64(32)+e2-int64(emin) { + bits = int32(int64(32) + e2 - int64(emin)) if bits < 0 { bits = 0 } } if bits < 53 { - bias = Xcopysignl(tls, Xscalbn(tls, float64(1), (((32+53)-bits)-1)), float64(sign)) + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign)) } - if ((bits < 32) && (y != 0)) && !((x & uint32_t(1)) != 0) { + if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) { x++ y = float64(0) } - y = ((bias + (float64(sign) * float64(x))) + (float64(sign) * y)) - y = y - (bias) + y = bias + float64(sign)*float64(x) + float64(sign)*y + y = y - bias if !(y != 0) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 } return Xscalbnl(tls, y, int32(e2)) @@ -1616,70 +1616,70 @@ func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* float switch prec { case 0: bits = 24 - emin = ((-125) - bits) + emin = -125 - bits break case 1: bits = 53 - emin = ((-1021) - bits) + emin = -1021 - bits break case 2: bits = 53 - emin = ((-1021) - bits) + emin = -1021 - bits break default: return float64(0) } for __isspace(tls, AssignInt32(&c, func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }())) != 0 { } - if (c == '+') || (c == '-') { - sign = sign - (2 * (Bool32(c == '-'))) + if c == '+' || c == '-' { + sign = sign - 2*Bool32(c == '-') c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() } - for i = uint64(0); (i < uint64(8)) && ((c | 32) == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i))))); i++ { + for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ { if i < uint64(7) { c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() } } - if ((i == uint64(3)) || (i == uint64(8))) || ((i > uint64(3)) && (pok != 0)) { + if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 { if i != uint64(8) { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if pok != 0 { for ; i > uint64(3); i-- { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } } } } - return (float64(float32(sign) * X__builtin_inff(tls))) + return float64(float32(sign) * X__builtin_inff(tls)) } if !(i != 0) { - for i = uint64(0); (i < uint64(3)) && ((c | 32) == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i))))); i++ { + for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ { if i < uint64(2) { c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1688,72 +1688,72 @@ func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* float } } if i == uint64(3) { - if (func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if func() int32 { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) - }()) != '(' { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + }() != '(' { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } - return float64(X__builtin_nanf(tls, ts+13 /* "" */)) + return float64(X__builtin_nanf(tls, ts+13)) } for i = uint64(1); ; i++ { c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() - if ((((uint32(c - '0')) < 10) || ((uint32(c - 'A')) < 26)) || ((uint32(c - 'a')) < 26)) || (c == '_') { + if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' { continue } if c == ')' { - return float64(X__builtin_nanf(tls, ts+13 /* "" */)) + return float64(X__builtin_nanf(tls, ts+13)) } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if !(pok != 0) { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 X__shlim(tls, f, int64(0)) return float64(0) } for PostDecUint64(&i, 1) != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } } - return float64(X__builtin_nanf(tls, ts+13 /* "" */)) + return float64(X__builtin_nanf(tls, ts+13)) } - return float64(X__builtin_nanf(tls, ts+13 /* "" */)) + return float64(X__builtin_nanf(tls, ts+13)) } if i != 0 { - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 X__shlim(tls, f, int64(0)) return float64(0) } if c == '0' { c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() - if (c | 32) == 'x' { + if c|32 == 'x' { return hexfloat(tls, f, bits, emin, sign, pok) } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1790,18 +1790,18 @@ func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 var x uint32 var y uint64 var bs int32 - val = (uintptr(unsafe.Pointer(&table)) + uintptr(1)) + val = uintptr(unsafe.Pointer(&table)) + uintptr(1) neg = 0 - if !((base > uint32(36)) || (base == uint32(1))) { + if !(base > uint32(36) || base == uint32(1)) { goto __1 } - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 return uint64(0) __1: ; __2: if !(__isspace(tls, AssignInt32(&c, func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1811,32 +1811,32 @@ __2: goto __2 __3: ; - if !((c == '+') || (c == '-')) { + if !(c == '+' || c == '-') { goto __4 } - neg = -(Bool32(c == '-')) + neg = -Bool32(c == '-') c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() __4: ; - if !(((base == uint32(0)) || (base == uint32(16))) && (c == '0')) { + if !((base == uint32(0) || base == uint32(16)) && c == '0') { goto __5 } c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) }() - if !((c | 32) == 'x') { + if !(c|32 == 'x') { goto __7 } c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1844,14 +1844,14 @@ __4: if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) { goto __9 } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if !(pok != 0) { goto __10 } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } @@ -1885,12 +1885,12 @@ __13: if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) { goto __14 } - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } X__shlim(tls, f, int64(0)) - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 22 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 return uint64(0) __14: ; @@ -1901,14 +1901,14 @@ __6: } x = uint32(0) __17: - if !(((uint32(c - '0')) < 10) && (x <= ((0xffffffff / uint32(10)) - uint32(1)))) { + if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) { goto __19 } - x = ((x * uint32(10)) + (uint32(c - '0'))) + x = x*uint32(10) + uint32(c-'0') goto __18 __18: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1919,14 +1919,14 @@ __19: ; y = uint64(x) __20: - if !((((uint32(c - '0')) < 10) && (y <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) / uint64(10)))) && ((uint64(10) * y) <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) - (uint64(c - '0'))))) { + if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) { goto __22 } - y = ((y * uint64(10)) + (uint64(c - '0'))) + y = y*uint64(10) + uint64(c-'0') goto __21 __21: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1935,7 +1935,7 @@ __21: goto __22 __22: ; - if !((uint32(c - '0')) >= 10) { + if !(uint32(c-'0') >= 10) { goto __23 } goto done @@ -1943,20 +1943,20 @@ __23: ; goto __16 __15: - if !(!((base & (base - uint32(1))) != 0)) { + if !!(base&(base-uint32(1)) != 0) { goto __24 } - bs = int32(*(*int8)(unsafe.Pointer(ts + 14 /* "\x00\x01\x02\x04\a\x03\x06\x05" */ + uintptr((((uint32(0x17) * base) >> 5) & uint32(7)))))) + bs = int32(*(*int8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7))))) x = uint32(0) __26: - if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (x <= (0xffffffff / uint32(32)))) { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) { goto __28 } - x = ((x << bs) | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) + x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) goto __27 __27: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1967,14 +1967,14 @@ __28: ; y = uint64(x) __29: - if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (y <= (uint64(((2 * uint64(0x7fffffffffffffff)) + uint64(1))) >> bs))) { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) { goto __31 } - y = ((y << bs) | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) + y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) goto __30 __30: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -1987,14 +1987,14 @@ __31: __24: x = uint32(0) __32: - if !((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (x <= ((0xffffffff / uint32(36)) - uint32(1)))) { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) { goto __34 } - x = ((x * base) + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) + x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) goto __33 __33: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -2005,14 +2005,14 @@ __34: ; y = uint64(x) __35: - if !(((uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) && (y <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) / uint64(base)))) && ((uint64(base) * y) <= (((2 * uint64(0x7fffffffffffffff)) + uint64(1)) - uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))))) { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) { goto __37 } - y = ((y * uint64(base)) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) + y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) goto __36 __36: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -2035,7 +2035,7 @@ __39: goto __40 __40: c = func() int32 { - if (*FILE1)(unsafe.Pointer((f))).rpos != (*FILE1)(unsafe.Pointer((f))).shend { + if (*FILE1)(unsafe.Pointer(f)).rpos != (*FILE1)(unsafe.Pointer(f)).shend { return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE1)(unsafe.Pointer(f)).rpos, 1)))) } return X__shgetc(tls, f) @@ -2044,9 +2044,9 @@ __40: goto __41 __41: ; - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 y = lim - if !((lim & uint64(1)) != 0) { + if !(lim&uint64(1) != 0) { goto __42 } neg = 0 @@ -2055,24 +2055,24 @@ __42: __38: ; done: - if (*FILE1)(unsafe.Pointer((f))).shlim >= int64(0) { + if (*FILE1)(unsafe.Pointer(f)).shlim >= int64(0) { (*FILE1)(unsafe.Pointer(f)).rpos-- } else { } if !(y >= lim) { goto __43 } - if !(!((lim & uint64(1)) != 0) && !(neg != 0)) { + if !(!(lim&uint64(1) != 0) && !(neg != 0)) { goto __44 } - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 - return (lim - uint64(1)) + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return lim - uint64(1) goto __45 __44: if !(y > lim) { goto __46 } - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 34 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 return lim __46: ; @@ -2080,7 +2080,7 @@ __45: ; __43: ; - return ((y ^ uint64(neg)) - uint64(neg)) + return y ^ uint64(neg) - uint64(neg) } // The shcnt field stores the number of bytes read so far, offset by @@ -2090,10 +2090,10 @@ __43: func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */ (*FILE1)(unsafe.Pointer(f)).shlim = lim - (*FILE1)(unsafe.Pointer(f)).shcnt = ((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) + (*FILE1)(unsafe.Pointer(f)).shcnt = (int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1 // If lim is nonzero, rend must be a valid pointer. - if (lim != 0) && (((int64((*FILE1)(unsafe.Pointer(f)).rend) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) > lim) { - (*FILE1)(unsafe.Pointer(f)).shend = ((*FILE1)(unsafe.Pointer(f)).rpos + uintptr(lim)) + if lim != 0 && (int64((*FILE1)(unsafe.Pointer(f)).rend)-int64((*FILE1)(unsafe.Pointer(f)).rpos))/1 > lim { + (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rpos + uintptr(lim) } else { (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rend } @@ -2101,20 +2101,20 @@ func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */ func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ var c int32 - var cnt off_t = ((*FILE1)(unsafe.Pointer((f))).shcnt + ((int64((*FILE1)(unsafe.Pointer((f))).rpos) - int64((*FILE1)(unsafe.Pointer((f))).buf)) / 1)) - if (((*FILE1)(unsafe.Pointer(f)).shlim != 0) && (cnt >= (*FILE1)(unsafe.Pointer(f)).shlim)) || ((AssignInt32(&c, X__uflow(tls, f))) < 0) { - (*FILE1)(unsafe.Pointer(f)).shcnt = (((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) + cnt) + var cnt off_t = (*FILE1)(unsafe.Pointer(f)).shcnt + (int64((*FILE1)(unsafe.Pointer(f)).rpos)-int64((*FILE1)(unsafe.Pointer(f)).buf))/1 + if (*FILE1)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE1)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 { + (*FILE1)(unsafe.Pointer(f)).shcnt = (int64((*FILE1)(unsafe.Pointer(f)).buf)-int64((*FILE1)(unsafe.Pointer(f)).rpos))/1 + cnt (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rpos (*FILE1)(unsafe.Pointer(f)).shlim = int64(-1) return -1 } cnt++ - if ((*FILE1)(unsafe.Pointer(f)).shlim != 0) && (((int64((*FILE1)(unsafe.Pointer(f)).rend) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) > ((*FILE1)(unsafe.Pointer(f)).shlim - cnt)) { - (*FILE1)(unsafe.Pointer(f)).shend = ((*FILE1)(unsafe.Pointer(f)).rpos + uintptr(((*FILE1)(unsafe.Pointer(f)).shlim - cnt))) + if (*FILE1)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE1)(unsafe.Pointer(f)).rend)-int64((*FILE1)(unsafe.Pointer(f)).rpos))/1 > (*FILE1)(unsafe.Pointer(f)).shlim-cnt { + (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rpos + uintptr((*FILE1)(unsafe.Pointer(f)).shlim-cnt) } else { (*FILE1)(unsafe.Pointer(f)).shend = (*FILE1)(unsafe.Pointer(f)).rend } - (*FILE1)(unsafe.Pointer(f)).shcnt = (((int64((*FILE1)(unsafe.Pointer(f)).buf) - int64((*FILE1)(unsafe.Pointer(f)).rpos)) / 1) + cnt) + (*FILE1)(unsafe.Pointer(f)).shcnt = (int64((*FILE1)(unsafe.Pointer(f)).buf)-int64((*FILE1)(unsafe.Pointer(f)).rpos))/1 + cnt if (*FILE1)(unsafe.Pointer(f)).rpos <= (*FILE1)(unsafe.Pointer(f)).buf { *(*uint8)(unsafe.Pointer((*FILE1)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c) } @@ -2122,7 +2122,7 @@ func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ } func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */ - return ((((__x >> 24) | ((__x >> 8) & uint32_t(0xff00))) | ((__x << 8) & uint32_t(0xff0000))) | (__x << 24)) + return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24 } func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */ @@ -2137,27 +2137,27 @@ func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */ return Xfmod(tls, x, y) } -var toint double_t = (float64(float64(1)) / 2.22044604925031308085e-16) /* rint.c:10:23 */ +var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */ func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */ bp := tls.Alloc(8) defer tls.Free(8) - *(*struct{ f float64 })(unsafe.Pointer(bp /* u */)) = func() (r struct{ f float64 }) { + *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) { *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x return r }() - var e int32 = (int32((*(*uint64_t)(unsafe.Pointer(bp /* &u */)) >> 52) & uint64(0x7ff))) - var s int32 = (int32(*(*uint64_t)(unsafe.Pointer(bp /* &u */)) >> 63)) + var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff)) + var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63) var y double_t - if e >= (0x3ff + 52) { + if e >= 0x3ff+52 { return x } if s != 0 { - y = ((x - toint) + toint) + y = x - toint + toint } else { - y = ((x + toint) - toint) + y = x + toint - toint } if y == float64(0) { if s != 0 { @@ -2177,11 +2177,11 @@ func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */ var y double_t = x if n > 1023 { - y = y * (0x1p1023) - n = n - (1023) + y = y * 0x1p1023 + n = n - 1023 if n > 1023 { - y = y * (0x1p1023) - n = n - (1023) + y = y * 0x1p1023 + n = n - 1023 if n > 1023 { n = 1023 } @@ -2199,8 +2199,8 @@ func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */ } } } - *(*uint64_t)(unsafe.Pointer(bp /* &u */)) = ((uint64_t(0x3ff + n)) << 52) - x = (y * *(*float64)(unsafe.Pointer(bp /* &u */))) + *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52 + x = y * *(*float64)(unsafe.Pointer(bp)) return x } @@ -2550,10 +2550,10 @@ __2: goto __3 __3: ; - var b uintptr = (p - uintptr((uint64((uintptr(0) /* &.ai */))))) - b -= 88 * (uintptr((*aibuf)(unsafe.Pointer(b)).slot)) + var b uintptr = p - uintptr(uint64(uintptr(0))) + b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot) //TODO LOCK(b->lock); - if !(int32(AssignSubPtrInt16(b+82 /* &.ref */, int16(cnt))) != 0) { + if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) { Xfree(tls, b) } //TODO else UNLOCK(b->lock); @@ -2706,8 +2706,8 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype - var mask int32 = ((((((0x01 | 0x02) | 0x04) | 0x08) | 0x10) | 0x20) | 0x400) - if (flags & mask) != flags { + var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400 + if flags&mask != flags { return -1 } @@ -2724,7 +2724,7 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt } } - if (flags & 0x20) != 0 { + if flags&0x20 != 0 { Xabort(tls) //TODO- // /* Define the "an address is configured" condition for address // * families via ability to create a socket for the family plus @@ -2769,26 +2769,26 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt // } } - nservs = X__lookup_serv(tls, bp /* &ports[0] */, serv, proto, socktype, flags) + nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags) if nservs < 0 { return nservs } - naddrs = X__lookup_name(tls, bp+8 /* &addrs[0] */, bp+1352 /* &canon[0] */, host, family, flags) + naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags) if naddrs < 0 { return naddrs } - nais = (nservs * naddrs) - canon_len = int32(Xstrlen(tls, bp+1352 /* &canon[0] */)) - out = Xcalloc(tls, uint64(1), (((uint64(nais) * uint64(unsafe.Sizeof(aibuf{}))) + uint64(canon_len)) + uint64(1))) + nais = nservs * naddrs + canon_len = int32(Xstrlen(tls, bp+1352)) + out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1)) if !(out != 0) { return -10 } if canon_len != 0 { - outcanon = (out + uintptr(nais)*88) - Xmemcpy(tls, outcanon, bp+1352 /* &canon[0] */, (uint64(canon_len + 1))) + outcanon = out + uintptr(nais)*88 + Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1)) } else { outcanon = uintptr(0) } @@ -2810,31 +2810,31 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt //TODO : sizeof(struct sockaddr_in6), //TODO .ai_addr = (void *)&out[k].sa, //TODO .ai_canonname = outcanon }; - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).family - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp /* &ports */ + uintptr(j)*4)).socktype) - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp /* &ports */ + uintptr(j)*4)).proto) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto) (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 { - if (*address)(unsafe.Pointer(bp+8 /* &addrs */ +uintptr(i)*28)).family == 2 { + if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 { return uint32(unsafe.Sizeof(sockaddr_in{})) } return uint32(unsafe.Sizeof(sockaddr_in6{})) }() - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = (out + uintptr(k)*88 + 48 /* &.sa */) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48 (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon if k != 0 { - (*aibuf)(unsafe.Pointer(out + uintptr((k-1))*88)).ai.ai_next = (out + uintptr(k)*88 /* &.ai */) + (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88 } - switch (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).family { + switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family { case 2: - (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin_family = sa_family_t(2) - (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp /* &ports */ +uintptr(j)*4)).port) - Xmemcpy(tls, (out + uintptr(k)*88 + 48 /* &.sa */ /* &.sin */ + 4 /* &.sin_addr */), (bp + 8 /* &addrs */ + uintptr(i)*28 + 8 /* &.addr */), uint64(4)) + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2) + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4)) break case 10: - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_family = sa_family_t(10) - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp /* &ports */ +uintptr(j)*4)).port) - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48 /* &.sa */)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 /* &addrs */ + uintptr(i)*28)).scopeid - Xmemcpy(tls, (out + uintptr(k)*88 + 48 /* &.sa */ /* &.sin6 */ + 8 /* &.sin6_addr */), (bp + 8 /* &addrs */ + uintptr(i)*28 + 8 /* &.addr */), uint64(16)) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid + Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16)) break } @@ -2848,7 +2848,7 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt __3: } (*aibuf)(unsafe.Pointer(out)).ref = int16(nais) - *(*uintptr)(unsafe.Pointer(res)) = (out /* &.ai */) + *(*uintptr)(unsafe.Pointer(res)) = out return 0 } @@ -2884,15 +2884,15 @@ func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* get // var res uintptr at bp, 8 var err int32 - for ok := true; ok; ok = (err == 34) { + for ok := true; ok; ok = err == 34 { Xfree(tls, _sh) - _sh = Xmalloc(tls, AssignAddUint64(&size, (size+uint64(1)))) + _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) if !(_sh != 0) { - (*(*int32)(unsafe.Pointer(X__h_errno_location(tls)))) = 3 + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 return uintptr(0) } err = Xgethostbyaddr_r(tls, a, l, af, _sh, - (_sh + uintptr(1)*32), (size - size_t(unsafe.Sizeof(hostent{}))), bp /* &res */, X__h_errno_location(tls)) + _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) } if err != 0 { return uintptr(0) @@ -2914,15 +2914,15 @@ func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbynam // var res uintptr at bp, 8 var err int32 - for ok := true; ok; ok = (err == 34) { + for ok := true; ok; ok = err == 34 { Xfree(tls, _sh1) - _sh1 = Xmalloc(tls, AssignAddUint64(&size, (size+uint64(1)))) + _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) if !(_sh1 != 0) { - (*(*int32)(unsafe.Pointer(X__h_errno_location(tls)))) = 3 + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 return uintptr(0) } err = Xgethostbyname2_r(tls, name, af, _sh1, - (_sh1 + uintptr(1)*32), (size - size_t(unsafe.Sizeof(hostent{}))), bp /* &res */, X__h_errno_location(tls)) + _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) } if err != 0 { return uintptr(0) @@ -2946,7 +2946,7 @@ func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, var need size_t *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) - cnt = X__lookup_name(tls, bp /* &addrs[0] */, bp+1344 /* &canon[0] */, name, af, 0x02) + cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02) if cnt < 0 { switch cnt { case -2: @@ -2980,13 +2980,13 @@ func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, }() // Align buffer - align = (-uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))) + align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)) - need = (uint64(4) * uint64(unsafe.Sizeof(uintptr(0)))) - need = need + ((uint64(cnt + 1)) * (uint64(unsafe.Sizeof(uintptr(0))) + uint64((*hostent)(unsafe.Pointer(h)).h_length))) + need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0))) + need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length)) need = need + (Xstrlen(tls, name) + uint64(1)) - need = need + (Xstrlen(tls, bp+1344 /* &canon[0] */) + uint64(1)) - need = need + (align) + need = need + (Xstrlen(tls, bp+1344) + uint64(1)) + need = need + align if need > buflen { return 34 @@ -2994,25 +2994,25 @@ func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buf += uintptr(align) (*hostent)(unsafe.Pointer(h)).h_aliases = buf - buf += (uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0))))) + buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0)))) (*hostent)(unsafe.Pointer(h)).h_addr_list = buf - buf += (uintptr((uint64(cnt + 1)) * uint64(unsafe.Sizeof(uintptr(0))))) + buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0)))) for i = 0; i < cnt; i++ { *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length) - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp /* &addrs */ +uintptr(i)*28+8 /* &.addr */, uint64((*hostent)(unsafe.Pointer(h)).h_length)) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length)) } *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0) (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf) - Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344 /* &canon[0] */) - buf += (uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1))) + Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344) + buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1)) if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 { *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name) - buf += (uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1))) + buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1)) } else { *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) } @@ -3201,11 +3201,11 @@ type res_sym = struct { } /* resolv.h:70:1 */ func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */ - p += (uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0))))) + p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0)))) *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0) for ok := true; ok; ok = x != 0 { - *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = (int8(uint32('0') + (x % uint32(10)))) - x = x / (uint32(10)) + *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10)) + x = x / uint32(10) } return p } @@ -3214,22 +3214,22 @@ func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ bp := tls.Alloc(32) defer tls.Free(32) - Xsprintf(tls, s, ts+23, /* "%d.%d.%d.%d.in-a..." */ + Xsprintf(tls, s, ts+23, VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) } func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ var i int32 for i = 15; i >= 0; i-- { - *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[(int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i)))) & 15)] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15] *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') - *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[(int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i)))) >> 4)] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') } - Xstrcpy(tls, s, ts+48 /* "ip6.arpa" */) + Xstrcpy(tls, s, ts+48) } -var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 57 /* "0123456789abcdef" */)) /* getnameinfo.c:36:20 */ +var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 57)) /* getnameinfo.c:36:20 */ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ bp := tls.Alloc(556) @@ -3246,45 +3246,45 @@ func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int3 // var iplit address at bp+528, 28 //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - var f uintptr = Xfopen(tls, ts+74 /* "/etc/hosts" */, ts+85 /* "rb" */) + var f uintptr = Xfopen(tls, ts+74, ts+85) if !(f != 0) { return } if family == 2 { - Xmemcpy(tls, (bp /* &atmp[0] */ + uintptr(12)), a, uint64(4)) - Xmemcpy(tls, bp /* &atmp[0] */, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) + Xmemcpy(tls, bp+uintptr(12), a, uint64(4)) + Xmemcpy(tls, bp, ts+88, uint64(12)) a = bp /* &atmp[0] */ } - for Xfgets(tls, bp+16 /* &line[0] */, int32(unsafe.Sizeof([512]int8{})), f) != 0 { - if AssignUintptr(&p, Xstrchr(tls, bp+16 /* &line[0] */, '#')) != 0 { + for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 { + if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 { *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') *(*int8)(unsafe.Pointer(p)) = int8(0) } - for p = bp + 16; /* &line[0] */ (*(*int8)(unsafe.Pointer(p)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { } *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) - if X__lookup_ipliteral(tls, bp+528 /* &iplit */, bp+16 /* &line[0] */, 0) <= 0 { + if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 { continue } - if (*address)(unsafe.Pointer(bp+528 /* &iplit */)).family == 2 { - Xmemcpy(tls, ((bp + 528 /* &iplit */ + 8 /* &.addr */) + uintptr(12)), bp+528 /* &iplit */ +8 /* &.addr */, uint64(4)) - Xmemcpy(tls, bp+528 /* &iplit */ +8 /* &.addr */, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) + if (*address)(unsafe.Pointer(bp+528)).family == 2 { + Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4)) + Xmemcpy(tls, bp+528+8, ts+88, uint64(12)) (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) } - if (Xmemcmp(tls, a, bp+528 /* &iplit */ +8 /* &.addr */, uint64(16)) != 0) || ((*address)(unsafe.Pointer(bp+528 /* &iplit */)).scopeid != scopeid) { + if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid { continue } - for ; (*(*int8)(unsafe.Pointer(p)) != 0) && (__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { } - for z = p; (*(*int8)(unsafe.Pointer(z)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { } *(*int8)(unsafe.Pointer(z)) = int8(0) - if ((int64(z) - int64(p)) / 1) < int64(256) { - Xmemcpy(tls, buf, p, (uint64(((int64(z) - int64(p)) / 1) + int64(1)))) + if (int64(z)-int64(p))/1 < int64(256) { + Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1))) break } } @@ -3336,41 +3336,41 @@ func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5 var i int32 for i = 0; i < 4; i++ { - *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32 /* &z */, 0) - if ((*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)) == s) || ((*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)))) != 0) && (int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */))))) != '.'))) || !(func() int32 { + *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0) + if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 { if 0 != 0 { return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s)))) } - return (Bool32(((uint32(*(*int8)(unsafe.Pointer(s)))) - uint32('0')) < uint32(10))) + return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) }() != 0) { return 0 } - if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32 /* z */))))) != 0) { + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) { break } - s = (*(*uintptr)(unsafe.Pointer(bp + 32 /* z */)) + uintptr(1)) + s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1) } if i == 4 { return 0 } switch i { case 0: - *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 1*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */)) & uint64(0xffffff)) - AssignShrPtrUint64(bp /* &a */, int(24)) + *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff) + AssignShrPtrUint64(bp, int(24)) fallthrough case 1: - *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 2*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 1*8)) & uint64(0xffff)) - AssignShrPtrUint64(bp /* &a */ +1*8, int(16)) + *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff) + AssignShrPtrUint64(bp+1*8, int(16)) fallthrough case 2: - *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 3*8)) = (*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + 2*8)) & uint64(0xff)) - AssignShrPtrUint64(bp /* &a */ +2*8, int(8)) + *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff) + AssignShrPtrUint64(bp+2*8, int(8)) } for i = 0; i < 4; i++ { - if *(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8)) > uint64(255) { + if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) { return 0 } - *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp /* &a[0] */ + uintptr(i)*8))) + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8))) } return 1 } @@ -3388,63 +3388,63 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr switch af { case 2: - if socklen_t(Xsnprintf(tls, s, uint64(l), ts+101 /* "%d.%d.%d.%d" */, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + if socklen_t(Xsnprintf(tls, s, uint64(l), ts+101, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { return s } break case 10: - if Xmemcmp(tls, a, ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) != 0 { - Xsnprintf(tls, bp+176 /* &buf[0] */, uint64(unsafe.Sizeof([100]int8{})), - ts+113, /* "%x:%x:%x:%x:%x:%..." */ - VaList(bp+32, ((256*int32(*(*uint8)(unsafe.Pointer(a))))+int32(*(*uint8)(unsafe.Pointer(a + 1)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 2))))+int32(*(*uint8)(unsafe.Pointer(a + 3)))), - ((256*int32(*(*uint8)(unsafe.Pointer(a + 4))))+int32(*(*uint8)(unsafe.Pointer(a + 5)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 6))))+int32(*(*uint8)(unsafe.Pointer(a + 7)))), - ((256*int32(*(*uint8)(unsafe.Pointer(a + 8))))+int32(*(*uint8)(unsafe.Pointer(a + 9)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 10))))+int32(*(*uint8)(unsafe.Pointer(a + 11)))), - ((256*int32(*(*uint8)(unsafe.Pointer(a + 12))))+int32(*(*uint8)(unsafe.Pointer(a + 13)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 14))))+int32(*(*uint8)(unsafe.Pointer(a + 15)))))) + if Xmemcmp(tls, a, ts+88, uint64(12)) != 0 { + Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), + ts+113, + VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) } else { - Xsnprintf(tls, bp+176 /* &buf[0] */, uint64(unsafe.Sizeof([100]int8{})), - ts+137, /* "%x:%x:%x:%x:%x:%..." */ - VaList(bp+96, ((256*int32(*(*uint8)(unsafe.Pointer(a))))+int32(*(*uint8)(unsafe.Pointer(a + 1)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 2))))+int32(*(*uint8)(unsafe.Pointer(a + 3)))), - ((256*int32(*(*uint8)(unsafe.Pointer(a + 4))))+int32(*(*uint8)(unsafe.Pointer(a + 5)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 6))))+int32(*(*uint8)(unsafe.Pointer(a + 7)))), - ((256*int32(*(*uint8)(unsafe.Pointer(a + 8))))+int32(*(*uint8)(unsafe.Pointer(a + 9)))), ((256*int32(*(*uint8)(unsafe.Pointer(a + 10))))+int32(*(*uint8)(unsafe.Pointer(a + 11)))), + Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), + ts+137, + VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15))))) } // Replace longest /(^0|:)[:0]{2,}/ with "::" i = AssignInt32(&best, 0) max = 2 - for ; *(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(i))) != 0; i++ { - if (i != 0) && (int32(*(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(i)))) != ':') { + for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ { + if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { continue } - j = int32(Xstrspn(tls, (bp + 176 /* &buf[0] */ + uintptr(i)), ts+167 /* ":0" */)) + j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+167)) if j > max { best = i max = j } } if max > 3 { - *(*int8)(unsafe.Pointer(bp + 176 /* &buf[0] */ + uintptr(best))) = AssignPtrInt8(bp+176 /* &buf */ +uintptr((best+1)), int8(':')) - Xmemmove(tls, ((bp + 176 /* &buf[0] */ + uintptr(best)) + uintptr(2)), ((bp + 176 /* &buf[0] */ + uintptr(best)) + uintptr(max)), (uint64(((i - best) - max) + 1))) + *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':')) + Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1)) } - if Xstrlen(tls, bp+176 /* &buf[0] */) < size_t(l) { - Xstrcpy(tls, s, bp+176 /* &buf[0] */) + if Xstrlen(tls, bp+176) < size_t(l) { + Xstrcpy(tls, s, bp+176) return s } break default: - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 97 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 return uintptr(0) } - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 28 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28 return uintptr(0) } func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */ - if (c - uint32('0')) < uint32(10) { - return (int32(c - uint32('0'))) + if c-uint32('0') < uint32(10) { + return int32(c - uint32('0')) } - c = c | (uint32(32)) - if (c - uint32('a')) < uint32(6) { - return (int32((c - uint32('a')) + uint32(10))) + c = c | uint32(32) + if c-uint32('a') < uint32(6) { + return int32(c - uint32('a') + uint32(10)) } return -1 } @@ -3465,40 +3465,40 @@ func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton. if af == 2 { for i = 0; i < 4; i++ { - for v = AssignInt32(&j, 0); (j < 3) && (func() int32 { + for v = AssignInt32(&j, 0); j < 3 && func() int32 { if 0 != 0 { return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) } - return (Bool32(((uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) - uint32('0')) < uint32(10))) - }() != 0); j++ { - v = (((10 * v) + int32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) - '0') + return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10)) + }() != 0; j++ { + v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0' } - if ((j == 0) || ((j > 1) && (int32(*(*int8)(unsafe.Pointer(s))) == '0'))) || (v > 255) { + if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 { return 0 } *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) - if (int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0) && (i == 3) { + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 { return 1 } if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' { return 0 } - s += (uintptr(j + 1)) + s += uintptr(j + 1) } return 0 } else if af != 10 { - (*(*int32)(unsafe.Pointer(X___errno_location(tls)))) = 97 + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 return -1 } - if (int32(*(*int8)(unsafe.Pointer(s))) == ':') && (int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':') { + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' { return 0 } for i = 0; ; i++ { - if (int32(*(*int8)(unsafe.Pointer(s))) == ':') && (brk < 0) { + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 { brk = i - *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((i&7))*2)) = uint16_t(0) + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0) if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) { break } @@ -3507,40 +3507,40 @@ func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton. } continue } - for v = AssignInt32(&j, 0); (j < 4) && ((AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))))) >= 0); j++ { - v = ((16 * v) + d) + for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ { + v = 16*v + d } if j == 0 { return 0 } - *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((i&7))*2)) = uint16_t(v) - if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && ((brk >= 0) || (i == 7)) { + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v) + if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) { break } if i == 7 { return 0 } if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' { - if (int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.') || ((i < 6) && (brk < 0)) { + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 { return 0 } need_v4 = 1 i++ break } - s += (uintptr(j + 1)) + s += uintptr(j + 1) } if brk >= 0 { - Xmemmove(tls, (((bp /* &ip[0] */ + uintptr(brk)*2) + uintptr(7)*2) - uintptr(i)*2), (bp /* &ip[0] */ + uintptr(brk)*2), (uint64(2 * ((i + 1) - brk)))) - for j = 0; j < (7 - i); j++ { - *(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr((brk+j))*2)) = uint16_t(0) + Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk))) + for j = 0; j < 7-i; j++ { + *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0) } } for j = 0; j < 8; j++ { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = (uint8(int32(*(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr(j)*2))) >> 8)) - *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp /* &ip[0] */ + uintptr(j)*2))) + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8) + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) } - if (need_v4 != 0) && (Xinet_pton(tls, 2, s, (a-uintptr(4))) <= 0) { + if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 { return 0 } return 1 @@ -3554,11 +3554,11 @@ func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int3 // var a6 in6_addr at bp+68, 16 - if X__inet_aton(tls, name, bp /* &a4 */) > 0 { + if X__inet_aton(tls, name, bp) > 0 { if family == 10 { // wrong family return -2 } - Xmemcpy(tls, (buf + 8 /* &.addr */), bp /* &a4 */, uint64(unsafe.Sizeof(in_addr{}))) + Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{}))) (*address)(unsafe.Pointer(buf)).family = 2 (*address)(unsafe.Pointer(buf)).scopeid = uint32(0) return 1 @@ -3569,33 +3569,33 @@ func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int3 // var z uintptr at bp+88, 8 var scopeid uint64 = uint64(0) - if (p != 0) && (((int64(p) - int64(name)) / 1) < int64(64)) { - Xmemcpy(tls, bp+4 /* &tmp[0] */, name, (uint64((int64(p) - int64(name)) / 1))) - *(*int8)(unsafe.Pointer(bp + 4 /* &tmp[0] */ + uintptr(((int64(p) - int64(name)) / 1)))) = int8(0) + if p != 0 && (int64(p)-int64(name))/1 < int64(64) { + Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1)) + *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0) name = bp + 4 /* &tmp[0] */ } - if Xinet_pton(tls, 10, name, bp+68 /* &a6 */) <= 0 { + if Xinet_pton(tls, 10, name, bp+68) <= 0 { return 0 } if family == 2 { // wrong family return -2 } - Xmemcpy(tls, (buf + 8 /* &.addr */), bp+68 /* &a6 */, uint64(unsafe.Sizeof(in6_addr{}))) + Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{}))) (*address)(unsafe.Pointer(buf)).family = 10 if p != 0 { if func() int32 { if 0 != 0 { return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) } - return (Bool32(((uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) - uint32('0')) < uint32(10))) + return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10)) }() != 0 { - scopeid = Xstrtoull(tls, p, bp+88 /* &z */, 10) + scopeid = Xstrtoull(tls, p, bp+88, 10) } else { - *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = (p - uintptr(1)) + *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1) } - if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* z */)))) != 0 { + if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 { Xabort(tls) //TODO- // if (!IN6_IS_ADDR_LINKLOCAL(&a6) && // !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) @@ -3626,10 +3626,10 @@ type flock = struct { func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */ var s uintptr //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0; - if (Xstrnlen(tls, host, uint64(255)) - uint64(1)) >= uint64(254) { + if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) { return 0 } - for s = host; (((int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80) || (int32(*(*uint8)(unsafe.Pointer(s))) == '.')) || (int32(*(*uint8)(unsafe.Pointer(s))) == '-')) || (Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0); s++ { + for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ { } return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0)) } @@ -3641,7 +3641,7 @@ func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int if name != 0 { return 0 } - if (flags & 0x01) != 0 { + if flags&0x01 != 0 { //TODO if (family != AF_INET6) //TODO buf[cnt++] = (struct address){ .family = AF_INET }; if family != 10 { @@ -3684,7 +3684,7 @@ func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); var _f FILE1 _ = _f - var f uintptr = Xfopen(tls, ts+74 /* "/etc/hosts" */, ts+85 /* "rb" */) + var f uintptr = Xfopen(tls, ts+74, ts+85) if !(f != 0) { switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { case 2: @@ -3698,25 +3698,25 @@ func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family return -11 } } - for (Xfgets(tls, bp /* &line[0] */, int32(unsafe.Sizeof([512]int8{})), f) != 0) && (cnt < 48) { + for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 { var p uintptr var z uintptr - if AssignUintptr(&p, Xstrchr(tls, bp /* &line[0] */, '#')) != 0 { + if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 { *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') *(*int8)(unsafe.Pointer(p)) = int8(0) } - for p = (bp /* &line[0] */ + uintptr(1)); (AssignUintptr(&p, Xstrstr(tls, p, name)) != 0) && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ { + for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ { } if !(p != 0) { continue } // Isolate IP address to parse - for p = bp; /* &line[0] */ (*(*int8)(unsafe.Pointer(p)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { } *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) - switch name_from_numeric(tls, (buf + uintptr(cnt)*28), bp /* &line[0] */, family) { + switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) { case 1: cnt++ break @@ -3728,13 +3728,13 @@ func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family } // Extract first name as canonical name - for ; (*(*int8)(unsafe.Pointer(p)) != 0) && (__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { } - for z = p; (*(*int8)(unsafe.Pointer(z)) != 0) && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { } *(*int8)(unsafe.Pointer(z)) = int8(0) if is_valid_hostname(tls, p) != 0 { - Xmemcpy(tls, canon, p, (uint64(((int64(z) - int64(p)) / 1) + int64(1)))) + Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1))) } } //TODO __fclose_ca(f); @@ -3807,26 +3807,26 @@ type policy = struct { } /* lookup_name.c:237:14 */ var defpolicy = [6]policy{ - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 170 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" */)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 187 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00" */)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 203 /* " \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 219 /* " \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 235 /* "\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 170)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 187)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 203)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 219)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 235)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, // Last rule must match all addresses to stop loop. - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 251 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" */)), prec: uint8(40), label: uint8(1)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 251)), prec: uint8(40), label: uint8(1)}, } /* lookup_name.c:241:3 */ func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ var i int32 for i = 0; ; i++ { - if Xmemcmp(tls, a /* &.__in6_union */ /* &.__s6_addr */, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20 /* &.addr */, uint64(defpolicy[i].len)) != 0 { + if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 { continue } - if (int32(*(*uint8_t)(unsafe.Pointer((a /* &.__in6_union */ /* &.__s6_addr */) + uintptr(defpolicy[i].len)))) & int32(defpolicy[i].mask)) != - int32(*(*uint8)(unsafe.Pointer((uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 /* &.addr */) + uintptr(defpolicy[i].len)))) { + if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) != + int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) { continue } - return (uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20) + return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 } return uintptr(0) } @@ -3836,16 +3836,16 @@ func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */ } func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */ - if int32(*(*uint8_t)(unsafe.Pointer((a)))) == 0xff { - return (int32(*(*uint8_t)(unsafe.Pointer((a /* &.__in6_union */ /* &.__s6_addr */) + 1))) & 15) + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff { + return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15 } - if ((int32(*(*uint8_t)(unsafe.Pointer((a))))) == 0xfe) && ((int32(*(*uint8_t)(unsafe.Pointer((a) + 1))) & 0xc0) == 0x80) { + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 { return 2 } - if ((((((*(*uint32_t)(unsafe.Pointer((a))) == uint32_t(0)) && (*(*uint32_t)(unsafe.Pointer((a) + 1*4)) == uint32_t(0))) && (*(*uint32_t)(unsafe.Pointer((a) + 2*4)) == uint32_t(0))) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 12))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 13))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 14))) == 0)) && (int32(*(*uint8_t)(unsafe.Pointer((a) + 15))) == 1) { + if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 { return 2 } - if ((int32(*(*uint8_t)(unsafe.Pointer((a))))) == 0xfe) && ((int32(*(*uint8_t)(unsafe.Pointer((a) + 1))) & 0xc0) == 0xc0) { + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 { return 5 } return 14 @@ -3857,7 +3857,7 @@ func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12 // address. However the definition of the source prefix length is // not clear and thus this limiting is not yet implemented. var i uint32 - for i = uint32(0); (i < uint32(128)) && !(((int32(*(*uint8_t)(unsafe.Pointer((s /* &.__in6_union */ /* &.__s6_addr */) + uintptr((i / uint32(8)))))) ^ int32(*(*uint8_t)(unsafe.Pointer((d /* &.__in6_union */ /* &.__s6_addr */) + uintptr((i / uint32(8))))))) & (int32(128) >> (i % uint32(8)))) != 0); i++ { + for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ { } return int32(i) } @@ -3865,7 +3865,7 @@ func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12 func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */ var a uintptr = _a var b uintptr = _b - return ((*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey) + return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey } func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */ @@ -3881,20 +3881,20 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i if name != 0 { // reject empty name and check len so it fits into temp bufs var l size_t = Xstrnlen(tls, name, uint64(255)) - if (l - uint64(1)) >= uint64(254) { + if l-uint64(1) >= uint64(254) { return -2 } - Xmemcpy(tls, canon, name, (l + uint64(1))) + Xmemcpy(tls, canon, name, l+uint64(1)) } // Procedurally, a request for v6 addresses with the v4-mapped // flag set is like a request for unspecified family, followed // by filtering of the results. - if (flags & 0x08) != 0 { + if flags&0x08 != 0 { if family == 10 { family = 0 } else { - flags = flags - (0x08) + flags = flags - 0x08 } } @@ -3903,7 +3903,7 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i if !(cnt != 0) { cnt = name_from_numeric(tls, buf, name, family) } - if !(cnt != 0) && !((flags & 0x04) != 0) { + if !(cnt != 0) && !(flags&0x04 != 0) { cnt = name_from_hosts(tls, buf, canon, name, family) if !(cnt != 0) { cnt = name_from_dns_search(tls, buf, canon, name, family) @@ -3917,7 +3917,7 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i } // Filter/transform results for v4-mapped lookup, if requested. - if (flags & 0x08) != 0 { + if flags&0x08 != 0 { Xabort(tls) //TODO- // if (!(flags & AI_ALL)) { // /* If any v6 results exist, remove v4 results. */ @@ -3941,7 +3941,7 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i // No further processing is needed if there are fewer than 2 // results or if there are only IPv4 results. - if (cnt < 2) || (family == 2) { + if cnt < 2 || family == 2 { return cnt } for i = 0; i < cnt; i++ { @@ -3974,55 +3974,55 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i var dalen socklen_t if family == 10 { - Xmemcpy(tls, bp /* &da6 */ +8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */, buf+uintptr(i)*28+8 /* &.addr */, uint64(16)) + Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16)) da = bp /* &da6 */ dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{})) sa1 = bp + 28 /* &sa6 */ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{})) } else { - Xmemcpy(tls, bp+28 /* &sa6 */ +8, /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */ - ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) - Xmemcpy(tls, ((bp /* &da6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)), buf+uintptr(i)*28+8 /* &.addr */, uint64(4)) - Xmemcpy(tls, bp /* &da6 */ +8, /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */ - ts+88 /* "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff" */, uint64(12)) - Xmemcpy(tls, ((bp /* &da6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)), buf+uintptr(i)*28+8 /* &.addr */, uint64(4)) - Xmemcpy(tls, (bp + 56 /* &da4 */ + 4 /* &.sin_addr */), buf+uintptr(i)*28+8 /* &.addr */, uint64(4)) + Xmemcpy(tls, bp+28+8, + ts+88, uint64(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+8, + ts+88, uint64(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4)) da = bp + 56 /* &da4 */ dalen = socklen_t(unsafe.Sizeof(sockaddr_in{})) sa1 = bp + 72 /* &sa4 */ *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{})) } - var dpolicy uintptr = policyof(tls, (bp /* &da6 */ + 8 /* &.sin6_addr */)) - var dscope int32 = scopeof(tls, (bp /* &da6 */ + 8 /* &.sin6_addr */)) + var dpolicy uintptr = policyof(tls, bp+8) + var dscope int32 = scopeof(tls, bp+8) var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label) var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec) var prefixlen int32 = 0 - var fd int32 = Xsocket(tls, family, (2 | 02000000), 17) + var fd int32 = Xsocket(tls, family, 2|02000000, 17) if fd >= 0 { if !(Xconnect(tls, fd, da, dalen) != 0) { - key = key | (0x40000000) - if !(Xgetsockname(tls, fd, sa1, bp+88 /* &salen */) != 0) { + key = key | 0x40000000 + if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) { if family == 2 { Xmemcpy(tls, - ((bp + 28 /* &sa6 */ + 8 /* &.sin6_addr */ /* &.__in6_union */ /* &.__s6_addr */) + uintptr(12)), - (bp + 72 /* &sa4 */ + 4 /* &.sin_addr */), uint64(4)) + bp+28+8+uintptr(12), + bp+72+4, uint64(4)) } - if dscope == scopeof(tls, (bp+28 /* &sa6 */ +8 /* &.sin6_addr */)) { - key = key | (0x20000000) + if dscope == scopeof(tls, bp+28+8) { + key = key | 0x20000000 } - if dlabel == labelof(tls, (bp+28 /* &sa6 */ +8 /* &.sin6_addr */)) { - key = key | (0x10000000) + if dlabel == labelof(tls, bp+28+8) { + key = key | 0x10000000 } - prefixlen = prefixmatch(tls, (bp + 28 /* &sa6 */ + 8 /* &.sin6_addr */), - (bp /* &da6 */ + 8 /* &.sin6_addr */)) + prefixlen = prefixmatch(tls, bp+28+8, + bp+8) } } Xclose(tls, fd) } - key = key | (dprec << 20) - key = key | ((15 - dscope) << 16) - key = key | (prefixlen << 8) - key = key | ((48 - i) << 0) + key = key | dprec<<20 + key = key | (15-dscope)<<16 + key = key | prefixlen<<8 + key = key | (48-i)<<0 (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key } Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct { @@ -4085,9 +4085,9 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) { return -8 } - port = Xstrtoul(tls, name, bp /* &z */, 10) + port = Xstrtoul(tls, name, bp, 10) } - if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* z */))))) != 0) { + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) { if port > uint64(65535) { return -8 } @@ -4104,7 +4104,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return cnt } - if (flags & 0x400) != 0 { + if flags&0x400 != 0 { return -2 } @@ -4160,19 +4160,19 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i } func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */ - *(*int32)(unsafe.Pointer(f + 136 /* &.mode */)) |= ((*FILE1)(unsafe.Pointer(f)).mode - 1) + *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE1)(unsafe.Pointer(f)).mode - 1 if (*FILE1)(unsafe.Pointer(f)).wpos != (*FILE1)(unsafe.Pointer(f)).wbase { (*struct { f func(*TLS, uintptr, uintptr, size_t) size_t })(unsafe.Pointer(&struct{ uintptr }{(*FILE1)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0)) } - (*FILE1)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56 /* &.wbase */, AssignPtrUintptr(f+32 /* &.wend */, uintptr(0))) - if ((*FILE1)(unsafe.Pointer(f)).flags & uint32(4)) != 0 { - *(*uint32)(unsafe.Pointer(f /* &.flags */)) |= (uint32(32)) + (*FILE1)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0))) + if (*FILE1)(unsafe.Pointer(f)).flags&uint32(4) != 0 { + *(*uint32)(unsafe.Pointer(f)) |= uint32(32) return -1 } - (*FILE1)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16 /* &.rend */, ((*FILE1)(unsafe.Pointer(f)).buf + uintptr((*FILE1)(unsafe.Pointer(f)).buf_size))) - if ((*FILE1)(unsafe.Pointer(f)).flags & uint32(16)) != 0 { + (*FILE1)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE1)(unsafe.Pointer(f)).buf+uintptr((*FILE1)(unsafe.Pointer(f)).buf_size)) + if (*FILE1)(unsafe.Pointer(f)).flags&uint32(16) != 0 { return -1 } return 0 @@ -4192,29 +4192,49 @@ func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ // var c uint8 at bp, 1 - if !(X__toread(tls, f) != 0) && ((*struct { + if !(X__toread(tls, f) != 0) && (*struct { f func(*TLS, uintptr, uintptr, size_t) size_t - })(unsafe.Pointer(&struct{ uintptr }{(*FILE1)(unsafe.Pointer(f)).read})).f(tls, f, bp /* &c */, uint64(1)) == uint64(1)) { - return int32(*(*uint8)(unsafe.Pointer(bp /* c */))) + })(unsafe.Pointer(&struct{ uintptr }{(*FILE1)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) { + return int32(*(*uint8)(unsafe.Pointer(bp))) } return -1 } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ bp := tls.Alloc(232) defer tls.Free(232) // var f FILE1 at bp, 232 - (*FILE1)(unsafe.Pointer(bp /* &f */)).buf = AssignPtrUintptr(bp /* &f */ +8 /* &.rpos */, s) - (*FILE1)(unsafe.Pointer(bp /* &f */)).rend = UintptrFromInt32(-1) - X__shlim(tls, bp /* &f */, int64(0)) - var y float64 = X__floatscan(tls, bp /* &f */, prec, 1) - var cnt off_t = ((*FILE1)(unsafe.Pointer((bp /* &f */))).shcnt + ((int64((*FILE1)(unsafe.Pointer((bp /* &f */))).rpos) - int64((*FILE1)(unsafe.Pointer((bp /* &f */))).buf)) / 1)) + (*FILE1)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) + (*FILE1)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y float64 = X__floatscan(tls, bp, prec, 1) + var cnt off_t = (*FILE1)(unsafe.Pointer(bp)).shcnt + (int64((*FILE1)(unsafe.Pointer(bp)).rpos)-int64((*FILE1)(unsafe.Pointer(bp)).buf))/1 if p != 0 { *(*uintptr)(unsafe.Pointer(p)) = func() uintptr { if cnt != 0 { - return (s + uintptr(cnt)) + return s + uintptr(cnt) } return s }() @@ -4240,31 +4260,31 @@ func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* // var f FILE1 at bp, 232 - (*FILE1)(unsafe.Pointer(bp /* &f */)).buf = AssignPtrUintptr(bp /* &f */ +8 /* &.rpos */, s) - (*FILE1)(unsafe.Pointer(bp /* &f */)).rend = UintptrFromInt32(-1) - X__shlim(tls, bp /* &f */, int64(0)) - var y uint64 = X__intscan(tls, bp /* &f */, uint32(base), 1, lim) + (*FILE1)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) + (*FILE1)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim) if p != 0 { - var cnt size_t = (size_t((*FILE1)(unsafe.Pointer((bp /* &f */))).shcnt + ((int64((*FILE1)(unsafe.Pointer((bp /* &f */))).rpos) - int64((*FILE1)(unsafe.Pointer((bp /* &f */))).buf)) / 1))) - *(*uintptr)(unsafe.Pointer(p)) = (s + uintptr(cnt)) + var cnt size_t = size_t((*FILE1)(unsafe.Pointer(bp)).shcnt + (int64((*FILE1)(unsafe.Pointer(bp)).rpos)-int64((*FILE1)(unsafe.Pointer(bp)).buf))/1) + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) } return y } func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */ - return strtox1(tls, s, p, base, ((2 * uint64(0x7fffffffffffffff)) + uint64(1))) + return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)) } func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */ - return int64(strtox1(tls, s, p, base, (Uint64FromInt64(-0x7fffffffffffffff - int64(1))))) + return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1)))) } func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */ - return uint64(strtox1(tls, s, p, base, ((2 * uint64(0x7fffffffffffffff)) + uint64(1)))) + return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))) } func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */ - return int64(strtox1(tls, s, p, base, (0 + (Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff)) - Int64FromInt32(1)))))) + return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1)))) } func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */ @@ -4277,17 +4297,17 @@ func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strto func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */ var l size_t = Xstrlen(tls, s) - var d uintptr = Xmalloc(tls, (l + uint64(1))) + var d uintptr = Xmalloc(tls, l+uint64(1)) if !(d != 0) { return uintptr(0) } - return Xmemcpy(tls, d, s, (l + uint64(1))) + return Xmemcpy(tls, d, s, l+uint64(1)) } func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */ var p uintptr = Xmemchr(tls, s, 0, n) if p != 0 { - return (uint64((int64(p) - int64(s)) / 1)) + return uint64((int64(p) - int64(s)) / 1) } return n } @@ -4305,19 +4325,19 @@ func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */ if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) { for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ { } - return (size_t((int64(s) - int64(a)) / 1)) + return size_t((int64(s) - int64(a)) / 1) } - for ; (*(*int8)(unsafe.Pointer(c)) != 0) && (AssignOrPtrUint64(bp /* &byteset */ +uintptr(((size_t(*(*uint8)(unsafe.Pointer(c))))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))*8, (size_t(uint64(1))<<((size_t(*(*uint8)(unsafe.Pointer(c))))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))) != 0); c++ { + for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ { } - for ; (*(*int8)(unsafe.Pointer(s)) != 0) && ((*(*size_t)(unsafe.Pointer(bp /* &byteset[0] */ + uintptr(((size_t(*(*uint8)(unsafe.Pointer(s))))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0))))))*8)) & (size_t(uint64(1)) << ((size_t(*(*uint8)(unsafe.Pointer(s)))) % (uint64(8) * uint64(unsafe.Sizeof(size_t(0))))))) != 0); s++ { + for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ { } - return (size_t((int64(s) - int64(a)) / 1)) + return size_t((int64(s) - int64(a)) / 1) } func init() { - *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = (uintptr(unsafe.Pointer(&X_C_ctype_tab_))) // ctype_.cpp.c:2233:37: - *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = (uintptr(unsafe.Pointer(&X_C_ctype_tab_))) // ctype_.cpp.c:2233:37: + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = uintptr(unsafe.Pointer(&X_C_ctype_tab_)) // ctype_.cpp.c:2233:37: + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_ctype_tab_)) + 0)) = uintptr(unsafe.Pointer(&X_C_ctype_tab_)) // ctype_.cpp.c:2233:37: } var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" diff --git a/vendor/modernc.org/libc/musl_openbsd_amd64.go b/vendor/modernc.org/libc/musl_openbsd_amd64.go new file mode 100644 index 000000000..961f7cd5a --- /dev/null +++ b/vendor/modernc.org/libc/musl_openbsd_amd64.go @@ -0,0 +1,6855 @@ +// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6,getnameinfo,gethostbyaddr_r, -nostdinc -nostdlib -o ../musl_openbsd_amd64.go -pkgname libc -static-locals-prefix _s -Iarch/x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c ../freebsd/table.cpp.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isupper.c src/ctype/isxdigit.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/stdio/__toread.c src/stdio/__uflow.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strnlen.c src/string/strspn.c', DO NOT EDIT. + +package libc + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +// musl as a whole is licensed under the following standard MIT license: +// +// ---------------------------------------------------------------------- +// Copyright © 2005-2020 Rich Felker, et al. +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ---------------------------------------------------------------------- +// +// Authors/contributors include: +// +// A. Wilcox +// Ada Worcester +// Alex Dowad +// Alex Suykov +// Alexander Monakov +// Andre McCurdy +// Andrew Kelley +// Anthony G. Basile +// Aric Belsito +// Arvid Picciani +// Bartosz Brachaczek +// Benjamin Peterson +// Bobby Bingham +// Boris Brezillon +// Brent Cook +// Chris Spiegel +// Clément Vasseur +// Daniel Micay +// Daniel Sabogal +// Daurnimator +// David Carlier +// David Edelsohn +// Denys Vlasenko +// Dmitry Ivanov +// Dmitry V. Levin +// Drew DeVault +// Emil Renner Berthing +// Fangrui Song +// Felix Fietkau +// Felix Janda +// Gianluca Anzolin +// Hauke Mehrtens +// He X +// Hiltjo Posthuma +// Isaac Dunham +// Jaydeep Patil +// Jens Gustedt +// Jeremy Huntwork +// Jo-Philipp Wich +// Joakim Sindholt +// John Spencer +// Julien Ramseier +// Justin Cormack +// Kaarle Ritvanen +// Khem Raj +// Kylie McClain +// Leah Neukirchen +// Luca Barbato +// Luka Perkov +// M Farkas-Dyck (Strake) +// Mahesh Bodapati +// Markus Wichmann +// Masanori Ogino +// Michael Clark +// Michael Forney +// Mikhail Kremnyov +// Natanael Copa +// Nicholas J. Kain +// orc +// Pascal Cuoq +// Patrick Oppenlander +// Petr Hosek +// Petr Skocik +// Pierre Carrier +// Reini Urban +// Rich Felker +// Richard Pennington +// Ryan Fairfax +// Samuel Holland +// Segev Finer +// Shiz +// sin +// Solar Designer +// Stefan Kristiansson +// Stefan O'Rear +// Szabolcs Nagy +// Timo Teräs +// Trutz Behn +// Valentin Ochs +// Will Dietz +// William Haddon +// William Pitcock +// +// Portions of this software are derived from third-party works licensed +// under terms compatible with the above MIT license: +// +// The TRE regular expression implementation (src/regex/reg* and +// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed +// under a 2-clause BSD license (license text in the source files). The +// included version has been heavily modified by Rich Felker in 2012, in +// the interests of size, simplicity, and namespace cleanliness. +// +// Much of the math library code (src/math/* and src/complex/*) is +// Copyright © 1993,2004 Sun Microsystems or +// Copyright © 2003-2011 David Schultz or +// Copyright © 2003-2009 Steven G. Kargl or +// Copyright © 2003-2009 Bruce D. Evans or +// Copyright © 2008 Stephen L. Moshier or +// Copyright © 2017-2018 Arm Limited +// and labelled as such in comments in the individual source files. All +// have been licensed under extremely permissive terms. +// +// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008 +// The Android Open Source Project and is licensed under a two-clause BSD +// license. It was taken from Bionic libc, used on Android. +// +// The AArch64 memcpy and memset code (src/string/aarch64/*) are +// Copyright © 1999-2019, Arm Limited. +// +// The implementation of DES for crypt (src/crypt/crypt_des.c) is +// Copyright © 1994 David Burren. It is licensed under a BSD license. +// +// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was +// originally written by Solar Designer and placed into the public +// domain. The code also comes with a fallback permissive license for use +// in jurisdictions that may not recognize the public domain. +// +// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011 +// Valentin Ochs and is licensed under an MIT-style license. +// +// The x86_64 port was written by Nicholas J. Kain and is licensed under +// the standard MIT terms. +// +// The mips and microblaze ports were originally written by Richard +// Pennington for use in the ellcc project. The original code was adapted +// by Rich Felker for build system and code conventions during upstream +// integration. It is licensed under the standard MIT terms. +// +// The mips64 port was contributed by Imagination Technologies and is +// licensed under the standard MIT terms. +// +// The powerpc port was also originally written by Richard Pennington, +// and later supplemented and integrated by John Spencer. It is licensed +// under the standard MIT terms. +// +// All other files which have no copyright comments are original works +// produced specifically for use as part of this library, written either +// by Rich Felker, the main author of the library, or by one or more +// contibutors listed above. Details on authorship of individual files +// can be found in the git version control history of the project. The +// omission of copyright and license comments in each file is in the +// interest of source tree size. +// +// In addition, permission is hereby granted for all public header files +// (include/* and arch/*/bits/*) and crt files intended to be linked into +// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit +// the copyright notice and permission notice otherwise required by the +// license, and to use these files without any requirement of +// attribution. These files include substantial contributions from: +// +// Bobby Bingham +// John Spencer +// Nicholas J. Kain +// Rich Felker +// Richard Pennington +// Stefan Kristiansson +// Szabolcs Nagy +// +// all of whom have explicitly granted such permission. +// +// This file previously contained text expressing a belief that most of +// the files covered by the above exception were sufficiently trivial not +// to be subject to copyright, resulting in confusion over whether it +// negated the permissions granted in the license. In the spirit of +// permissive licensing, and of not having licensing issues being an +// obstacle to adoption, that text has been removed. +const ( /* copyright.c:194:1: */ + __musl__copyright__ = 0 +) + +const ( /* nameser.h:117:1: */ + ns_uop_delete = 0 + ns_uop_add = 1 + ns_uop_max = 2 +) + +const ( /* nameser.h:147:1: */ + ns_t_invalid = 0 + ns_t_a = 1 + ns_t_ns = 2 + ns_t_md = 3 + ns_t_mf = 4 + ns_t_cname = 5 + ns_t_soa = 6 + ns_t_mb = 7 + ns_t_mg = 8 + ns_t_mr = 9 + ns_t_null = 10 + ns_t_wks = 11 + ns_t_ptr = 12 + ns_t_hinfo = 13 + ns_t_minfo = 14 + ns_t_mx = 15 + ns_t_txt = 16 + ns_t_rp = 17 + ns_t_afsdb = 18 + ns_t_x25 = 19 + ns_t_isdn = 20 + ns_t_rt = 21 + ns_t_nsap = 22 + ns_t_nsap_ptr = 23 + ns_t_sig = 24 + ns_t_key = 25 + ns_t_px = 26 + ns_t_gpos = 27 + ns_t_aaaa = 28 + ns_t_loc = 29 + ns_t_nxt = 30 + ns_t_eid = 31 + ns_t_nimloc = 32 + ns_t_srv = 33 + ns_t_atma = 34 + ns_t_naptr = 35 + ns_t_kx = 36 + ns_t_cert = 37 + ns_t_a6 = 38 + ns_t_dname = 39 + ns_t_sink = 40 + ns_t_opt = 41 + ns_t_apl = 42 + ns_t_tkey = 249 + ns_t_tsig = 250 + ns_t_ixfr = 251 + ns_t_axfr = 252 + ns_t_mailb = 253 + ns_t_maila = 254 + ns_t_any = 255 + ns_t_zxfr = 256 + ns_t_max = 65536 +) + +const ( /* nameser.h:210:1: */ + ns_c_invalid = 0 + ns_c_in = 1 + ns_c_2 = 2 + ns_c_chaos = 3 + ns_c_hs = 4 + ns_c_none = 254 + ns_c_any = 255 + ns_c_max = 65536 +) + +const ( /* nameser.h:221:1: */ + ns_kt_rsa = 1 + ns_kt_dh = 2 + ns_kt_dsa = 3 + ns_kt_private = 254 +) + +const ( /* nameser.h:228:1: */ + cert_t_pkix = 1 + cert_t_spki = 2 + cert_t_pgp = 3 + cert_t_url = 253 + cert_t_oid = 254 +) + +const ( /* nameser.h:28:1: */ + ns_s_qd = 0 + ns_s_zn = 0 + ns_s_an = 1 + ns_s_pr = 1 + ns_s_ns = 2 + ns_s_ud = 2 + ns_s_ar = 3 + ns_s_max = 4 +) + +const ( /* nameser.h:75:1: */ + ns_f_qr = 0 + ns_f_opcode = 1 + ns_f_aa = 2 + ns_f_tc = 3 + ns_f_rd = 4 + ns_f_ra = 5 + ns_f_z = 6 + ns_f_ad = 7 + ns_f_cd = 8 + ns_f_rcode = 9 + ns_f_max = 10 +) + +const ( /* nameser.h:89:1: */ + ns_o_query = 0 + ns_o_iquery = 1 + ns_o_status = 2 + ns_o_notify = 4 + ns_o_update = 5 + ns_o_max = 6 +) + +const ( /* nameser.h:98:1: */ + ns_r_noerror = 0 + ns_r_formerr = 1 + ns_r_servfail = 2 + ns_r_nxdomain = 3 + ns_r_notimpl = 4 + ns_r_refused = 5 + ns_r_yxdomain = 6 + ns_r_yxrrset = 7 + ns_r_nxrrset = 8 + ns_r_notauth = 9 + ns_r_notzone = 10 + ns_r_max = 11 + ns_r_badvers = 16 + ns_r_badsig = 16 + ns_r_badkey = 17 + ns_r_badtime = 18 +) + +type ptrdiff_t = int64 /* <builtin>:3:26 */ + +type size_t = uint64 /* <builtin>:9:23 */ + +type wchar_t = int32 /* <builtin>:15:24 */ + +/// typedef __ct_rune_t __wint_t; +/// +/// +/// +/// typedef __uint_least16_t __char16_t; +/// typedef __uint_least32_t __char32_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef struct { +/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long)))); +/// +/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double)))); +/// +/// } __max_align_t; +/// +/// typedef __uint64_t __dev_t; +/// +/// typedef __uint32_t __fixpt_t; +/// +/// +/// +/// +/// +/// typedef union { +/// char __mbstate8[128]; +/// __int64_t _mbstateL; +/// } __mbstate_t; +/// +/// typedef __uintmax_t __rman_res_t; +/// +/// +/// +/// +/// +/// +/// typedef __builtin_va_list __va_list; +/// +/// +/// +/// +/// +/// +/// typedef __va_list __gnuc_va_list; +/// +/// +/// +/// +/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__)); +/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__)); +/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__)); +/// +/// +/// extern int __mb_sb_limit; + +type _RuneEntry = struct { + __min int32 + __max int32 + __map int32 + _ [4]byte + __types uintptr +} /* table.cpp.c:290:3 */ + +type _RuneRange = struct { + __nranges int32 + _ [4]byte + __ranges uintptr +} /* table.cpp.c:295:3 */ + +type _RuneLocale = struct { + __magic [8]int8 + __encoding [32]int8 + __sgetrune uintptr + __sputrune uintptr + __invalid_rune int32 + _ [4]byte + __runetype [256]uint64 + __maplower [256]int32 + __mapupper [256]int32 + __runetype_ext _RuneRange + __maplower_ext _RuneRange + __mapupper_ext _RuneRange + __variable uintptr + __variable_len int32 + _ [4]byte +} /* table.cpp.c:320:3 */ +/// +/// extern const _RuneLocale _DefaultRuneLocale; +/// extern const _RuneLocale *_CurrentRuneLocale; +/// +/// +/// +/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale; +/// static __inline const _RuneLocale *__getCurrentRuneLocale(void) +/// { +/// +/// if (_ThreadRuneLocale) +/// return _ThreadRuneLocale; +/// return _CurrentRuneLocale; +/// } +/// +/// +/// +/// +/// +/// static __inline int +/// __maskrune(__ct_rune_t _c, unsigned long _f) +/// { +/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) : +/// (__getCurrentRuneLocale())->__runetype[_c]) & _f; +/// } +/// +/// static __inline int +/// __sbmaskrune(__ct_rune_t _c, unsigned long _f) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 : +/// (__getCurrentRuneLocale())->__runetype[_c] & _f; +/// } +/// +/// static __inline int +/// __istype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (!!__maskrune(_c, _f)); +/// } +/// +/// static __inline int +/// __sbistype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (!!__sbmaskrune(_c, _f)); +/// } +/// +/// static __inline int +/// __isctype(__ct_rune_t _c, unsigned long _f) +/// { +/// return (_c < 0 || _c >= 128) ? 0 : +/// !!(_DefaultRuneLocale.__runetype[_c] & _f); +/// } +/// +/// static __inline __ct_rune_t +/// __toupper(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) : +/// (__getCurrentRuneLocale())->__mapupper[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __sbtoupper(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? _c : +/// (__getCurrentRuneLocale())->__mapupper[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __tolower(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) : +/// (__getCurrentRuneLocale())->__maplower[_c]; +/// } +/// +/// static __inline __ct_rune_t +/// __sbtolower(__ct_rune_t _c) +/// { +/// return (_c < 0 || _c >= __mb_sb_limit) ? _c : +/// (__getCurrentRuneLocale())->__maplower[_c]; +/// } +/// +/// static __inline int +/// __wcwidth(__ct_rune_t _c) +/// { +/// unsigned int _x; +/// +/// if (_c == 0) +/// return (0); +/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L); +/// if ((_x & 0xe0000000L) != 0) +/// return ((_x & 0xe0000000L) >> 30); +/// return ((_x & 0x00040000L) != 0 ? 1 : -1); +/// } +/// +/// +/// +/// int isalnum(int); +/// int isalpha(int); +/// int iscntrl(int); +/// int isdigit(int); +/// int isgraph(int); +/// int islower(int); +/// int isprint(int); +/// int ispunct(int); +/// int isspace(int); +/// int isupper(int); +/// int isxdigit(int); +/// int tolower(int); +/// int toupper(int); +/// +/// +/// int isascii(int); +/// int toascii(int); +/// +/// +/// +/// int isblank(int); +/// +/// +/// +/// int digittoint(int); +/// int ishexnumber(int); +/// int isideogram(int); +/// int isnumber(int); +/// int isphonogram(int); +/// int isrune(int); +/// int isspecial(int); +/// +/// +/// +/// +/// +/// typedef struct _xlocale *locale_t; +/// +/// +/// +/// +/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__)); +/// _RuneLocale *__runes_for_locale(locale_t, int*); +/// +/// inline int +/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc); +/// inline int +/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc); +/// +/// inline int +/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc) +/// { +/// int __limit; +/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit); +/// return (__c < 0 || __c >= __limit) ? 0 : +/// runes->__runetype[__c] & __f; +/// } +/// +/// inline int +/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc) +/// { +/// return (!!__sbmaskrune_l(__c, __f, __loc)); +/// } +/// +/// +/// +/// +/// +/// +/// +/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); } +/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); } +/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); } +/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); } +/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); } +/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); } +/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); } +/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); } +/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); } +/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); } +/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); } +/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); } +/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); } +/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); } +/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); } +/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); } +/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); } +/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); } +/// +/// inline int digittoint_l(int, locale_t); +/// inline int tolower_l(int, locale_t); +/// inline int toupper_l(int, locale_t); +/// +/// inline int digittoint_l(int __c, locale_t __l) +/// { return __sbmaskrune_l((__c), 0xFF, __l); } +/// +/// inline int tolower_l(int __c, locale_t __l) +/// { +/// int __limit; +/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit); +/// return (__c < 0 || __c >= __limit) ? __c : +/// __runes->__maplower[__c]; +/// } +/// inline int toupper_l(int __c, locale_t __l) +/// { +/// int __limit; +/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit); +/// return (__c < 0 || __c >= __limit) ? __c : +/// __runes->__mapupper[__c]; +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __mbstate_t mbstate_t; +/// +/// +/// +/// +/// typedef __size_t size_t; +/// +/// +/// +/// +/// +/// typedef __va_list va_list; +/// +/// +/// +/// +/// +/// +/// typedef ___wchar_t wchar_t; +/// +/// +/// +/// +/// +/// typedef __wint_t wint_t; +/// +/// typedef struct __sFILE FILE; +/// +/// struct tm; +/// +/// +/// wint_t btowc(int); +/// wint_t fgetwc(FILE *); +/// wchar_t * +/// fgetws(wchar_t * restrict, int, FILE * restrict); +/// wint_t fputwc(wchar_t, FILE *); +/// int fputws(const wchar_t * restrict, FILE * restrict); +/// int fwide(FILE *, int); +/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...); +/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...); +/// wint_t getwc(FILE *); +/// wint_t getwchar(void); +/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict); +/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t, +/// mbstate_t * restrict); +/// int mbsinit(const mbstate_t *); +/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t, +/// mbstate_t * restrict); +/// wint_t putwc(wchar_t, FILE *); +/// wint_t putwchar(wchar_t); +/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict, +/// ...); +/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...); +/// wint_t ungetwc(wint_t, FILE *); +/// int vfwprintf(FILE * restrict, const wchar_t * restrict, +/// __va_list); +/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict, +/// __va_list); +/// int vwprintf(const wchar_t * restrict, __va_list); +/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict); +/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict); +/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__)); +/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// int wcscoll(const wchar_t *, const wchar_t *); +/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict); +/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict, +/// const struct tm * restrict); +/// size_t wcslen(const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict, +/// size_t); +/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__)); +/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t); +/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__)); +/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t, +/// mbstate_t * restrict); +/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__)); +/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict) +/// __attribute__((__pure__)); +/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t); +/// int wctob(wint_t); +/// double wcstod(const wchar_t * restrict, wchar_t ** restrict); +/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict, +/// wchar_t ** restrict); +/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int); +/// unsigned long +/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int); +/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__)); +/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__)); +/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t); +/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +/// wchar_t *wmemset(wchar_t *, wchar_t, size_t); +/// int wprintf(const wchar_t * restrict, ...); +/// int wscanf(const wchar_t * restrict, ...); +/// +/// +/// extern FILE *__stdinp; +/// extern FILE *__stdoutp; +/// extern FILE *__stderrp; +/// +/// int vfwscanf(FILE * restrict, const wchar_t * restrict, +/// __va_list); +/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict, +/// __va_list); +/// int vwscanf(const wchar_t * restrict, __va_list); +/// float wcstof(const wchar_t * restrict, wchar_t ** restrict); +/// long double +/// wcstold(const wchar_t * restrict, wchar_t ** restrict); +/// +/// +/// long long +/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int); +/// +/// unsigned long long +/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int); +/// +/// +/// +/// +/// int wcswidth(const wchar_t *, size_t); +/// int wcwidth(wchar_t); +/// +/// +/// +/// +/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t, +/// size_t, mbstate_t * restrict); +/// FILE *open_wmemstream(wchar_t **, size_t *); +/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict); +/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t); +/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__)); +/// int wcscasecmp(const wchar_t *, const wchar_t *); +/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n); +/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__)); +/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t, +/// size_t, mbstate_t * restrict); +/// +/// +/// +/// wchar_t *fgetwln(FILE * restrict, size_t * restrict); +/// size_t wcslcat(wchar_t *, const wchar_t *, size_t); +/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t); +/// +/// +/// +/// +/// +/// int wcscasecmp_l(const wchar_t *, const wchar_t *, +/// locale_t); +/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, +/// locale_t); +/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); +/// size_t wcsxfrm_l(wchar_t * restrict, +/// const wchar_t * restrict, size_t, locale_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// struct lconv { +/// char *decimal_point; +/// char *thousands_sep; +/// char *grouping; +/// char *int_curr_symbol; +/// char *currency_symbol; +/// char *mon_decimal_point; +/// char *mon_thousands_sep; +/// char *mon_grouping; +/// char *positive_sign; +/// char *negative_sign; +/// char int_frac_digits; +/// char frac_digits; +/// char p_cs_precedes; +/// char p_sep_by_space; +/// char n_cs_precedes; +/// char n_sep_by_space; +/// char p_sign_posn; +/// char n_sign_posn; +/// char int_p_cs_precedes; +/// char int_n_cs_precedes; +/// char int_p_sep_by_space; +/// char int_n_sep_by_space; +/// char int_p_sign_posn; +/// char int_n_sign_posn; +/// }; +/// +/// +/// struct lconv *localeconv(void); +/// char *setlocale(int, const char *); +/// +/// +/// +/// +/// locale_t duplocale(locale_t base); +/// void freelocale(locale_t loc); +/// locale_t newlocale(int mask, const char *locale, locale_t base); +/// const char *querylocale(int mask, locale_t loc); +/// locale_t uselocale(locale_t loc); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// wint_t btowc_l(int, locale_t); +/// wint_t fgetwc_l(FILE *, locale_t); +/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict, +/// locale_t); +/// wint_t fputwc_l(wchar_t, FILE *, locale_t); +/// int fputws_l(const wchar_t * restrict, FILE * restrict, +/// locale_t); +/// int fwprintf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// int fwscanf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// wint_t getwc_l(FILE *, locale_t); +/// wint_t getwchar_l(locale_t); +/// size_t mbrlen_l(const char * restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// size_t mbrtowc_l(wchar_t * restrict, +/// const char * restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// int mbsinit_l(const mbstate_t *, locale_t); +/// size_t mbsrtowcs_l(wchar_t * restrict, +/// const char ** restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// wint_t putwc_l(wchar_t, FILE *, locale_t); +/// wint_t putwchar_l(wchar_t, locale_t); +/// int swprintf_l(wchar_t * restrict, size_t n, locale_t, +/// const wchar_t * restrict, ...); +/// int swscanf_l(const wchar_t * restrict, locale_t, +/// const wchar_t * restrict, ...); +/// wint_t ungetwc_l(wint_t, FILE *, locale_t); +/// int vfwprintf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vwprintf_l(locale_t, const wchar_t * restrict, +/// __va_list); +/// size_t wcrtomb_l(char * restrict, wchar_t, +/// mbstate_t * restrict, locale_t); +/// size_t wcsftime_l(wchar_t * restrict, size_t, +/// const wchar_t * restrict, +/// const struct tm * restrict, locale_t); +/// size_t wcsrtombs_l(char * restrict, +/// const wchar_t ** restrict, size_t, +/// mbstate_t * restrict, locale_t); +/// double wcstod_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long wcstol_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// unsigned long wcstoul_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// int wcswidth_l(const wchar_t *, size_t, locale_t); +/// int wctob_l(wint_t, locale_t); +/// int wcwidth_l(wchar_t, locale_t); +/// int wprintf_l(locale_t, const wchar_t * restrict, ...); +/// int wscanf_l(locale_t, const wchar_t * restrict, ...); +/// int vfwscanf_l(FILE * restrict, locale_t, +/// const wchar_t * restrict, __va_list); +/// int vswscanf_l(const wchar_t * restrict, locale_t, +/// const wchar_t *restrict, __va_list); +/// int vwscanf_l(locale_t, const wchar_t * restrict, +/// __va_list); +/// float wcstof_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long double wcstold_l(const wchar_t * restrict, +/// wchar_t ** restrict, locale_t); +/// long long wcstoll_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// unsigned long long wcstoull_l(const wchar_t * restrict, +/// wchar_t ** restrict, int, locale_t); +/// size_t mbsnrtowcs_l(wchar_t * restrict, +/// const char ** restrict, size_t, size_t, +/// mbstate_t * restrict, locale_t); +/// size_t wcsnrtombs_l(char * restrict, +/// const wchar_t ** restrict, size_t, size_t, +/// mbstate_t * restrict, locale_t); +/// +/// +/// +/// +/// +/// struct lconv *localeconv_l(locale_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __rune_t rune_t; +/// +/// typedef struct { +/// int quot; +/// int rem; +/// } div_t; +/// +/// typedef struct { +/// long quot; +/// long rem; +/// } ldiv_t; +/// +/// +/// +/// +/// +/// double atof_l(const char *, locale_t); +/// int atoi_l(const char *, locale_t); +/// long atol_l(const char *, locale_t); +/// long long atoll_l(const char *, locale_t); +/// int mblen_l(const char *, size_t, locale_t); +/// size_t mbstowcs_l(wchar_t * restrict, +/// const char * restrict, size_t, locale_t); +/// int mbtowc_l(wchar_t * restrict, +/// const char * restrict, size_t, locale_t); +/// double strtod_l(const char *, char **, locale_t); +/// float strtof_l(const char *, char **, locale_t); +/// long strtol_l(const char *, char **, int, locale_t); +/// long double strtold_l(const char *, char **, locale_t); +/// long long strtoll_l(const char *, char **, int, locale_t); +/// unsigned long strtoul_l(const char *, char **, int, locale_t); +/// unsigned long long strtoull_l(const char *, char **, int, locale_t); +/// size_t wcstombs_l(char * restrict, +/// const wchar_t * restrict, size_t, locale_t); +/// int wctomb_l(char *, wchar_t, locale_t); +/// +/// int ___mb_cur_max_l(locale_t); +/// +/// +/// extern int __mb_cur_max; +/// extern int ___mb_cur_max(void); +/// +/// +/// _Noreturn void abort(void); +/// int abs(int) __attribute__((__const__)); +/// int atexit(void (* )(void)); +/// double atof(const char *); +/// int atoi(const char *); +/// long atol(const char *); +/// void *bsearch(const void *, const void *, size_t, +/// size_t, int (*)(const void * , const void *)); +/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) +/// __attribute__((__alloc_size__(1, 2))); +/// div_t div(int, int) __attribute__((__const__)); +/// _Noreturn void exit(int); +/// void free(void *); +/// char *getenv(const char *); +/// long labs(long) __attribute__((__const__)); +/// ldiv_t ldiv(long, long) __attribute__((__const__)); +/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1))); +/// int mblen(const char *, size_t); +/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t); +/// int mbtowc(wchar_t * restrict, const char * restrict, size_t); +/// void qsort(void *, size_t, size_t, +/// int (* )(const void *, const void *)); +/// int rand(void); +/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2))); +/// void srand(unsigned); +/// double strtod(const char * restrict, char ** restrict); +/// float strtof(const char * restrict, char ** restrict); +/// long strtol(const char * restrict, char ** restrict, int); +/// long double +/// strtold(const char * restrict, char ** restrict); +/// unsigned long +/// strtoul(const char * restrict, char ** restrict, int); +/// int system(const char *); +/// int wctomb(char *, wchar_t); +/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t); +/// +/// typedef struct { +/// long long quot; +/// long long rem; +/// } lldiv_t; +/// +/// +/// long long +/// atoll(const char *); +/// +/// long long +/// llabs(long long) __attribute__((__const__)); +/// +/// lldiv_t lldiv(long long, long long) __attribute__((__const__)); +/// +/// long long +/// strtoll(const char * restrict, char ** restrict, int); +/// +/// unsigned long long +/// strtoull(const char * restrict, char ** restrict, int); +/// +/// +/// _Noreturn void _Exit(int); +/// +/// +/// +/// +/// +/// +/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1))) +/// __attribute__((__alloc_size__(2))); +/// int at_quick_exit(void (*)(void)); +/// _Noreturn void +/// quick_exit(int); +/// +/// +/// +/// +/// +/// char *realpath(const char * restrict, char * restrict); +/// +/// +/// int rand_r(unsigned *); +/// +/// +/// int posix_memalign(void **, size_t, size_t); +/// int setenv(const char *, const char *, int); +/// int unsetenv(const char *); +/// +/// +/// +/// int getsubopt(char **, char *const *, char **); +/// +/// char *mkdtemp(char *); +/// +/// +/// +/// int mkstemp(char *); +/// +/// long a64l(const char *); +/// double drand48(void); +/// +/// double erand48(unsigned short[3]); +/// +/// +/// char *initstate(unsigned int, char *, size_t); +/// long jrand48(unsigned short[3]); +/// char *l64a(long); +/// void lcong48(unsigned short[7]); +/// long lrand48(void); +/// +/// char *mktemp(char *); +/// +/// +/// long mrand48(void); +/// long nrand48(unsigned short[3]); +/// int putenv(char *); +/// long random(void); +/// unsigned short +/// *seed48(unsigned short[3]); +/// char *setstate( char *); +/// void srand48(long); +/// void srandom(unsigned int); +/// +/// +/// +/// int grantpt(int); +/// int posix_openpt(int); +/// char *ptsname(int); +/// int unlockpt(int); +/// +/// +/// +/// int ptsname_r(int, char *, size_t); +/// +/// +/// +/// extern const char *malloc_conf; +/// extern void (*malloc_message)(void *, const char *); +/// +/// void abort2(const char *, int, void **) __attribute__((__noreturn__)); +/// __uint32_t +/// arc4random(void); +/// void arc4random_buf(void *, size_t); +/// __uint32_t +/// arc4random_uniform(__uint32_t); +/// +/// +/// +/// +/// +/// +/// char *getbsize(int *, long *); +/// +/// char *cgetcap(char *, const char *, int); +/// int cgetclose(void); +/// int cgetent(char **, char **, const char *); +/// int cgetfirst(char **, char **); +/// int cgetmatch(const char *, const char *); +/// int cgetnext(char **, char **); +/// int cgetnum(char *, const char *, long *); +/// int cgetset(const char *); +/// int cgetstr(char *, const char *, char **); +/// int cgetustr(char *, const char *, char **); +/// +/// int daemon(int, int); +/// int daemonfd(int, int); +/// char *devname(__dev_t, __mode_t); +/// char *devname_r(__dev_t, __mode_t, char *, int); +/// char *fdevname(int); +/// char *fdevname_r(int, char *, int); +/// int getloadavg(double [], int); +/// const char * +/// getprogname(void); +/// +/// int heapsort(void *, size_t, size_t, +/// int (* )(const void *, const void *)); +/// +/// +/// +/// +/// +/// +/// int l64a_r(long, char *, int); +/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *)); +/// +/// +/// +/// int mkostemp(char *, int); +/// int mkostemps(char *, int, int); +/// int mkostempsat(int, char *, int, int); +/// void qsort_r(void *, size_t, size_t, void *, +/// int (*)(void *, const void *, const void *)); +/// int radixsort(const unsigned char **, int, const unsigned char *, +/// unsigned); +/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__)) +/// __attribute__((__alloc_size__(2, 3))); +/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2))); +/// int rpmatch(const char *); +/// void setprogname(const char *); +/// int sradixsort(const unsigned char **, int, const unsigned char *, +/// unsigned); +/// void srandomdev(void); +/// long long +/// strtonum(const char *, long long, long long, const char **); +/// +/// +/// __int64_t +/// strtoq(const char *, char **, int); +/// __uint64_t +/// strtouq(const char *, char **, int); +/// +/// extern char *suboptarg; +/// +/// +/// +/// +/// +/// +/// typedef size_t rsize_t; +/// +/// +/// +/// +/// typedef int errno_t; +/// +/// +/// +/// typedef void (*constraint_handler_t)(const char * restrict, +/// void * restrict, errno_t); +/// +/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler); +/// +/// _Noreturn void abort_handler_s(const char * restrict, void * restrict, +/// errno_t); +/// +/// void ignore_handler_s(const char * restrict, void * restrict, errno_t); +/// +/// errno_t qsort_s(void *, rsize_t, rsize_t, +/// int (*)(const void *, const void *, void *), void *); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// typedef __int8_t int8_t; +/// +/// +/// +/// +/// typedef __int16_t int16_t; +/// +/// +/// +/// +/// typedef __int32_t int32_t; +/// +/// +/// +/// +/// typedef __int64_t int64_t; +/// +/// +/// +/// +/// typedef __uint8_t uint8_t; +/// +/// +/// +/// +/// typedef __uint16_t uint16_t; +/// +/// +/// +/// +/// typedef __uint32_t uint32_t; +/// +/// +/// +/// +/// typedef __uint64_t uint64_t; +/// +/// +/// +/// +/// typedef __intptr_t intptr_t; +/// +/// +/// +/// typedef __uintptr_t uintptr_t; +/// +/// +/// +/// typedef __intmax_t intmax_t; +/// +/// +/// +/// typedef __uintmax_t uintmax_t; +/// +/// +/// typedef __int_least8_t int_least8_t; +/// typedef __int_least16_t int_least16_t; +/// typedef __int_least32_t int_least32_t; +/// typedef __int_least64_t int_least64_t; +/// +/// typedef __uint_least8_t uint_least8_t; +/// typedef __uint_least16_t uint_least16_t; +/// typedef __uint_least32_t uint_least32_t; +/// typedef __uint_least64_t uint_least64_t; +/// +/// typedef __int_fast8_t int_fast8_t; +/// typedef __int_fast16_t int_fast16_t; +/// typedef __int_fast32_t int_fast32_t; +/// typedef __int_fast64_t int_fast64_t; +/// +/// typedef __uint_fast8_t uint_fast8_t; +/// typedef __uint_fast16_t uint_fast16_t; +/// typedef __uint_fast32_t uint_fast32_t; +/// typedef __uint_fast64_t uint_fast64_t; +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// struct pthread; +/// struct pthread_attr; +/// struct pthread_cond; +/// struct pthread_cond_attr; +/// struct pthread_mutex; +/// struct pthread_mutex_attr; +/// struct pthread_once; +/// struct pthread_rwlock; +/// struct pthread_rwlockattr; +/// struct pthread_barrier; +/// struct pthread_barrier_attr; +/// struct pthread_spinlock; +/// +/// typedef struct pthread *pthread_t; +/// +/// +/// typedef struct pthread_attr *pthread_attr_t; +/// typedef struct pthread_mutex *pthread_mutex_t; +/// typedef struct pthread_mutex_attr *pthread_mutexattr_t; +/// typedef struct pthread_cond *pthread_cond_t; +/// typedef struct pthread_cond_attr *pthread_condattr_t; +/// typedef int pthread_key_t; +/// typedef struct pthread_once pthread_once_t; +/// typedef struct pthread_rwlock *pthread_rwlock_t; +/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t; +/// typedef struct pthread_barrier *pthread_barrier_t; +/// typedef struct pthread_barrierattr *pthread_barrierattr_t; +/// typedef struct pthread_spinlock *pthread_spinlock_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef void *pthread_addr_t; +/// typedef void *(*pthread_startroutine_t)(void *); +/// +/// +/// +/// +/// struct pthread_once { +/// int state; +/// pthread_mutex_t mutex; +/// }; +/// +/// +/// +/// typedef unsigned char u_char; +/// typedef unsigned short u_short; +/// typedef unsigned int u_int; +/// typedef unsigned long u_long; +/// +/// typedef unsigned short ushort; +/// typedef unsigned int uint; +/// +/// typedef __uint8_t u_int8_t; +/// typedef __uint16_t u_int16_t; +/// typedef __uint32_t u_int32_t; +/// typedef __uint64_t u_int64_t; +/// +/// typedef __uint64_t u_quad_t; +/// typedef __int64_t quad_t; +/// typedef quad_t * qaddr_t; +/// +/// typedef char * caddr_t; +/// typedef const char * c_caddr_t; +/// +/// +/// typedef __blksize_t blksize_t; +/// +/// +/// +/// typedef __cpuwhich_t cpuwhich_t; +/// typedef __cpulevel_t cpulevel_t; +/// typedef __cpusetid_t cpusetid_t; +/// +/// +/// typedef __blkcnt_t blkcnt_t; +/// +/// +/// +/// +/// typedef __clock_t clock_t; +/// +/// +/// +/// +/// typedef __clockid_t clockid_t; +/// +/// +/// +/// typedef __critical_t critical_t; +/// typedef __daddr_t daddr_t; +/// +/// +/// typedef __dev_t dev_t; +/// +/// +/// +/// +/// typedef __fflags_t fflags_t; +/// +/// +/// +/// typedef __fixpt_t fixpt_t; +/// +/// +/// typedef __fsblkcnt_t fsblkcnt_t; +/// typedef __fsfilcnt_t fsfilcnt_t; +/// +/// +/// +/// +/// typedef __gid_t gid_t; +/// +/// +/// +/// +/// typedef __uint32_t in_addr_t; +/// +/// +/// +/// +/// typedef __uint16_t in_port_t; +/// +/// +/// +/// +/// typedef __id_t id_t; +/// +/// +/// +/// +/// typedef __ino_t ino_t; +/// +/// +/// +/// +/// typedef __key_t key_t; +/// +/// +/// +/// +/// typedef __lwpid_t lwpid_t; +/// +/// +/// +/// +/// typedef __mode_t mode_t; +/// +/// +/// +/// +/// typedef __accmode_t accmode_t; +/// +/// +/// +/// +/// typedef __nlink_t nlink_t; +/// +/// +/// +/// +/// typedef __off_t off_t; +/// +/// +/// +/// +/// typedef __off64_t off64_t; +/// +/// +/// +/// +/// typedef __pid_t pid_t; +/// +/// +/// +/// typedef __register_t register_t; +/// +/// +/// typedef __rlim_t rlim_t; +/// +/// +/// +/// typedef __int64_t sbintime_t; +/// +/// typedef __segsz_t segsz_t; +/// +/// +/// +/// +/// +/// +/// +/// typedef __ssize_t ssize_t; +/// +/// +/// +/// +/// typedef __suseconds_t suseconds_t; +/// +/// +/// +/// +/// typedef __time_t time_t; +/// +/// +/// +/// +/// typedef __timer_t timer_t; +/// +/// +/// +/// +/// typedef __mqd_t mqd_t; +/// +/// +/// +/// typedef __u_register_t u_register_t; +/// +/// +/// typedef __uid_t uid_t; +/// +/// +/// +/// +/// typedef __useconds_t useconds_t; +/// +/// +/// +/// +/// +/// typedef unsigned long cap_ioctl_t; +/// +/// +/// +/// +/// struct cap_rights; +/// +/// typedef struct cap_rights cap_rights_t; +/// +/// typedef __uint64_t kpaddr_t; +/// typedef __uint64_t kvaddr_t; +/// typedef __uint64_t ksize_t; +/// typedef __int64_t kssize_t; +/// +/// typedef __vm_offset_t vm_offset_t; +/// typedef __uint64_t vm_ooffset_t; +/// typedef __vm_paddr_t vm_paddr_t; +/// typedef __uint64_t vm_pindex_t; +/// typedef __vm_size_t vm_size_t; +/// +/// typedef __rman_res_t rman_res_t; +/// +/// static __inline __uint16_t +/// __bitcount16(__uint16_t _x) +/// { +/// +/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1); +/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f; +/// _x = (_x + (_x >> 8)) & 0x00ff; +/// return (_x); +/// } +/// +/// static __inline __uint32_t +/// __bitcount32(__uint32_t _x) +/// { +/// +/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1); +/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f; +/// _x = (_x + (_x >> 8)); +/// _x = (_x + (_x >> 16)) & 0x000000ff; +/// return (_x); +/// } +/// +/// +/// static __inline __uint64_t +/// __bitcount64(__uint64_t _x) +/// { +/// +/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1); +/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2); +/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f; +/// _x = (_x + (_x >> 8)); +/// _x = (_x + (_x >> 16)); +/// _x = (_x + (_x >> 32)) & 0x000000ff; +/// return (_x); +/// } +/// +/// +/// +/// +/// +/// typedef struct __sigset { +/// __uint32_t __bits[4]; +/// } __sigset_t; +/// +/// +/// +/// struct timeval { +/// time_t tv_sec; +/// suseconds_t tv_usec; +/// }; +/// +/// +/// +/// +/// +/// struct timespec { +/// time_t tv_sec; +/// long tv_nsec; +/// }; +/// +/// +/// struct itimerspec { +/// struct timespec it_interval; +/// struct timespec it_value; +/// }; +/// +/// +/// typedef unsigned long __fd_mask; +/// +/// typedef __fd_mask fd_mask; +/// +/// +/// +/// +/// typedef __sigset_t sigset_t; +/// +/// typedef struct fd_set { +/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))]; +/// } fd_set; +/// +/// +/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict, +/// const struct timespec *restrict, const sigset_t *restrict); +/// +/// +/// +/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +/// +/// +/// +/// +/// static __inline int +/// __major(dev_t _d) +/// { +/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff)); +/// } +/// +/// static __inline int +/// __minor(dev_t _d) +/// { +/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff)); +/// } +/// +/// static __inline dev_t +/// __makedev(int _Major, int _Minor) +/// { +/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) | +/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff)); +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// int ftruncate(int, off_t); +/// +/// +/// +/// off_t lseek(int, off_t, int); +/// +/// +/// +/// void * mmap(void *, size_t, int, int, int, off_t); +/// +/// +/// +/// int truncate(const char *, off_t); +/// +/// +/// +/// +/// +/// +/// +/// +/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); }; +/// +/// +/// +/// +/// +/// static __inline u_int +/// atomic_fetchadd_int(volatile u_int *p, u_int v) +/// { +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " xaddl %0,%1 ; " +/// "# atomic_fetchadd_int" +/// : "+r" (v), +/// "+m" (*p) +/// : : "cc"); +/// return (v); +/// } +/// +/// +/// +/// +/// +/// static __inline u_long +/// atomic_fetchadd_long(volatile u_long *p, u_long v) +/// { +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " xaddq %0,%1 ; " +/// "# atomic_fetchadd_long" +/// : "+r" (v), +/// "+m" (*p) +/// : : "cc"); +/// return (v); +/// } +/// +/// static __inline int +/// atomic_testandset_int(volatile u_int *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btsl %2,%1 ; " +/// "# atomic_testandset_int" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Ir" (v & 0x1f) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandset_long(volatile u_long *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btsq %2,%1 ; " +/// "# atomic_testandset_long" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Jr" ((u_long)(v & 0x3f)) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandclear_int(volatile u_int *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btrl %2,%1 ; " +/// "# atomic_testandclear_int" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Ir" (v & 0x1f) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline int +/// atomic_testandclear_long(volatile u_long *p, u_int v) +/// { +/// u_char res; +/// +/// __asm volatile( +/// " " "lock ; " " " +/// " btrq %2,%1 ; " +/// "# atomic_testandclear_long" +/// : "=@ccc" (res), +/// "+m" (*p) +/// : "Jr" ((u_long)(v & 0x3f)) +/// : "cc"); +/// return (res); +/// } +/// +/// static __inline void +/// __storeload_barrier(void) +/// { +/// +/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_acq(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_rel(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_acq_rel(void) +/// { +/// +/// __asm volatile(" " : : : "memory"); +/// } +/// +/// static __inline void +/// atomic_thread_fence_seq_cst(void) +/// { +/// +/// __storeload_barrier(); +/// } +/// +/// +/// +/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack; +/// +/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack; +/// +/// +/// +/// +/// +/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack; +/// +/// static __inline u_int +/// atomic_swap_int(volatile u_int *p, u_int v) +/// { +/// +/// __asm volatile( +/// " xchgl %1,%0 ; " +/// "# atomic_swap_int" +/// : "+r" (v), +/// "+m" (*p)); +/// return (v); +/// } +/// +/// static __inline u_long +/// atomic_swap_long(volatile u_long *p, u_long v) +/// { +/// +/// __asm volatile( +/// " xchgq %1,%0 ; " +/// "# atomic_swap_long" +/// : "+r" (v), +/// "+m" (*p)); +/// return (v); +/// } +/// +/// +/// +/// +/// +/// extern char *_PathLocale; +/// +/// int __detect_path_locale(void); +/// int __wrap_setrunelocale(const char *); +/// +/// +/// enum { +/// XLC_COLLATE = 0, +/// XLC_CTYPE, +/// XLC_MONETARY, +/// XLC_NUMERIC, +/// XLC_TIME, +/// XLC_MESSAGES, +/// XLC_LAST +/// }; +/// +/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous"); +/// _Static_assert(XLC_COLLATE == +/// +/// 1 +/// +/// - 1, +/// "XLC_COLLATE doesn't match the LC_COLLATE value."); +/// _Static_assert(XLC_CTYPE == +/// +/// 2 +/// +/// - 1, +/// "XLC_CTYPE doesn't match the LC_CTYPE value."); +/// _Static_assert(XLC_MONETARY == +/// +/// 3 +/// +/// - 1, +/// "XLC_MONETARY doesn't match the LC_MONETARY value."); +/// _Static_assert(XLC_NUMERIC == +/// +/// 4 +/// +/// - 1, +/// "XLC_NUMERIC doesn't match the LC_NUMERIC value."); +/// _Static_assert(XLC_TIME == +/// +/// 5 +/// +/// - 1, +/// "XLC_TIME doesn't match the LC_TIME value."); +/// _Static_assert(XLC_MESSAGES == +/// +/// 6 +/// +/// - 1, +/// "XLC_MESSAGES doesn't match the LC_MESSAGES value."); +/// +/// struct xlocale_refcounted { +/// +/// long retain_count; +/// +/// void(*destructor)(void*); +/// }; +/// +/// +/// +/// +/// +/// +/// +/// struct xlocale_component { +/// struct xlocale_refcounted header; +/// +/// char locale[31 +1]; +/// +/// char version[12]; +/// }; +/// +/// +/// +/// +/// struct _xlocale { +/// struct xlocale_refcounted header; +/// +/// struct xlocale_component *components[XLC_LAST]; +/// +/// +/// int monetary_locale_changed; +/// +/// +/// int using_monetary_locale; +/// +/// +/// int numeric_locale_changed; +/// +/// +/// int using_numeric_locale; +/// +/// +/// int using_time_locale; +/// +/// +/// int using_messages_locale; +/// +/// struct lconv lconv; +/// +/// char *csym; +/// }; +/// +/// +/// +/// +/// __attribute__((unused)) static void* +/// xlocale_retain(void *val) +/// { +/// struct xlocale_refcounted *obj = val; +/// atomic_add_long(&(obj->retain_count), 1); +/// return (val); +/// } +/// +/// +/// +/// +/// __attribute__((unused)) static void +/// xlocale_release(void *val) +/// { +/// struct xlocale_refcounted *obj = val; +/// long count; +/// +/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1; +/// if (count < 0 && obj->destructor != +/// +/// ((void *)0) +/// +/// ) +/// obj->destructor(obj); +/// } +/// +/// +/// +/// +/// +/// extern void* __collate_load(const char*, locale_t); +/// extern void* __ctype_load(const char*, locale_t); +/// extern void* __messages_load(const char*, locale_t); +/// extern void* __monetary_load(const char*, locale_t); +/// extern void* __numeric_load(const char*, locale_t); +/// extern void* __time_load(const char*, locale_t); +/// +/// extern struct _xlocale __xlocale_global_locale; +/// extern struct _xlocale __xlocale_C_locale; +/// +/// +/// +/// +/// void __set_thread_rune_locale(locale_t loc); +/// +/// +/// +/// +/// extern int __has_thread_locale; +/// +/// +/// +/// +/// +/// extern _Thread_local locale_t __thread_locale; +/// +/// +/// +/// +/// +/// +/// +/// static inline locale_t __get_locale(void) +/// { +/// +/// if (!__has_thread_locale) { +/// return (&__xlocale_global_locale); +/// } +/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale); +/// } +/// +/// +/// +/// +/// +/// static inline locale_t get_real_locale(locale_t locale) +/// { +/// switch ((intptr_t)locale) { +/// case 0: return (&__xlocale_C_locale); +/// case -1: return (&__xlocale_global_locale); +/// default: return (locale); +/// } +/// } +/// +/// +/// +/// +/// +/// +/// +/// +/// struct xlocale_ctype { +/// struct xlocale_component header; +/// _RuneLocale *runes; +/// size_t (*__mbrtowc)(wchar_t * +/// +/// restrict +/// +/// , const char * +/// +/// restrict +/// +/// , +/// size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// int (*__mbsinit)(const mbstate_t *); +/// size_t (*__mbsnrtowcs)(wchar_t * +/// +/// restrict +/// +/// , const char ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t (*__wcrtomb)(char * +/// +/// restrict +/// +/// , wchar_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t (*__wcsnrtombs)(char * +/// +/// restrict +/// +/// , const wchar_t ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// int __mb_cur_max; +/// int __mb_sb_limit; +/// +/// __mbstate_t mblen; +/// +/// __mbstate_t mbrlen; +/// +/// __mbstate_t mbrtoc16; +/// +/// __mbstate_t mbrtoc32; +/// +/// __mbstate_t mbrtowc; +/// +/// __mbstate_t mbsnrtowcs; +/// +/// __mbstate_t mbsrtowcs; +/// +/// __mbstate_t mbtowc; +/// +/// __mbstate_t c16rtomb; +/// +/// __mbstate_t c32rtomb; +/// +/// __mbstate_t wcrtomb; +/// +/// __mbstate_t wcsnrtombs; +/// +/// __mbstate_t wcsrtombs; +/// +/// __mbstate_t wctomb; +/// }; +/// +/// extern struct xlocale_ctype __xlocale_global_ctype; +/// +/// +/// +/// +/// int _none_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *) +/// +/// __attribute__((__visibility__("hidden"))) +/// +/// ; +/// +/// typedef size_t (*mbrtowc_pfn_t)(wchar_t * +/// +/// restrict +/// +/// , +/// const char * +/// +/// restrict +/// +/// , size_t, mbstate_t * +/// +/// restrict +/// +/// ); +/// typedef size_t (*wcrtomb_pfn_t)(char * +/// +/// restrict +/// +/// , wchar_t, +/// mbstate_t * +/// +/// restrict +/// +/// ); +/// size_t __mbsnrtowcs_std(wchar_t * +/// +/// restrict +/// +/// , const char ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// , mbrtowc_pfn_t); +/// size_t __wcsnrtombs_std(char * +/// +/// restrict +/// +/// , const wchar_t ** +/// +/// restrict +/// +/// , +/// size_t, size_t, mbstate_t * +/// +/// restrict +/// +/// , wcrtomb_pfn_t); +/// + +var X_DefaultRuneLocale = _RuneLocale{ + + __magic: *(*[8]int8)(unsafe.Pointer(ts)), + __encoding: *(*[32]int8)(unsafe.Pointer(ts + 9)), + __invalid_rune: 0xFFFD, + + __runetype: [256]uint64{ + + 0: uint64(0x00000200), + + 1: uint64(0x00000200), + + 2: uint64(0x00000200), + + 3: uint64(0x00000200), + + 4: uint64(0x00000200), + + 5: uint64(0x00000200), + + 6: uint64(0x00000200), + + 7: uint64(0x00000200), + + 8: uint64(0x00000200), + + 9: uint64(0x00000200 | + + 0x00004000 | + + 0x00020000), + + 10: uint64(0x00000200 | + + 0x00004000), + + 11: uint64(0x00000200 | + + 0x00004000), + + 12: uint64(0x00000200 | + + 0x00004000), + + 13: uint64(0x00000200 | + + 0x00004000), + + 14: uint64(0x00000200), + + 15: uint64(0x00000200), + + 16: uint64(0x00000200), + + 17: uint64(0x00000200), + + 18: uint64(0x00000200), + + 19: uint64(0x00000200), + + 20: uint64(0x00000200), + + 21: uint64(0x00000200), + + 22: uint64(0x00000200), + + 23: uint64(0x00000200), + + 24: uint64(0x00000200), + + 25: uint64(0x00000200), + + 26: uint64(0x00000200), + + 27: uint64(0x00000200), + + 28: uint64(0x00000200), + + 29: uint64(0x00000200), + + 30: uint64(0x00000200), + + 31: uint64(0x00000200), + + 32: uint64(0x00004000 | + + 0x00020000 | + + 0x00040000), + + 33: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 34: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 35: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 36: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 37: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 38: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 39: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 40: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 41: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 42: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 43: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 44: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 45: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 46: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 47: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 48: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(0)), + + 49: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(1)), + + 50: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(2)), + + 51: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(3)), + + 52: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(4)), + + 53: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(5)), + + 54: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(6)), + + 55: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(7)), + + 56: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(8)), + + 57: uint64(0x00000400 | + + 0x00040000 | + + 0x00000800 | + + 0x00010000 | + + 0x00400000 | + + int64(9)), + + 58: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 59: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 60: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 61: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 62: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 63: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 64: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 65: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(10)), + + 66: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(11)), + + 67: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(12)), + + 68: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(13)), + + 69: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(14)), + + 70: uint64(0x00008000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(15)), + + 71: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 72: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 73: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 74: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 75: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 76: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 77: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 78: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 79: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 80: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 81: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 82: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 83: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 84: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 85: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 86: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 87: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 88: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 89: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 90: uint64(0x00008000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 91: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 92: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 93: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 94: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 95: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 96: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 97: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(10)), + + 98: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(11)), + + 99: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(12)), + + 100: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(13)), + + 101: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(14)), + + 102: uint64(0x00001000 | + + 0x00010000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100 | + + int64(15)), + + 103: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 104: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 105: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 106: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 107: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 108: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 109: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 110: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 111: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 112: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 113: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 114: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 115: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 116: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 117: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 118: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 119: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 120: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 121: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 122: uint64(0x00001000 | + + 0x00040000 | + + 0x00000800 | + + 0x00000100), + + 123: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 124: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 125: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 126: uint64(0x00002000 | + + 0x00040000 | + + 0x00000800), + + 127: uint64(0x00000200), + }, + __maplower: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, + __mapupper: [256]int32{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, +} /* table.cpp.c:2243:19 */ + +var X_CurrentRuneLocale uintptr = 0 /* table.cpp.c:4092:19 */ + +/// _RuneLocale * +/// __runes_for_locale(locale_t locale, int *mb_sb_limit) +/// { +/// (locale = get_real_locale(locale)); +/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]); +/// *mb_sb_limit = c->__mb_sb_limit; +/// return c->runes; +/// } + +func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ + return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) +} + +type locale_t = uintptr /* alltypes.h:343:32 */ + +func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ + return Bool32(func() int32 { + if 0 != 0 { + return Xisalpha(tls, c) + } + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) + }() != 0 || func() int32 { + if 0 != 0 { + return Xisdigit(tls, c) + } + return Bool32(uint32(c)-uint32('0') < uint32(10)) + }() != 0) +} + +func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */ + return Xisalnum(tls, c) +} + +func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ + return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) +} + +func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */ + return Xisalpha(tls, c) +} + +func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ + return Bool32(uint32(c)-uint32('0') < uint32(10)) +} + +func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ + return Xisdigit(tls, c) +} + +func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */ + return Bool32(uint32(c)-uint32('a') < uint32(26)) +} + +func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */ + return Xislower(tls, c) +} + +func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */ + return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f)) +} + +func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */ + return Xisprint(tls, c) +} + +func Xisspace(tls *TLS, c int32) int32 { /* isspace.c:4:5: */ + return Bool32(c == ' ' || uint32(c)-uint32('\t') < uint32(5)) +} + +func X__isspace_l(tls *TLS, c int32, l locale_t) int32 { /* isspace.c:9:5: */ + return Xisspace(tls, c) +} + +func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */ + return Bool32(uint32(c)-uint32('A') < uint32(26)) +} + +func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */ + return Xisupper(tls, c) +} + +func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */ + return Bool32(func() int32 { + if 0 != 0 { + return Xisdigit(tls, c) + } + return Bool32(uint32(c)-uint32('0') < uint32(10)) + }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) +} + +func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */ + return Xisxdigit(tls, c) +} + +type uintptr_t = uint64 /* alltypes.h:55:24 */ + +type intptr_t = int64 /* alltypes.h:70:15 */ + +type int8_t = int8 /* alltypes.h:96:25 */ + +type int16_t = int16 /* alltypes.h:101:25 */ + +type int32_t = int32 /* alltypes.h:106:25 */ + +type int64_t = int64 /* alltypes.h:111:25 */ + +type intmax_t = int64 /* alltypes.h:116:25 */ + +type uint8_t = uint8 /* alltypes.h:121:25 */ + +type uint16_t = uint16 /* alltypes.h:126:25 */ + +type uint32_t = uint32 /* alltypes.h:131:25 */ + +type uint64_t = uint64 /* alltypes.h:136:25 */ + +type uintmax_t = uint64 /* alltypes.h:146:25 */ + +type int_fast8_t = int8_t /* stdint.h:22:16 */ +type int_fast64_t = int64_t /* stdint.h:23:17 */ + +type int_least8_t = int8_t /* stdint.h:25:17 */ +type int_least16_t = int16_t /* stdint.h:26:17 */ +type int_least32_t = int32_t /* stdint.h:27:17 */ +type int_least64_t = int64_t /* stdint.h:28:17 */ + +type uint_fast8_t = uint8_t /* stdint.h:30:17 */ +type uint_fast64_t = uint64_t /* stdint.h:31:18 */ + +type uint_least8_t = uint8_t /* stdint.h:33:18 */ +type uint_least16_t = uint16_t /* stdint.h:34:18 */ +type uint_least32_t = uint32_t /* stdint.h:35:18 */ +type uint_least64_t = uint64_t /* stdint.h:36:18 */ + +type int_fast16_t = int32_t /* stdint.h:1:17 */ +type int_fast32_t = int32_t /* stdint.h:2:17 */ +type uint_fast16_t = uint32_t /* stdint.h:3:18 */ +type uint_fast32_t = uint32_t /* stdint.h:4:18 */ + +type ssize_t = int64 /* alltypes.h:65:15 */ + +type off_t = int64 /* alltypes.h:162:16 */ + +type _IO_FILE = struct { + flags uint32 + _ [4]byte + rpos uintptr + rend uintptr + close uintptr + wend uintptr + wpos uintptr + mustbezero_1 uintptr + wbase uintptr + read uintptr + write uintptr + seek uintptr + buf uintptr + buf_size size_t + prev uintptr + next uintptr + fd int32 + pipe_pid int32 + lockcount int64 + mode int32 + lock int32 + lbf int32 + _ [4]byte + cookie uintptr + off off_t + getln_buf uintptr + mustbezero_2 uintptr + shend uintptr + shlim off_t + shcnt off_t + prev_locked uintptr + next_locked uintptr + locale uintptr +} /* alltypes.h:320:9 */ + +type FILE = _IO_FILE /* alltypes.h:320:25 */ + +type va_list = uintptr /* alltypes.h:326:27 */ + +type _G_fpos64_t = struct { + _ [0]uint64 + __opaque [16]int8 +} /* stdio.h:54:9 */ + +type fpos_t = _G_fpos64_t /* stdio.h:58:3 */ + +type float_t = float32 /* alltypes.h:29:15 */ + +type double_t = float64 /* alltypes.h:34:16 */ + +func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */ + bp := tls.Alloc(4) + defer tls.Free(4) + + // var __u struct {__f float32;} at bp, 4 + + *(*float32)(unsafe.Pointer(bp)) = __f + return *(*uint32)(unsafe.Pointer(bp)) +} + +func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + // var __u struct {__f float64;} at bp, 8 + + *(*float64)(unsafe.Pointer(bp)) = __f + return *(*uint64)(unsafe.Pointer(bp)) +} + +type syscall_arg_t = int64 /* syscall.h:22:14 */ + +func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ + var c int32 + var x int32 + var y int64 + var neg int32 = 0 + + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if c == '+' || c == '-' { + neg = Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if uint32(c-'0') >= 10 && pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } + if uint32(c-'0') >= 10 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + return -0x7fffffffffffffff - int64(1) + } + for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + x = 10*x + c - '0' + } + for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + y = int64(10)*y + int64(c) - int64('0') + } + for ; uint32(c-'0') < 10; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if neg != 0 { + return -y + } + return y +} + +func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */ + bp := tls.Alloc(512) + defer tls.Free(512) + + // var x [128]uint32_t at bp, 512 + + var i int32 + var j int32 + var k int32 + var a int32 + var z int32 + var lrp int64 = int64(0) + var dc int64 = int64(0) + var e10 int64 = int64(0) + var lnz int32 = 0 + var gotdig int32 = 0 + var gotrad int32 = 0 + var rp int32 + var e2 int32 + var emax int32 = -emin - bits + 3 + var denormal int32 = 0 + var y float64 + var frac float64 = float64(0) + var bias float64 = float64(0) + + j = 0 + k = 0 + + // Don't let leading zeros consume buffer space + for ; c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + } + if c == '.' { + gotrad = 1 + for c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }(); c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + lrp-- + } + } + + *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0) + for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + if c == '.' { + if gotrad != 0 { + break + } + gotrad = 1 + lrp = dc + } else if k < 128-3 { + dc++ + if c != '0' { + lnz = int32(dc) + } + if j != 0 { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0') + } else { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0') + } + if PreIncInt32(&j, 1) == 9 { + k++ + j = 0 + } + gotdig = 1 + } else { + dc++ + if c != '0' { + lnz = (128 - 4) * 9 + *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1) + } + } + } + if !(gotrad != 0) { + lrp = dc + } + + if gotdig != 0 && c|32 == 'e' { + e10 = scanexp(tls, f, pok) + if e10 == -0x7fffffffffffffff-int64(1) { + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } else { + X__shlim(tls, f, int64(0)) + return float64(0) + } + e10 = int64(0) + } + lrp = lrp + e10 + } else if c >= 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + if !(gotdig != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + + // Handle zero specially to avoid nasty special cases later + if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) { + return float64(sign) * 0.0 + } + + // Optimize small integers (w/no exponent) and over/under-flow + if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) + } + if lrp > int64(-emin/2) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 + } + if lrp < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 + } + + // Align incomplete final B1B digit + if j != 0 { + for ; j < 9; j++ { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10) + } + k++ + j = 0 + } + + a = 0 + z = k + e2 = 0 + rp = int32(lrp) + + // Optimize small to mid-size integers (even in exp. notation) + if lnz < 9 && lnz <= rp && rp < 18 { + if rp == 9 { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) + } + if rp < 9 { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp]) + } + var bitlim int32 = bits - 3*(rp-9) + if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) { + return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10]) + } + } + + // Drop trailing zeros + for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- { + } + + // Align radix point to B1B digit boundary + if rp%9 != 0 { + var rpm9 int32 + if rp >= 0 { + rpm9 = rp % 9 + } else { + rpm9 = rp%9 + 9 + } + var p10 int32 = _sp10s[8-rpm9] + var carry uint32_t = uint32_t(0) + for k = a; k != z; k++ { + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry + carry = uint32_t(1000000000/p10) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) + rp = rp - 9 + } + } + if carry != 0 { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry + } + rp = rp + (9 - rpm9) + } + + // Upscale until desired number of bits are left of radix point + for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] { + var carry uint32_t = uint32_t(0) + e2 = e2 - 29 + for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) { + var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry) + if tmp > uint64(1000000000) { + carry = uint32_t(tmp / uint64(1000000000)) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000)) + } else { + carry = uint32_t(0) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp) + } + if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + z = k + } + if k == a { + break + } + } + if carry != 0 { + rp = rp + 9 + a = (a - 1) & (128 - 1) + if a == z { + z = (z - 1) & (128 - 1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) + } + *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry + } + } + + // Downscale until exactly number of bits are left of radix point + for { + var carry uint32_t = uint32_t(0) + var sh int32 = 1 + for i = 0; i < 2; i++ { + k = (a + i) & (128 - 1) + if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] { + i = 2 + break + } + if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] { + break + } + } + if i == 2 && rp == 9*2 { + break + } + // FIXME: find a way to compute optimal sh + if rp > 9+9*2 { + sh = 9 + } + e2 = e2 + sh + for k = a; k != z; k = (k + 1) & (128 - 1) { + var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<<sh-1) + *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))>>sh + carry + carry = uint32_t(int32(1000000000)>>sh) * tmp + if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { + a = (a + 1) & (128 - 1) + i-- + rp = rp - 9 + } + } + if carry != 0 { + if (z+1)&(128-1) != a { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry + z = (z + 1) & (128 - 1) + } else { + *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1) + } + } + } + + // Assemble desired bits into floating point variable + for y = float64(AssignInt32(&i, 0)); i < 2; i++ { + if (a+i)&(128-1) == z { + *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0) + } + y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))) + } + + y = y * float64(sign) + + // Limit precision for denormal results + if bits > 53+e2-emin { + bits = 53 + e2 - emin + if bits < 0 { + bits = 0 + } + denormal = 1 + } + + // Calculate bias term to force rounding, move out lower bits + if bits < 53 { + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y) + frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits)) + y = y - frac + y = y + bias + } + + // Process tail of decimal input so it can affect rounding + if (a+i)&(128-1) != z { + var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) + if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) { + frac = frac + 0.25*float64(sign) + } else if t > uint32_t(500000000) { + frac = frac + 0.75*float64(sign) + } else if t == uint32_t(500000000) { + if (a+i+1)&(128-1) == z { + frac = frac + 0.5*float64(sign) + } else { + frac = frac + 0.75*float64(sign) + } + } + if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) { + frac += 1 + } + } + + y = y + frac + y = y - bias + + if (e2+53)&0x7fffffff > emax-5 { + if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 { + if denormal != 0 && bits == 53+e2-emin { + denormal = 0 + } + y = y * 0.5 + e2++ + } + if e2+53 > emax || denormal != 0 && frac != 0 { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + } + } + + return Xscalbnl(tls, y, e2) +} + +var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */ +var _sp10s = [8]int32{10, 100, 1000, 10000, + 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */ + +func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */ + var x uint32_t = uint32_t(0) + var y float64 = float64(0) + var scale float64 = float64(1) + var bias float64 = float64(0) + var gottail int32 = 0 + var gotrad int32 = 0 + var gotdig int32 = 0 + var rp int64 = int64(0) + var dc int64 = int64(0) + var e2 int64 = int64(0) + var d int32 + var c int32 + + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + + // Skip leading zeros + for ; c == '0'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + gotdig = 1 + } + + if c == '.' { + gotrad = 1 + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + // Count zeros after the radix point before significand + rp = int64(0) + __1: + if !(c == '0') { + goto __3 + } + gotdig = 1 + goto __2 + __2: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + rp-- + goto __1 + goto __3 + __3: + } + + for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() { + if c == '.' { + if gotrad != 0 { + break + } + rp = dc + gotrad = 1 + } else { + gotdig = 1 + if c > '9' { + d = c | 32 + 10 - 'a' + } else { + d = c - '0' + } + if dc < int64(8) { + x = x*uint32_t(16) + uint32_t(d) + } else if dc < int64(53/4+1) { + y = y + float64(d)*AssignDivFloat64(&scale, float64(16)) + } else if d != 0 && !(gottail != 0) { + y = y + 0.5*scale + gottail = 1 + } + dc++ + } + } + if !(gotdig != 0) { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if gotrad != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } else { + X__shlim(tls, f, int64(0)) + } + return float64(sign) * 0.0 + } + if !(gotrad != 0) { + rp = dc + } + for dc < int64(8) { + x = x * uint32_t(16) + dc++ + } + if c|32 == 'p' { + e2 = scanexp(tls, f, pok) + if e2 == -0x7fffffffffffffff-int64(1) { + if pok != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } else { + X__shlim(tls, f, int64(0)) + return float64(0) + } + e2 = int64(0) + } + } else { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + e2 = e2 + (int64(4)*rp - int64(32)) + + if !(x != 0) { + return float64(sign) * 0.0 + } + if e2 > int64(-emin) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 + } + if e2 < int64(emin-2*53) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 + } + + for x < 0x80000000 { + if y >= 0.5 { + x = x + (x + uint32_t(1)) + y = y + (y - float64(1)) + } else { + x = x + x + y = y + y + } + e2-- + } + + if int64(bits) > int64(32)+e2-int64(emin) { + bits = int32(int64(32) + e2 - int64(emin)) + if bits < 0 { + bits = 0 + } + } + + if bits < 53 { + bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign)) + } + + if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) { + x++ + y = float64(0) + } + + y = bias + float64(sign)*float64(x) + float64(sign)*y + y = y - bias + + if !(y != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + } + + return Xscalbnl(tls, y, int32(e2)) +} + +func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */ + var sign int32 = 1 + var i size_t + var bits int32 + var emin int32 + var c int32 + + switch prec { + case 0: + bits = 24 + emin = -125 - bits + break + case 1: + bits = 53 + emin = -1021 - bits + break + case 2: + bits = 53 + emin = -1021 - bits + break + default: + return float64(0) + } + + for __isspace(tls, AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) != 0 { + } + + if c == '+' || c == '-' { + sign = sign - 2*Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + + for i = uint64(0); i < uint64(8) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 41 /* "infinity" */ + uintptr(i)))); i++ { + if i < uint64(7) { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + } + if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 { + if i != uint64(8) { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if pok != 0 { + for ; i > uint64(3); i-- { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + } + } + return float64(float32(sign) * X__builtin_inff(tls)) + } + if !(i != 0) { + for i = uint64(0); i < uint64(3) && c|32 == int32(*(*int8)(unsafe.Pointer(ts + 50 /* "nan" */ + uintptr(i)))); i++ { + if i < uint64(2) { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + } + } + } + if i == uint64(3) { + if func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() != '(' { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + return float64(X__builtin_nanf(tls, ts+54)) + } + for i = uint64(1); ; i++ { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' { + continue + } + if c == ')' { + return float64(X__builtin_nanf(tls, ts+54)) + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(pok != 0) { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + for PostDecUint64(&i, 1) != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + } + return float64(X__builtin_nanf(tls, ts+54)) + } + return float64(X__builtin_nanf(tls, ts+54)) + } + + if i != 0 { + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + X__shlim(tls, f, int64(0)) + return float64(0) + } + + if c == '0' { + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if c|32 == 'x' { + return hexfloat(tls, f, bits, emin, sign, pok) + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + c = '0' + } + + return decfloat(tls, f, c, bits, emin, sign, pok) +} + +// Lookup table for digit values. -1==255>=36 -> invalid +var table = [257]uint8{Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), + uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), + uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), + Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), +} /* intscan.c:7:28 */ + +func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */ + var val uintptr + var c int32 + var neg int32 + var x uint32 + var y uint64 + var bs int32 + val = uintptr(unsafe.Pointer(&table)) + uintptr(1) + neg = 0 + if !(base > uint32(36) || base == uint32(1)) { + goto __1 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + return uint64(0) +__1: + ; +__2: + if !(__isspace(tls, AssignInt32(&c, func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }())) != 0) { + goto __3 + } + goto __2 +__3: + ; + if !(c == '+' || c == '-') { + goto __4 + } + neg = -Bool32(c == '-') + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() +__4: + ; + if !((base == uint32(0) || base == uint32(16)) && c == '0') { + goto __5 + } + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if !(c|32 == 'x') { + goto __7 + } + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) { + goto __9 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(pok != 0) { + goto __10 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + goto __11 +__10: + X__shlim(tls, f, int64(0)) +__11: + ; + return uint64(0) +__9: + ; + base = uint32(16) + goto __8 +__7: + if !(base == uint32(0)) { + goto __12 + } + base = uint32(8) +__12: + ; +__8: + ; + goto __6 +__5: + if !(base == uint32(0)) { + goto __13 + } + base = uint32(10) +__13: + ; + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) { + goto __14 + } + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + X__shlim(tls, f, int64(0)) + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 + return uint64(0) +__14: + ; +__6: + ; + if !(base == uint32(10)) { + goto __15 + } + x = uint32(0) +__17: + if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) { + goto __19 + } + x = x*uint32(10) + uint32(c-'0') + goto __18 +__18: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __17 + goto __19 +__19: + ; + y = uint64(x) +__20: + if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) { + goto __22 + } + y = y*uint64(10) + uint64(c-'0') + goto __21 +__21: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __20 + goto __22 +__22: + ; + if !(uint32(c-'0') >= 10) { + goto __23 + } + goto done +__23: + ; + goto __16 +__15: + if !!(base&(base-uint32(1)) != 0) { + goto __24 + } + bs = int32(*(*int8)(unsafe.Pointer(ts + 55 + uintptr(uint32(0x17)*base>>5&uint32(7))))) + x = uint32(0) +__26: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) { + goto __28 + } + x = x<<bs | uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __27 +__27: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __26 + goto __28 +__28: + ; + y = uint64(x) +__29: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= uint64(2*uint64(0x7fffffffffffffff)+uint64(1))>>bs) { + goto __31 + } + y = y<<bs | uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __30 +__30: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __29 + goto __31 +__31: + ; + goto __25 +__24: + x = uint32(0) +__32: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(36)-uint32(1)) { + goto __34 + } + x = x*base + uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __33 +__33: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __32 + goto __34 +__34: + ; + y = uint64(x) +__35: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(base) && uint64(base)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) { + goto __37 + } + y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + goto __36 +__36: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __35 + goto __37 +__37: + ; +__25: + ; +__16: + ; + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) { + goto __38 + } +__39: + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base) { + goto __41 + } + goto __40 +__40: + c = func() int32 { + if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { + return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) + } + return X__shgetc(tls, f) + }() + goto __39 + goto __41 +__41: + ; + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + y = lim + if !(lim&uint64(1) != 0) { + goto __42 + } + neg = 0 +__42: + ; +__38: + ; +done: + if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { + (*FILE)(unsafe.Pointer(f)).rpos-- + } else { + } + if !(y >= lim) { + goto __43 + } + if !(!(lim&uint64(1) != 0) && !(neg != 0)) { + goto __44 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return lim - uint64(1) + goto __45 +__44: + if !(y > lim) { + goto __46 + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 + return lim +__46: + ; +__45: + ; +__43: + ; + return y ^ uint64(neg) - uint64(neg) +} + +// The shcnt field stores the number of bytes read so far, offset by +// the value of buf-rpos at the last function call (__shlim or __shgetc), +// so that between calls the inline shcnt macro can add rpos-buf to get +// the actual count. + +func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */ + (*FILE)(unsafe.Pointer(f)).shlim = lim + (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1 + // If lim is nonzero, rend must be a valid pointer. + if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim) + } else { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend + } +} + +func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ + var c int32 + var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 + if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 { + (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + (*FILE)(unsafe.Pointer(f)).shlim = int64(-1) + return -1 + } + cnt++ + if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt) + } else { + (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend + } + (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt + if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf { + *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c) + } + return c +} + +func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */ + return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24 +} + +func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */ + return Xcopysign(tls, x, y) +} + +func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */ + return Xfabs(tls, x) +} + +func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */ + return Xfmod(tls, x, y) +} + +var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */ + +func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) { + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x + return r + }() + var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff)) + var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63) + var y double_t + + if e >= 0x3ff+52 { + return x + } + if s != 0 { + y = x - toint + toint + } else { + y = x + toint - toint + } + if y == float64(0) { + if s != 0 { + return -Float64FromFloat64(0.0) + } + return float64(0) + } + return y +} + +func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + // var u struct {f float64;} at bp, 8 + + var y double_t = x + + if n > 1023 { + y = y * 0x1p1023 + n = n - 1023 + if n > 1023 { + y = y * 0x1p1023 + n = n - 1023 + if n > 1023 { + n = 1023 + } + } + } else if n < -1022 { + // make sure final n < -53 to avoid double + // rounding in the subnormal range + y = y * (float64(0x1p-1022) * 0x1p53) + n = n + (1022 - 53) + if n < -1022 { + y = y * (float64(0x1p-1022) * 0x1p53) + n = n + (1022 - 53) + if n < -1022 { + n = -1022 + } + } + } + *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52 + x = y * *(*float64)(unsafe.Pointer(bp)) + return x +} + +func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */ + return Xscalbn(tls, x, n) +} + +type div_t = struct { + quot int32 + rem int32 +} /* stdlib.h:62:35 */ +type ldiv_t = struct { + quot int64 + rem int64 +} /* stdlib.h:63:36 */ +type lldiv_t = struct { + quot int64 + rem int64 +} /* stdlib.h:64:41 */ + +type max_align_t = struct { + __ll int64 + __ld float64 +} /* alltypes.h:41:54 */ + +type imaxdiv_t = struct { + quot intmax_t + rem intmax_t +} /* inttypes.h:14:40 */ + +type pid_t = int32 /* alltypes.h:235:13 */ + +type uid_t = uint32 /* alltypes.h:245:18 */ + +type gid_t = uint32 /* alltypes.h:250:18 */ + +type iovec = struct { + iov_base uintptr + iov_len size_t +} /* alltypes.h:355:1 */ + +type socklen_t = uint32 /* alltypes.h:361:18 */ + +type sa_family_t = uint16 /* alltypes.h:366:24 */ + +type msghdr = struct { + msg_name uintptr + msg_namelen socklen_t + _ [4]byte + msg_iov uintptr + msg_iovlen int32 + __pad1 int32 + msg_control uintptr + msg_controllen socklen_t + __pad2 int32 + msg_flags int32 + _ [4]byte +} /* socket.h:22:1 */ + +type cmsghdr = struct { + cmsg_len socklen_t + __pad1 int32 + cmsg_level int32 + cmsg_type int32 +} /* socket.h:44:1 */ + +type linger = struct { + l_onoff int32 + l_linger int32 +} /* socket.h:74:1 */ + +type sockaddr = struct { + sa_family sa_family_t + sa_data [14]int8 +} /* socket.h:367:1 */ + +type sockaddr_storage = struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 +} /* socket.h:372:1 */ + +type in_port_t = uint16_t /* in.h:12:18 */ +type in_addr_t = uint32_t /* in.h:13:18 */ +type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */ + +type sockaddr_in = struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t +} /* in.h:16:1 */ + +type in6_addr = struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } +} /* in.h:23:1 */ + +type sockaddr_in6 = struct { + sin6_family sa_family_t + sin6_port in_port_t + sin6_flowinfo uint32_t + sin6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + sin6_scope_id uint32_t +} /* in.h:34:1 */ + +type ipv6_mreq = struct { + ipv6mr_multiaddr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + ipv6mr_interface uint32 +} /* in.h:42:1 */ + +type ip_opts = struct { + ip_dst struct{ s_addr in_addr_t } + ip_opts [40]int8 +} /* in.h:229:1 */ + +type ip_mreq = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_interface struct{ s_addr in_addr_t } +} /* in.h:247:1 */ + +type ip_mreqn = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_address struct{ s_addr in_addr_t } + imr_ifindex int32 +} /* in.h:252:1 */ + +type ip_mreq_source = struct { + imr_multiaddr struct{ s_addr in_addr_t } + imr_interface struct{ s_addr in_addr_t } + imr_sourceaddr struct{ s_addr in_addr_t } +} /* in.h:258:1 */ + +type ip_msfilter = struct { + imsf_multiaddr struct{ s_addr in_addr_t } + imsf_interface struct{ s_addr in_addr_t } + imsf_fmode uint32_t + imsf_numsrc uint32_t + imsf_slist [1]struct{ s_addr in_addr_t } +} /* in.h:264:1 */ + +type group_req = struct { + gr_interface uint32_t + _ [4]byte + gr_group struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 + } +} /* in.h:275:1 */ + +type group_source_req = struct { + gsr_interface uint32_t + _ [4]byte + gsr_group struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 + } + gsr_source struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 + } +} /* in.h:280:1 */ + +type group_filter = struct { + gf_interface uint32_t + _ [4]byte + gf_group struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 + } + gf_fmode uint32_t + gf_numsrc uint32_t + gf_slist [1]struct { + ss_family sa_family_t + __ss_padding [118]int8 + __ss_align uint64 + } +} /* in.h:286:1 */ + +type in_pktinfo = struct { + ipi_ifindex int32 + ipi_spec_dst struct{ s_addr in_addr_t } + ipi_addr struct{ s_addr in_addr_t } +} /* in.h:297:1 */ + +type in6_pktinfo = struct { + ipi6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + ipi6_ifindex uint32 +} /* in.h:303:1 */ + +type ip6_mtuinfo = struct { + ip6m_addr struct { + sin6_family sa_family_t + sin6_port in_port_t + sin6_flowinfo uint32_t + sin6_addr struct { + __in6_union struct { + _ [0]uint32 + __s6_addr [16]uint8_t + } + } + sin6_scope_id uint32_t + } + ip6m_mtu uint32_t +} /* in.h:308:1 */ + +type addrinfo = struct { + ai_flags int32 + ai_family int32 + ai_socktype int32 + ai_protocol int32 + ai_addrlen socklen_t + _ [4]byte + ai_addr uintptr + ai_canonname uintptr + ai_next uintptr +} /* netdb.h:16:1 */ + +// Legacy functions follow (marked OBsolete in SUS) + +type netent = struct { + n_name uintptr + n_aliases uintptr + n_addrtype int32 + n_net uint32_t +} /* netdb.h:62:1 */ + +type hostent = struct { + h_name uintptr + h_aliases uintptr + h_addrtype int32 + h_length int32 + h_addr_list uintptr +} /* netdb.h:69:1 */ + +type servent = struct { + s_name uintptr + s_aliases uintptr + s_port int32 + _ [4]byte + s_proto uintptr +} /* netdb.h:78:1 */ + +type protoent = struct { + p_name uintptr + p_aliases uintptr + p_proto int32 + _ [4]byte +} /* netdb.h:85:1 */ + +type aibuf = struct { + ai struct { + ai_flags int32 + ai_family int32 + ai_socktype int32 + ai_protocol int32 + ai_addrlen socklen_t + _ [4]byte + ai_addr uintptr + ai_canonname uintptr + ai_next uintptr + } + sa struct { + sin struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + _ [12]byte + } + lock [1]int32 + slot int16 + ref int16 + _ [4]byte +} /* lookup.h:10:1 */ + +type sa = struct { + sin struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + _ [12]byte +} /* lookup.h:10:1 */ + +type address = struct { + family int32 + scopeid uint32 + addr [16]uint8_t + sortkey int32 +} /* lookup.h:20:1 */ + +type service = struct { + port uint16_t + proto uint8 + socktype uint8 +} /* lookup.h:27:1 */ + +type resolvconf = struct { + ns [3]struct { + family int32 + scopeid uint32 + addr [16]uint8_t + sortkey int32 + } + nns uint32 + attempts uint32 + ndots uint32 + timeout uint32 +} /* lookup.h:34:1 */ + +func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */ + var cnt size_t + cnt = uint64(1) +__1: + if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) { + goto __3 + } + goto __2 +__2: + cnt++ + p = (*addrinfo)(unsafe.Pointer(p)).ai_next + goto __1 + goto __3 +__3: + ; + var b uintptr = p - uintptr(uint64(uintptr(0))) + b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot) + //TODO LOCK(b->lock); + if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) { + Xfree(tls, b) + } + //TODO else UNLOCK(b->lock); +} + +type time_t = int64 /* alltypes.h:85:16 */ + +type clockid_t = int32 /* alltypes.h:214:13 */ + +type timespec = struct { + tv_sec time_t + tv_nsec int64 +} /* alltypes.h:229:1 */ + +type pthread_t = uintptr /* alltypes.h:273:26 */ + +type pthread_once_t = int32 /* alltypes.h:279:13 */ + +type pthread_key_t = uint32 /* alltypes.h:284:18 */ + +type pthread_spinlock_t = int32 /* alltypes.h:289:13 */ + +type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:294:37 */ + +type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:299:37 */ + +type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:304:37 */ + +type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:309:40 */ + +type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:349:9 */ + +type sigset_t = __sigset_t /* alltypes.h:349:71 */ + +type pthread_attr_t = struct { + __u struct { + _ [0]uint64 + __i [14]int32 + } +} /* alltypes.h:372:147 */ + +type pthread_mutex_t = struct { + __u struct { + _ [0]uint64 + __i [10]int32 + } +} /* alltypes.h:377:157 */ + +type pthread_cond_t = struct { + __u struct { + _ [0]uint64 + __i [12]int32 + } +} /* alltypes.h:387:112 */ + +type pthread_rwlock_t = struct { + __u struct { + _ [0]uint64 + __i [14]int32 + } +} /* alltypes.h:397:139 */ + +type pthread_barrier_t = struct { + __u struct { + _ [0]uint64 + __i [8]int32 + } +} /* alltypes.h:402:137 */ + +type sched_param = struct { + sched_priority int32 + __reserved1 int32 + __reserved2 [2]struct { + __reserved1 time_t + __reserved2 int64 + } + __reserved3 int32 + _ [4]byte +} /* sched.h:19:1 */ + +type timer_t = uintptr /* alltypes.h:209:14 */ + +type clock_t = int64 /* alltypes.h:219:14 */ + +type tm = struct { + tm_sec int32 + tm_min int32 + tm_hour int32 + tm_mday int32 + tm_mon int32 + tm_year int32 + tm_wday int32 + tm_yday int32 + tm_isdst int32 + _ [4]byte + tm_gmtoff int64 + tm_zone uintptr +} /* time.h:38:1 */ + +type itimerspec = struct { + it_interval struct { + tv_sec time_t + tv_nsec int64 + } + it_value struct { + tv_sec time_t + tv_nsec int64 + } +} /* time.h:80:1 */ + +type __ptcb = struct { + __f uintptr + __x uintptr + __next uintptr +} /* pthread.h:206:1 */ + +type useconds_t = uint32 /* alltypes.h:260:18 */ + +func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */ + bp := tls.Alloc(1608) + defer tls.Free(1608) + + // var ports [2]service at bp, 8 + + // var addrs [48]address at bp+8, 1344 + + // var canon [256]int8 at bp+1352, 256 + + var outcanon uintptr + var nservs int32 + var naddrs int32 + var nais int32 + var canon_len int32 + var i int32 + var j int32 + var k int32 + var family int32 = 0 + var flags int32 = 0 + var proto int32 = 0 + var socktype int32 = 0 + var out uintptr + + if !(host != 0) && !(serv != 0) { + return -2 + } + + if hint != 0 { + family = (*addrinfo)(unsafe.Pointer(hint)).ai_family + flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags + proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol + socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype + + var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400 + if flags&mask != flags { + return -1 + } + + switch family { + case 2: + fallthrough + case 10: + fallthrough + case 0: + break + fallthrough + default: + return -6 + } + } + + if flags&0x20 != 0 { + Xabort(tls) //TODO- + // /* Define the "an address is configured" condition for address + // * families via ability to create a socket for the family plus + // * routability of the loopback address for the family. */ + // static const struct sockaddr_in lo4 = { + // .sin_family = AF_INET, .sin_port = 65535, + // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN + // ? 0x7f000001 : 0x0100007f + // }; + // static const struct sockaddr_in6 lo6 = { + // .sin6_family = AF_INET6, .sin6_port = 65535, + // .sin6_addr = IN6ADDR_LOOPBACK_INIT + // }; + // int tf[2] = { AF_INET, AF_INET6 }; + // const void *ta[2] = { &lo4, &lo6 }; + // socklen_t tl[2] = { sizeof lo4, sizeof lo6 }; + // for (i=0; i<2; i++) { + // if (family==tf[1-i]) continue; + // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM, + // IPPROTO_UDP); + // if (s>=0) { + // int cs; + // pthread_setcancelstate( + // PTHREAD_CANCEL_DISABLE, &cs); + // int r = connect(s, ta[i], tl[i]); + // pthread_setcancelstate(cs, 0); + // close(s); + // if (!r) continue; + // } + // switch (errno) { + // case EADDRNOTAVAIL: + // case EAFNOSUPPORT: + // case EHOSTUNREACH: + // case ENETDOWN: + // case ENETUNREACH: + // break; + // default: + // return EAI_SYSTEM; + // } + // if (family == tf[i]) return EAI_NONAME; + // family = tf[1-i]; + // } + } + + nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags) + if nservs < 0 { + return nservs + } + + naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags) + if naddrs < 0 { + return naddrs + } + + nais = nservs * naddrs + canon_len = int32(Xstrlen(tls, bp+1352)) + out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1)) + if !(out != 0) { + return -10 + } + + if canon_len != 0 { + outcanon = out + uintptr(nais)*88 + Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1)) + } else { + outcanon = uintptr(0) + } + + for k = AssignInt32(&i, 0); i < naddrs; i++ { + j = 0 + __1: + if !(j < nservs) { + goto __3 + } + { + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k) + //TODO out[k].ai = (struct addrinfo){ + //TODO .ai_family = addrs[i].family, + //TODO .ai_socktype = ports[j].socktype, + //TODO .ai_protocol = ports[j].proto, + //TODO .ai_addrlen = addrs[i].family == AF_INET + //TODO ? sizeof(struct sockaddr_in) + //TODO : sizeof(struct sockaddr_in6), + //TODO .ai_addr = (void *)&out[k].sa, + //TODO .ai_canonname = outcanon }; + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto) + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 { + if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 { + return uint32(unsafe.Sizeof(sockaddr_in{})) + } + return uint32(unsafe.Sizeof(sockaddr_in6{})) + }() + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48 + (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon + if k != 0 { + (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88 + } + switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family { + case 2: + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2) + (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4)) + break + case 10: + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) + (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid + Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16)) + break + } + + } + goto __2 + __2: + j++ + k++ + goto __1 + goto __3 + __3: + } + (*aibuf)(unsafe.Pointer(out)).ref = int16(nais) + *(*uintptr)(unsafe.Pointer(res)) = out + return 0 +} + +type ucred = struct { + pid pid_t + uid uid_t + gid gid_t +} /* socket.h:57:1 */ + +type mmsghdr = struct { + msg_hdr struct { + msg_name uintptr + msg_namelen socklen_t + _ [4]byte + msg_iov uintptr + msg_iovlen int32 + __pad1 int32 + msg_control uintptr + msg_controllen socklen_t + __pad2 int32 + msg_flags int32 + _ [4]byte + } + msg_len uint32 + _ [4]byte +} /* socket.h:63:1 */ + +func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + var size size_t = uint64(63) + // var res uintptr at bp, 8 + + var err int32 + for ok := true; ok; ok = err == 34 { + Xfree(tls, _sh) + _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) + if !(_sh != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 + return uintptr(0) + } + err = Xgethostbyaddr_r(tls, a, l, af, _sh, + _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) + } + if err != 0 { + return uintptr(0) + } + return _sh +} + +var _sh uintptr /* gethostbyaddr.c:9:24: */ + +func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */ + return Xgethostbyname2(tls, name, 2) +} + +func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + var size size_t = uint64(63) + // var res uintptr at bp, 8 + + var err int32 + for ok := true; ok; ok = err == 34 { + Xfree(tls, _sh1) + _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) + if !(_sh1 != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 + return uintptr(0) + } + err = Xgethostbyname2_r(tls, name, af, _sh1, + _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) + } + if err != 0 { + return uintptr(0) + } + return _sh1 +} + +var _sh1 uintptr /* gethostbyname2.c:10:24: */ + +func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */ + bp := tls.Alloc(1600) + defer tls.Free(1600) + + // var addrs [48]address at bp, 1344 + + // var canon [256]int8 at bp+1344, 256 + + var i int32 + var cnt int32 + var align size_t + var need size_t + + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02) + if cnt < 0 { + switch cnt { + case -2: + *(*int32)(unsafe.Pointer(err)) = 1 + return 2 + fallthrough + case -3: + *(*int32)(unsafe.Pointer(err)) = 2 + return 11 + fallthrough + default: + fallthrough + case -4: + *(*int32)(unsafe.Pointer(err)) = 3 + return 74 + fallthrough + case -10: + fallthrough + case -11: + *(*int32)(unsafe.Pointer(err)) = 3 + return *(*int32)(unsafe.Pointer(X___errno_location(tls))) + } + } + + (*hostent)(unsafe.Pointer(h)).h_addrtype = af + (*hostent)(unsafe.Pointer(h)).h_length = func() int32 { + if af == 10 { + return 16 + } + return 4 + }() + + // Align buffer + align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)) + + need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0))) + need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length)) + need = need + (Xstrlen(tls, name) + uint64(1)) + need = need + (Xstrlen(tls, bp+1344) + uint64(1)) + need = need + align + + if need > buflen { + return 34 + } + + buf += uintptr(align) + (*hostent)(unsafe.Pointer(h)).h_aliases = buf + buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0)))) + (*hostent)(unsafe.Pointer(h)).h_addr_list = buf + buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0)))) + + for i = 0; i < cnt; i++ { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf + buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length)) + } + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0) + + (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf) + Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344) + buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1)) + + if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf + Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name) + buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1)) + } else { + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) + } + + *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0) + + *(*uintptr)(unsafe.Pointer(res)) = h + return 0 +} + +type if_nameindex = struct { + if_index uint32 + _ [4]byte + if_name uintptr +} /* if.h:12:1 */ + +type ifaddr = struct { + ifa_addr struct { + sa_family sa_family_t + sa_data [14]int8 + } + ifa_ifu struct { + ifu_broadaddr struct { + sa_family sa_family_t + sa_data [14]int8 + } + } + ifa_ifp uintptr + ifa_next uintptr +} /* if.h:51:1 */ + +type ifmap = struct { + mem_start uint64 + mem_end uint64 + base_addr uint16 + irq uint8 + dma uint8 + port uint8 + _ [3]byte +} /* if.h:64:1 */ + +type ifreq = struct { + ifr_ifrn struct{ ifrn_name [16]int8 } + ifr_ifru struct { + _ [0]uint64 + ifru_addr struct { + sa_family sa_family_t + sa_data [14]int8 + } + _ [8]byte + } +} /* if.h:76:1 */ + +type ifconf = struct { + ifc_len int32 + _ [4]byte + ifc_ifcu struct{ ifcu_buf uintptr } +} /* if.h:116:1 */ + +type ns_sect = uint32 /* nameser.h:37:3 */ + +type __ns_msg = struct { + _msg uintptr + _eom uintptr + _id uint16_t + _flags uint16_t + _counts [4]uint16_t + _ [4]byte + _sections [4]uintptr + _sect ns_sect + _rrnum int32 + _msg_ptr uintptr +} /* nameser.h:39:9 */ + +type ns_msg = __ns_msg /* nameser.h:46:3 */ + +type _ns_flagdata = struct { + mask int32 + shift int32 +} /* nameser.h:48:1 */ + +type __ns_rr = struct { + name [1025]int8 + _ [1]byte + __type uint16_t + rr_class uint16_t + _ [2]byte + ttl uint32_t + rdlength uint16_t + _ [2]byte + rdata uintptr +} /* nameser.h:59:9 */ + +type ns_rr = __ns_rr /* nameser.h:66:3 */ + +type ns_flag = uint32 /* nameser.h:87:3 */ + +type ns_opcode = uint32 /* nameser.h:96:3 */ + +type ns_rcode = uint32 /* nameser.h:115:3 */ + +type ns_update_operation = uint32 /* nameser.h:121:3 */ + +type ns_tsig_key1 = struct { + name [1025]int8 + alg [1025]int8 + _ [6]byte + data uintptr + len int32 + _ [4]byte +} /* nameser.h:123:1 */ + +type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */ + +type ns_tcp_tsig_state1 = struct { + counter int32 + _ [4]byte + key uintptr + ctx uintptr + sig [512]uint8 + siglen int32 + _ [4]byte +} /* nameser.h:130:1 */ + +type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */ + +type ns_type = uint32 /* nameser.h:200:3 */ + +type ns_class = uint32 /* nameser.h:219:3 */ + +type ns_key_types = uint32 /* nameser.h:226:3 */ + +type ns_cert_types = uint32 /* nameser.h:234:3 */ + +type HEADER = struct { + _ [0]uint32 + id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */ + qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */ + nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */ +} /* nameser.h:353:3 */ + +// unused; purely for broken apps +type __res_state = struct { + retrans int32 + retry int32 + options uint64 + nscount int32 + nsaddr_list [3]struct { + sin_family sa_family_t + sin_port in_port_t + sin_addr struct{ s_addr in_addr_t } + sin_zero [8]uint8_t + } + id uint16 + _ [2]byte + dnsrch [7]uintptr + defdname [256]int8 + pfcode uint64 + ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */ + _ [4]byte + sort_list [10]struct { + addr struct{ s_addr in_addr_t } + mask uint32_t + } + qhook uintptr + rhook uintptr + res_h_errno int32 + _vcsock int32 + _flags uint32 + _ [4]byte + _u struct { + _ [0]uint64 + pad [52]int8 + _ [4]byte + } +} /* resolv.h:26:9 */ + +// unused; purely for broken apps +type res_state = uintptr /* resolv.h:62:3 */ + +type res_sym = struct { + number int32 + _ [4]byte + name uintptr + humanname uintptr +} /* resolv.h:70:1 */ + +func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */ + p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0)))) + *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(0) + for ok := true; ok; ok = x != 0 { + *(*int8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = int8(uint32('0') + x%uint32(10)) + x = x / uint32(10) + } + return p +} + +func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ + bp := tls.Alloc(32) + defer tls.Free(32) + + Xsprintf(tls, s, ts+64, + VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) +} + +func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ + var i int32 + for i = 15; i >= 0; i-- { + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] + *(*int8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = int8('.') + } + Xstrcpy(tls, s, ts+89) +} + +var _sxdigits = *(*[17]int8)(unsafe.Pointer(ts + 98)) /* getnameinfo.c:36:20 */ + +func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ + bp := tls.Alloc(556) + defer tls.Free(556) + + // var line [512]int8 at bp+16, 512 + + var p uintptr + var z uintptr + var _buf [1032]uint8 + _ = _buf + // var atmp [16]uint8 at bp, 16 + + // var iplit address at bp+528, 28 + + //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); + var f uintptr = Xfopen(tls, ts+115, ts+126) + if !(f != 0) { + return + } + if family == 2 { + Xmemcpy(tls, bp+uintptr(12), a, uint64(4)) + Xmemcpy(tls, bp, ts+129, uint64(12)) + a = bp /* &atmp[0] */ + } + for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]int8{})), f) != 0 { + if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 { + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') + *(*int8)(unsafe.Pointer(p)) = int8(0) + } + + for p = bp + 16; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + } + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) + if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 { + continue + } + + if (*address)(unsafe.Pointer(bp+528)).family == 2 { + Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4)) + Xmemcpy(tls, bp+528+8, ts+129, uint64(12)) + (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) + } + + if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid { + continue + } + + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { + } + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + } + *(*int8)(unsafe.Pointer(z)) = int8(0) + if (int64(z)-int64(p))/1 < int64(256) { + Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1))) + break + } + } + //TODO __fclose_ca(f); + Xfclose(tls, f) +} + +func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */ + Xabort(tls) //TODO- + // unsigned long svport; + // char line[128], *p, *z; + // unsigned char _buf[1032]; + // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); + // if (!f) return; + // while (fgets(line, sizeof line, f)) { + // if ((p=strchr(line, '#'))) *p++='\n', *p=0; + + // for (p=line; *p && !isspace(*p); p++); + // if (!*p) continue; + // *p++ = 0; + // svport = strtoul(p, &z, 10); + + // if (svport != port || z==p) continue; + // if (dgram && strncmp(z, "/udp", 4)) continue; + // if (!dgram && strncmp(z, "/tcp", 4)) continue; + // if (p-line > 32) continue; + + // memcpy(buf, line, p-line); + // break; + // } + // __fclose_ca(f); +} + +var Xh_errno int32 /* h_errno.c:4:5: */ + +func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */ + return uintptr(unsafe.Pointer(&Xh_errno)) +} + +func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */ + bp := tls.Alloc(40) + defer tls.Free(40) + + var s uintptr = s0 + var d uintptr = dest + *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)} + // var z uintptr at bp+32, 8 + + var i int32 + + for i = 0; i < 4; i++ { + *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0) + if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s)))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) + }() != 0) { + return 0 + } + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) { + break + } + s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1) + } + if i == 4 { + return 0 + } + switch i { + case 0: + *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff) + AssignShrPtrUint64(bp, int(24)) + fallthrough + case 1: + *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff) + AssignShrPtrUint64(bp+1*8, int(16)) + fallthrough + case 2: + *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff) + AssignShrPtrUint64(bp+2*8, int(8)) + } + for i = 0; i < 4; i++ { + if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) { + return 0 + } + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8))) + } + return 1 +} + +func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */ + bp := tls.Alloc(276) + defer tls.Free(276) + + var a uintptr = a0 + var i int32 + var j int32 + var max int32 + var best int32 + // var buf [100]int8 at bp+176, 100 + + switch af { + case 2: + if socklen_t(Xsnprintf(tls, s, uint64(l), ts+142, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + return s + } + break + case 10: + if Xmemcmp(tls, a, ts+129, uint64(12)) != 0 { + Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), + ts+154, + VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } else { + Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]int8{})), + ts+178, + VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), + 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), + int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } + // Replace longest /(^0|:)[:0]{2,}/ with "::" + i = AssignInt32(&best, 0) + max = 2 + for ; *(*int8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ { + if i != 0 && int32(*(*int8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { + continue + } + j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+208)) + if j > max { + best = i + max = j + } + } + if max > 3 { + *(*int8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrInt8(bp+176+uintptr(best+1), int8(':')) + Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1)) + } + if Xstrlen(tls, bp+176) < size_t(l) { + Xstrcpy(tls, s, bp+176) + return s + } + break + default: + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 + return uintptr(0) + } + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28 + return uintptr(0) +} + +func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */ + if c-uint32('0') < uint32(10) { + return int32(c - uint32('0')) + } + c = c | uint32(32) + if c-uint32('a') < uint32(6) { + return int32(c - uint32('a') + uint32(10)) + } + return -1 +} + +func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */ + bp := tls.Alloc(16) + defer tls.Free(16) + + // var ip [8]uint16_t at bp, 16 + + var a uintptr = a0 + var i int32 + var j int32 + var v int32 + var d int32 + var brk int32 = -1 + var need_v4 int32 = 0 + + if af == 2 { + for i = 0; i < 4; i++ { + for v = AssignInt32(&j, 0); j < 3 && func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(s + uintptr(j))))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10)) + }() != 0; j++ { + v = 10*v + int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) - '0' + } + if j == 0 || j > 1 && int32(*(*int8)(unsafe.Pointer(s))) == '0' || v > 255 { + return 0 + } + *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 { + return 1 + } + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' { + return 0 + } + s += uintptr(j + 1) + } + return 0 + } else if af != 10 { + *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 + return -1 + } + + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' { + return 0 + } + + for i = 0; ; i++ { + if int32(*(*int8)(unsafe.Pointer(s))) == ':' && brk < 0 { + brk = i + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0) + if !(int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) { + break + } + if i == 7 { + return 0 + } + continue + } + for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*int8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ { + v = 16*v + d + } + if j == 0 { + return 0 + } + *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v) + if !(int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) { + break + } + if i == 7 { + return 0 + } + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != ':' { + if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 { + return 0 + } + need_v4 = 1 + i++ + break + } + s += uintptr(j + 1) + } + if brk >= 0 { + Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk))) + for j = 0; j < 7-i; j++ { + *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0) + } + } + for j = 0; j < 8; j++ { + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8) + *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) + } + if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 { + return 0 + } + return 1 +} + +func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */ + bp := tls.Alloc(96) + defer tls.Free(96) + + // var a4 in_addr at bp, 4 + + // var a6 in6_addr at bp+68, 16 + + if X__inet_aton(tls, name, bp) > 0 { + if family == 10 { // wrong family + return -2 + } + Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{}))) + (*address)(unsafe.Pointer(buf)).family = 2 + (*address)(unsafe.Pointer(buf)).scopeid = uint32(0) + return 1 + } + // var tmp [64]int8 at bp+4, 64 + + var p uintptr = Xstrchr(tls, name, '%') + // var z uintptr at bp+88, 8 + + var scopeid uint64 = uint64(0) + if p != 0 && (int64(p)-int64(name))/1 < int64(64) { + Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1)) + *(*int8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = int8(0) + name = bp + 4 /* &tmp[0] */ + } + + if Xinet_pton(tls, 10, name, bp+68) <= 0 { + return 0 + } + if family == 2 { // wrong family + return -2 + } + + Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{}))) + (*address)(unsafe.Pointer(buf)).family = 10 + if p != 0 { + if func() int32 { + if 0 != 0 { + return Xisdigit(tls, int32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) + } + return Bool32(uint32(*(*int8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10)) + }() != 0 { + scopeid = Xstrtoull(tls, p, bp+88, 10) + } else { + *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1) + } + if *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 { + Xabort(tls) //TODO- + // if (!IN6_IS_ADDR_LINKLOCAL(&a6) && + // !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) + // return EAI_NONAME; + // scopeid = if_nametoindex(p); + // if (!scopeid) return EAI_NONAME; + } + if scopeid > uint64(0xffffffff) { + return -2 + } + } + (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid) + return 1 +} + +type mode_t = uint32 /* alltypes.h:152:18 */ + +type flock = struct { + l_type int16 + l_whence int16 + _ [4]byte + l_start off_t + l_len off_t + l_pid pid_t + _ [4]byte +} /* fcntl.h:24:1 */ + +func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */ + var s uintptr + //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0; + if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) { + return 0 + } + for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ { + } + return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0)) +} + +var Xzero_struct_address address /* lookup_name.c:27:16: */ + +func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */ + var cnt int32 = 0 + if name != 0 { + return 0 + } + if flags&0x01 != 0 { + //TODO if (family != AF_INET6) + //TODO buf[cnt++] = (struct address){ .family = AF_INET }; + if family != 10 { + var x = Xzero_struct_address + x.family = 2 + *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x + } + //TODO if (family != AF_INET) + //TODO buf[cnt++] = (struct address){ .family = AF_INET6 }; + if family != 2 { + var x = Xzero_struct_address + x.family = 10 + *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x + } + } else { + Xabort(tls) //TODO- + // if (family != AF_INET6) + // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } }; + // if (family != AF_INET) + // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } }; + } + return cnt +} + +func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */ + return X__lookup_ipliteral(tls, buf, name, family) +} + +func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */ + bp := tls.Alloc(512) + defer tls.Free(512) + + // var line [512]int8 at bp, 512 + + var l size_t = Xstrlen(tls, name) + var cnt int32 = 0 + var badfam int32 = 0 + var _buf [1032]uint8 + _ = _buf + //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); + var _f FILE + _ = _f + var f uintptr = Xfopen(tls, ts+115, ts+126) + if !(f != 0) { + switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { + case 2: + fallthrough + case 20: + fallthrough + case 13: + return 0 + fallthrough + default: + return -11 + } + } + for Xfgets(tls, bp, int32(unsafe.Sizeof([512]int8{})), f) != 0 && cnt < 48 { + var p uintptr + var z uintptr + + if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 { + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8('\n') + *(*int8)(unsafe.Pointer(p)) = int8(0) + } + for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ { + } + if !(p != 0) { + continue + } + + // Isolate IP address to parse + for p = bp; /* &line[0] */ *(*int8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0); p++ { + } + *(*int8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = int8(0) + switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) { + case 1: + cnt++ + break + case 0: + continue + default: + badfam = -2 + continue + } + + // Extract first name as canonical name + for ; *(*int8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*int8)(unsafe.Pointer(p)))) != 0; p++ { + } + for z = p; *(*int8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*int8)(unsafe.Pointer(z)))) != 0); z++ { + } + *(*int8)(unsafe.Pointer(z)) = int8(0) + if is_valid_hostname(tls, p) != 0 { + Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1))) + } + } + //TODO __fclose_ca(f); + Xfclose(tls, f) + if cnt != 0 { + return cnt + } + return badfam +} + +type dpc_ctx = struct { + addrs uintptr + canon uintptr + cnt int32 + _ [4]byte +} /* lookup_name.c:112:1 */ + +func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */ + return -1 //TODO- + Xabort(tls) + return int32(0) //TODO- + // char search[256]; + // struct resolvconf conf; + // size_t l, dots; + // char *p, *z; + + // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1; + + // /* Count dots, suppress search when >=ndots or name ends in + // * a dot, which is an explicit request for global scope. */ + // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++; + // if (dots >= conf.ndots || name[l-1]=='.') *search = 0; + + // /* Strip final dot for canon, fail if multiple trailing dots. */ + // if (name[l-1]=='.') l--; + // if (!l || name[l-1]=='.') return EAI_NONAME; + + // /* This can never happen; the caller already checked length. */ + // if (l >= 256) return EAI_NONAME; + + // /* Name with search domain appended is setup in canon[]. This both + // * provides the desired default canonical name (if the requested + // * name is not a CNAME record) and serves as a buffer for passing + // * the full requested name to name_from_dns. */ + // memcpy(canon, name, l); + // canon[l] = '.'; + + // for (p=search; *p; p=z) { + // for (; isspace(*p); p++); + // for (z=p; *z && !isspace(*z); z++); + // if (z==p) break; + // if (z-p < 256 - l - 1) { + // memcpy(canon+l+1, p, z-p); + // canon[z-p+1+l] = 0; + // int cnt = name_from_dns(buf, canon, canon, family, &conf); + // if (cnt) return cnt; + // } + // } + + // canon[l] = 0; + // return name_from_dns(buf, canon, name, family, &conf); +} + +type policy = struct { + addr [16]uint8 + len uint8 + mask uint8 + prec uint8 + label uint8 +} /* lookup_name.c:237:14 */ + +var defpolicy = [6]policy{ + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 211)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 228)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 244)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 260)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 276)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, + // Last rule must match all addresses to stop loop. + {addr: *(*[16]uint8)(unsafe.Pointer(ts + 292)), prec: uint8(40), label: uint8(1)}, +} /* lookup_name.c:241:3 */ + +func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ + var i int32 + for i = 0; ; i++ { + if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 { + continue + } + if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) != + int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) { + continue + } + return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + } + return uintptr(0) +} + +func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */ + return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label) +} + +func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */ + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff { + return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15 + } + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 { + return 2 + } + if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 { + return 2 + } + if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 { + return 5 + } + return 14 +} + +func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */ + // FIXME: The common prefix length should be limited to no greater + // than the nominal length of the prefix portion of the source + // address. However the definition of the source prefix length is + // not clear and thus this limiting is not yet implemented. + var i uint32 + for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ { + } + return int32(i) +} + +func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */ + var a uintptr = _a + var b uintptr = _b + return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey +} + +func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */ + bp := tls.Alloc(92) + defer tls.Free(92) + + var cnt int32 = 0 + var i int32 + var j int32 + _ = j + + *(*int8)(unsafe.Pointer(canon)) = int8(0) + if name != 0 { + // reject empty name and check len so it fits into temp bufs + var l size_t = Xstrnlen(tls, name, uint64(255)) + if l-uint64(1) >= uint64(254) { + return -2 + } + Xmemcpy(tls, canon, name, l+uint64(1)) + } + + // Procedurally, a request for v6 addresses with the v4-mapped + // flag set is like a request for unspecified family, followed + // by filtering of the results. + if flags&0x08 != 0 { + if family == 10 { + family = 0 + } else { + flags = flags - 0x08 + } + } + + // Try each backend until there's at least one result. + cnt = name_from_null(tls, buf, name, family, flags) + if !(cnt != 0) { + cnt = name_from_numeric(tls, buf, name, family) + } + if !(cnt != 0) && !(flags&0x04 != 0) { + cnt = name_from_hosts(tls, buf, canon, name, family) + if !(cnt != 0) { + cnt = name_from_dns_search(tls, buf, canon, name, family) + } + } + if cnt <= 0 { + if cnt != 0 { + return cnt + } + return -2 + } + + // Filter/transform results for v4-mapped lookup, if requested. + if flags&0x08 != 0 { + Xabort(tls) //TODO- + // if (!(flags & AI_ALL)) { + // /* If any v6 results exist, remove v4 results. */ + // for (i=0; i<cnt && buf[i].family != AF_INET6; i++); + // if (i<cnt) { + // for (j=0; i<cnt; i++) { + // if (buf[i].family == AF_INET6) + // buf[j++] = buf[i]; + // } + // cnt = i = j; + // } + // } + // /* Translate any remaining v4 results to v6 */ + // for (i=0; i<cnt; i++) { + // if (buf[i].family != AF_INET) continue; + // memcpy(buf[i].addr+12, buf[i].addr, 4); + // memcpy(buf[i].addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12); + // buf[i].family = AF_INET6; + // } + } + + // No further processing is needed if there are fewer than 2 + // results or if there are only IPv4 results. + if cnt < 2 || family == 2 { + return cnt + } + for i = 0; i < cnt; i++ { + if (*address)(unsafe.Pointer(buf+uintptr(i)*28)).family != 2 { + break + } + } + if i == cnt { + return cnt + } + var cs int32 + _ = cs + //TODO pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); + + // The following implements a subset of RFC 3484/6724 destination + // address selection by generating a single 31-bit sort key for + // each address. Rules 3, 4, and 7 are omitted for having + // excessive runtime and code size cost and dubious benefit. + // So far the label/precedence table cannot be customized. + for i = 0; i < cnt; i++ { + var family int32 = (*address)(unsafe.Pointer(buf + uintptr(i)*28)).family + var key int32 = 0 + *(*sockaddr_in6)(unsafe.Pointer(bp + 28 /* sa6 */)) = sockaddr_in6{} + *(*sockaddr_in6)(unsafe.Pointer(bp /* da6 */)) = sockaddr_in6{sin6_family: sa_family_t(10), sin6_port: in_port_t(65535), sin6_scope_id: (*address)(unsafe.Pointer(buf + uintptr(i)*28)).scopeid} + *(*sockaddr_in)(unsafe.Pointer(bp + 72 /* sa4 */)) = sockaddr_in{} + *(*sockaddr_in)(unsafe.Pointer(bp + 56 /* da4 */)) = sockaddr_in{sin_family: sa_family_t(2), sin_port: in_port_t(65535)} + var sa1 uintptr + var da uintptr + // var salen socklen_t at bp+88, 4 + + var dalen socklen_t + if family == 10 { + Xmemcpy(tls, bp+8, buf+uintptr(i)*28+8, uint64(16)) + da = bp /* &da6 */ + dalen = socklen_t(unsafe.Sizeof(sockaddr_in6{})) + sa1 = bp + 28 /* &sa6 */ + *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in6{})) + } else { + Xmemcpy(tls, bp+28+8, + ts+129, uint64(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+8, + ts+129, uint64(12)) + Xmemcpy(tls, bp+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+56+4, buf+uintptr(i)*28+8, uint64(4)) + da = bp + 56 /* &da4 */ + dalen = socklen_t(unsafe.Sizeof(sockaddr_in{})) + sa1 = bp + 72 /* &sa4 */ + *(*socklen_t)(unsafe.Pointer(bp + 88 /* salen */)) = socklen_t(unsafe.Sizeof(sockaddr_in{})) + } + var dpolicy uintptr = policyof(tls, bp+8) + var dscope int32 = scopeof(tls, bp+8) + var dlabel int32 = int32((*policy)(unsafe.Pointer(dpolicy)).label) + var dprec int32 = int32((*policy)(unsafe.Pointer(dpolicy)).prec) + var prefixlen int32 = 0 + var fd int32 = Xsocket(tls, family, 2|02000000, 17) + if fd >= 0 { + if !(Xconnect(tls, fd, da, dalen) != 0) { + key = key | 0x40000000 + if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) { + if family == 2 { + Xmemcpy(tls, + bp+28+8+uintptr(12), + bp+72+4, uint64(4)) + } + if dscope == scopeof(tls, bp+28+8) { + key = key | 0x20000000 + } + if dlabel == labelof(tls, bp+28+8) { + key = key | 0x10000000 + } + prefixlen = prefixmatch(tls, bp+28+8, + bp+8) + } + } + Xclose(tls, fd) + } + key = key | dprec<<20 + key = key | (15-dscope)<<16 + key = key | prefixlen<<8 + key = key | (48-i)<<0 + (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key + } + Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct { + f func(*TLS, uintptr, uintptr) int32 + }{addrcmp}))) + + //TODO pthread_setcancelstate(cs, 0); + + return cnt +} + +func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */ + bp := tls.Alloc(8) + defer tls.Free(8) + + var line [128]int8 + _ = line + var cnt int32 = 0 + var p uintptr + _ = p + *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 54 /* "" */ + var port uint64 = uint64(0) + + switch socktype { + case 1: + switch proto { + case 0: + proto = 6 + fallthrough + case 6: + break + default: + return -8 + } + break + case 2: + switch proto { + case 0: + proto = 17 + fallthrough + case 17: + break + default: + return -8 + } + fallthrough + case 0: + break + default: + if name != 0 { + return -8 + } + (*service)(unsafe.Pointer(buf)).port = uint16_t(0) + (*service)(unsafe.Pointer(buf)).proto = uint8(proto) + (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype) + return 1 + } + + if name != 0 { + if !(int32(*(*int8)(unsafe.Pointer(name))) != 0) { + return -8 + } + port = Xstrtoul(tls, name, bp, 10) + } + if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) { + if port > uint64(65535) { + return -8 + } + if proto != 17 { + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1) + (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6) + } + if proto != 6 { + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) + (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2) + (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17) + } + return cnt + } + + if flags&0x400 != 0 { + return -2 + } + + var l size_t = Xstrlen(tls, name) + _ = l + + Xabort(tls) //TODO- + // unsigned char _buf[1032]; + // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); + // if (!f) switch (errno) { + // case ENOENT: + // case ENOTDIR: + // case EACCES: + // return EAI_SERVICE; + // default: + // return EAI_SYSTEM; + // } + + Xabort(tls) //TODO- + // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) { + // if ((p=strchr(line, '#'))) *p++='\n', *p=0; + + // /* Find service name */ + // for(p=line; (p=strstr(p, name)); p++) { + // if (p>line && !isspace(p[-1])) continue; + // if (p[l] && !isspace(p[l])) continue; + // break; + // } + // if (!p) continue; + + // /* Skip past canonical name at beginning of line */ + // for (p=line; *p && !isspace(*p); p++); + + // port = strtoul(p, &z, 10); + // if (port > 65535 || z==p) continue; + // if (!strncmp(z, "/udp", 4)) { + // if (proto == IPPROTO_TCP) continue; + // buf[cnt].port = port; + // buf[cnt].socktype = SOCK_DGRAM; + // buf[cnt++].proto = IPPROTO_UDP; + // } + // if (!strncmp(z, "/tcp", 4)) { + // if (proto == IPPROTO_UDP) continue; + // buf[cnt].port = port; + // buf[cnt].socktype = SOCK_STREAM; + // buf[cnt++].proto = IPPROTO_TCP; + // } + // } + // __fclose_ca(f); + // return cnt > 0 ? cnt : EAI_SERVICE; + Xabort(tls) + return int32(0) //TODO- +} + +func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */ + *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1 + if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase { + (*struct { + f func(*TLS, uintptr, uintptr, size_t) size_t + })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0)) + } + (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0))) + if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 { + *(*uint32)(unsafe.Pointer(f)) |= uint32(32) + return -1 + } + (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size)) + if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 { + return -1 + } + return 0 +} + +func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */ + X__builtin_abort(tls) //TODO- + // __stdio_exit_needed(); +} + +// This function assumes it will never be called if there is already +// data buffered for reading. + +func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ + bp := tls.Alloc(1) + defer tls.Free(1) + + // var c uint8 at bp, 1 + + if !(X__toread(tls, f) != 0) && (*struct { + f func(*TLS, uintptr, uintptr, size_t) size_t + })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) { + return int32(*(*uint8)(unsafe.Pointer(bp))) + } + return -1 +} + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + +func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ + bp := tls.Alloc(232) + defer tls.Free(232) + + // var f FILE at bp, 232 + + (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) + (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y float64 = X__floatscan(tls, bp, prec, 1) + var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1 + if p != 0 { + *(*uintptr)(unsafe.Pointer(p)) = func() uintptr { + if cnt != 0 { + return s + uintptr(cnt) + } + return s + }() + } + return y +} + +func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */ + return float32(strtox(tls, s, p, 0)) +} + +func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */ + return strtox(tls, s, p, 1) +} + +func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */ + return strtox(tls, s, p, 2) +} + +func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */ + bp := tls.Alloc(232) + defer tls.Free(232) + + // var f FILE at bp, 232 + + (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) + (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) + X__shlim(tls, bp, int64(0)) + var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim) + if p != 0 { + var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1) + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) + } + return y +} + +func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */ + return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)) +} + +func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */ + return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1)))) +} + +func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */ + return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))) +} + +func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */ + return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1)))) +} + +func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */ + return intmax_t(Xstrtoll(tls, s, p, base)) +} + +func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */ + return uintmax_t(Xstrtoull(tls, s, p, base)) +} + +func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */ + var l size_t = Xstrlen(tls, s) + var d uintptr = Xmalloc(tls, l+uint64(1)) + if !(d != 0) { + return uintptr(0) + } + return Xmemcpy(tls, d, s, l+uint64(1)) +} + +func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */ + var p uintptr = Xmemchr(tls, s, 0, n) + if p != 0 { + return uint64((int64(p) - int64(s)) / 1) + } + return n +} + +func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */ + bp := tls.Alloc(32) + defer tls.Free(32) + + var a uintptr = s + *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)} + + if !(int32(*(*int8)(unsafe.Pointer(c))) != 0) { + return uint64(0) + } + if !(int32(*(*int8)(unsafe.Pointer(c + 1))) != 0) { + for ; int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(c))); s++ { + } + return size_t((int64(s) - int64(a)) / 1) + } + + for ; *(*int8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ { + } + for ; *(*int8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ { + } + return size_t((int64(s) - int64(a)) / 1) +} + +func init() { + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_CurrentRuneLocale)) + 0)) = uintptr(unsafe.Pointer(&X_DefaultRuneLocale)) // table.cpp.c:4092:41: +} + +var ts1 = "RuneMagi\x00NONE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data diff --git a/vendor/modernc.org/libc/musl_windows_386.go b/vendor/modernc.org/libc/musl_windows_386.go index 24c5b2408..f802d13d5 100644 --- a/vendor/modernc.org/libc/musl_windows_386.go +++ b/vendor/modernc.org/libc/musl_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_386.go -pkgname libc -static-locals-prefix _s -Iarch/i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT. +// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_386.go -pkgname libc -static-locals-prefix _s -Iarch\i386 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/stdlib/bsearch.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT. package libc @@ -863,32 +863,32 @@ type mode_t = uint32 /* alltypes.h:175:18 */ type syscall_arg_t = int32 /* syscall.h:22:14 */ func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:2:19: */ - panic(`arch/i386/atomic_arch.h:4:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:4:2: assembler statements not supported`) return t } func a_and(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:29:20: */ - panic(`arch/i386/atomic_arch.h:31:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:31:2: assembler statements not supported`) } func a_or(tls *TLS, p uintptr, v int32) { /* atomic_arch.h:37:20: */ - panic(`arch/i386/atomic_arch.h:39:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:39:2: assembler statements not supported`) } func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:87:19: */ var r int32 - panic(`arch/i386/atomic_arch.h:90:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:90:2: assembler statements not supported`) return r } func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:96:19: */ var r int32 - panic(`arch/i386/atomic_arch.h:99:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:99:2: assembler statements not supported`) return r } func a_clz_32(tls *TLS, x uint32_t) int32 { /* atomic_arch.h:104:19: */ - panic(`arch/i386/atomic_arch.h:106:2: assembler statements not supported`) + panic(`arch\i386\atomic_arch.h:106:2: assembler statements not supported`) return int32(x) } @@ -917,7 +917,7 @@ type __timer = struct { func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */ var self uintptr - panic(`arch/i386/pthread_arch.h:4:2: assembler statements not supported`) + panic(`arch\i386\pthread_arch.h:4:2: assembler statements not supported`) return self } @@ -1039,6 +1039,26 @@ func Xwcstombs(tls *TLS, s uintptr, ws uintptr, n size_t) size_t { /* wcstombs.c return Xwcsrtombs(tls, s, bp, n, uintptr(0)) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > size_t(0) { + try = base + uintptr(width*(nel/size_t(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / size_t(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/size_t(2) + size_t(1)) + } else { + return try + } + } + return uintptr(0) +} + // Support signed or unsigned plain-char // Implementation choices... diff --git a/vendor/modernc.org/libc/musl_windows_amd64.go b/vendor/modernc.org/libc/musl_windows_amd64.go index fd7eb8b08..d586fb8be 100644 --- a/vendor/modernc.org/libc/musl_windows_amd64.go +++ b/vendor/modernc.org/libc/musl_windows_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_amd64.go -pkgname libc -static-locals-prefix _s -Iarch\x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT. +// Code generated by 'ccgo -D__environ=environ -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_windows_amd64.go -pkgname libc -static-locals-prefix _s -Iarch\x86_64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isspace.c src/ctype/isxdigit.c src/env/putenv.c src/env/setenv.c src/env/unsetenv.c src/multibyte/wcrtomb.c src/multibyte/wcsrtombs.c src/multibyte/wcstombs.c src/stdlib/bsearch.c src/string/strchrnul.c src/string/strdup.c', DO NOT EDIT. package libc @@ -1062,6 +1062,26 @@ func Xwcstombs(tls *TLS, s uintptr, ws uintptr, n size_t) size_t { /* wcstombs.c return Xwcsrtombs(tls, s, bp, n, uintptr(0)) } +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ + var try uintptr + var sign int32 + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*struct { + f func(*TLS, uintptr, uintptr) int32 + })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) + if sign < 0 { + nel = nel / uint64(2) + } else if sign > 0 { + base = try + uintptr(width) + nel = nel - (nel/uint64(2) + uint64(1)) + } else { + return try + } + } + return uintptr(0) +} + // Support signed or unsigned plain-char // Implementation choices... diff --git a/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go b/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go index a750f5283..c6ed35017 100644 --- a/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/netdb/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package netdb -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go index 96c1abeec..32d21c6db 100644 --- a/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/netdb/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package netdb -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/netdb/capi_freebsd_386.go b/vendor/modernc.org/libc/netdb/capi_freebsd_386.go new file mode 100644 index 000000000..2b38819be --- /dev/null +++ b/vendor/modernc.org/libc/netdb/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_386.go -pkgname netdb', DO NOT EDIT. + +package netdb + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go b/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go new file mode 100644 index 000000000..469ccd5c4 --- /dev/null +++ b/vendor/modernc.org/libc/netdb/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_openbsd_amd64.go -pkgname netdb', DO NOT EDIT. + +package netdb + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go b/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go index d86f4e376..af8adaab1 100644 --- a/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go +++ b/vendor/modernc.org/libc/netdb/netdb_darwin_amd64.go @@ -667,7 +667,6 @@ const ( X_FORTIFY_SOURCE = 2 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_I386__ENDIAN_H_ = 0 X_I386__PARAM_H_ = 0 @@ -678,7 +677,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -721,7 +719,6 @@ const ( X_SOCKLEN_T = 0 X_SSIZE_T = 0 X_SS_MAXSIZE = 128 - X_STDINT_H_ = 0 X_STRUCT_IOVEC = 0 X_SUSECONDS_T = 0 X_SYS_SOCKET_H_ = 0 @@ -731,11 +728,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -771,6 +763,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2009 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -968,6 +962,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -2070,420 +2071,87 @@ type User_off_t = Int64_t /* types.h:103:33 */ type Syscall_arg_t = U_int64_t /* types.h:111:33 */ type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +type Uint32_t = uint32 /* stdint.h:172:25 */ -// from ISO/IEC 988:1999 spec +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// prevent glibc sys/types.h from defining conflicting types -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// C99 7.18.4 Macros for minimum-width integer constants. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// The standard requires that integer constant macros be defined for all the +// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width +// types are required, the corresponding integer constant macros are defined +// here. This implementation also defines minimum-width types for every other +// integer width that the target implements, so corresponding macros are +// defined below, too. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// These macros are defined using the same successive-shrinking approach as +// the type definitions above. It is likewise important that macros are defined +// in order of decending width. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. +// C99 7.18.2.1 Limits of exact-width integer types. +// C99 7.18.2.2 Limits of minimum-width integer types. +// C99 7.18.2.3 Limits of fastest minimum-width integer types. // -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - +// The presence of limit macros are completely optional in C99. This +// implementation defines limits for all of the types (exact- and +// minimum-width) that it defines above, using the limits of the minimum-width +// type for any types that do not have exact-width representations. // -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. +// As in the type definitions, this section takes an approach of +// successive-shrinking to determine which limits to use for the standard (8, +// 16, 32, 64) bit widths when they don't have exact representations. It is +// therefore important that the definitions be kept in order of decending +// widths. // +// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -// 7.18.2.2 Limits of minimum-width integer types +// Some utility macros -// 7.18.2.3 Limits of fastest minimum-width integer types +// C99 7.18.2.4 Limits of integer types capable of holding object pointers. +// C99 7.18.3 Limits of other integer types. -// 7.18.2.4 Limits of integer types capable of holding object pointers +// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ +// is enabled. -// 7.18.2.5 Limits of greatest-width integer types +// C99 7.18.2.5 Limits of greatest-width integer types. -// 7.18.3 "Other" +// C99 7.18.3 Limits of other integer types. -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. +// 7.18.4.2 Macros for greatest-width integer constants. // Copyright (c) 2000-2018 Apple Inc. All rights reserved. // @@ -2596,6 +2264,13 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +//===---- stdint.h - Standard header for sized integer types --------------===* * +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// \*===----------------------------------------------------------------------=== + // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -2723,15 +2398,6 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go index 843dc223b..c7eb6736a 100644 --- a/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go +++ b/vendor/modernc.org/libc/netdb/netdb_darwin_arm64.go @@ -716,7 +716,6 @@ const ( X_FORTIFY_SOURCE = 2 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_ID_T = 0 X_INO64_T = 0 @@ -725,7 +724,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -768,7 +766,6 @@ const ( X_SOCKLEN_T = 0 X_SSIZE_T = 0 X_SS_MAXSIZE = 128 - X_STDINT_H_ = 0 X_STRUCT_IOVEC = 0 X_SUSECONDS_T = 0 X_SYS_SOCKET_H_ = 0 @@ -778,11 +775,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -818,6 +810,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2009 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -1015,6 +1009,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -2056,420 +2057,87 @@ type User_off_t = Int64_t /* types.h:83:33 */ type Syscall_arg_t = U_int64_t /* types.h:104:33 */ type Socklen_t = X__darwin_socklen_t /* _socklen_t.h:31:33 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +type Uint32_t = uint32 /* stdint.h:172:25 */ -// from ISO/IEC 988:1999 spec +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// prevent glibc sys/types.h from defining conflicting types -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// C99 7.18.4 Macros for minimum-width integer constants. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// The standard requires that integer constant macros be defined for all the +// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width +// types are required, the corresponding integer constant macros are defined +// here. This implementation also defines minimum-width types for every other +// integer width that the target implements, so corresponding macros are +// defined below, too. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// These macros are defined using the same successive-shrinking approach as +// the type definitions above. It is likewise important that macros are defined +// in order of decending width. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. +// C99 7.18.2.1 Limits of exact-width integer types. +// C99 7.18.2.2 Limits of minimum-width integer types. +// C99 7.18.2.3 Limits of fastest minimum-width integer types. // -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - +// The presence of limit macros are completely optional in C99. This +// implementation defines limits for all of the types (exact- and +// minimum-width) that it defines above, using the limits of the minimum-width +// type for any types that do not have exact-width representations. // -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. +// As in the type definitions, this section takes an approach of +// successive-shrinking to determine which limits to use for the standard (8, +// 16, 32, 64) bit widths when they don't have exact representations. It is +// therefore important that the definitions be kept in order of decending +// widths. // +// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -// 7.18.2.2 Limits of minimum-width integer types +// Some utility macros -// 7.18.2.3 Limits of fastest minimum-width integer types +// C99 7.18.2.4 Limits of integer types capable of holding object pointers. +// C99 7.18.3 Limits of other integer types. -// 7.18.2.4 Limits of integer types capable of holding object pointers +// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ +// is enabled. -// 7.18.2.5 Limits of greatest-width integer types +// C99 7.18.2.5 Limits of greatest-width integer types. -// 7.18.3 "Other" +// C99 7.18.3 Limits of other integer types. -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. +// 7.18.4.2 Macros for greatest-width integer constants. // Copyright (c) 2000-2018 Apple Inc. All rights reserved. // @@ -2556,6 +2224,13 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +//===---- stdint.h - Standard header for sized integer types --------------===* * +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// \*===----------------------------------------------------------------------=== + // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -2706,15 +2381,6 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go b/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go new file mode 100644 index 000000000..df61f9fe6 --- /dev/null +++ b/vendor/modernc.org/libc/netdb/netdb_freebsd_386.go @@ -0,0 +1,713 @@ +// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_freebsd_386.go -pkgname netdb', DO NOT EDIT. + +package netdb + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AI_ADDRCONFIG = 0x00000400 + AI_ALL = 0x00000100 + AI_CANONNAME = 0x00000002 + AI_DEFAULT = 1536 + AI_MASK = 3343 + AI_NUMERICHOST = 0x00000004 + AI_NUMERICSERV = 0x00000008 + AI_PASSIVE = 0x00000001 + AI_V4MAPPED = 0x00000800 + AI_V4MAPPED_CFG = 0x00000200 + EAI_AGAIN = 2 + EAI_BADFLAGS = 3 + EAI_BADHINTS = 12 + EAI_FAIL = 4 + EAI_FAMILY = 5 + EAI_MAX = 15 + EAI_MEMORY = 6 + EAI_NONAME = 8 + EAI_OVERFLOW = 14 + EAI_PROTOCOL = 13 + EAI_SERVICE = 9 + EAI_SOCKTYPE = 10 + EAI_SYSTEM = 11 + HOST_NOT_FOUND = 1 + IPPORT_RESERVED = 1024 + NETDB_INTERNAL = -1 + NETDB_SUCCESS = 0 + NI_DGRAM = 0x00000010 + NI_MAXHOST = 1025 + NI_MAXSERV = 32 + NI_NAMEREQD = 0x00000004 + NI_NOFQDN = 0x00000001 + NI_NUMERICHOST = 0x00000002 + NI_NUMERICSCOPE = 0x00000020 + NI_NUMERICSERV = 0x00000008 + NO_ADDRESS = 4 + NO_DATA = 4 + NO_RECOVERY = 3 + SCOPE_DELIMITER = 37 + TRY_AGAIN = 2 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_NETDB_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PATH_HEQUIV = "/etc/hosts.equiv" + X_PATH_HOSTS = "/etc/hosts" + X_PATH_NETWORKS = "/etc/networks" + X_PATH_PROTOCOLS = "/etc/protocols" + X_PATH_SERVICES = "/etc/services" + X_PATH_SERVICES_DB = "/var/db/services.db" + X_SIZE_T_DECLARED = 0 + X_SOCKLEN_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_UINT32_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: (BSD-3-Clause AND ISC) +// +// Copyright (c) 1980, 1983, 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// - +// Portions Copyright (c) 1993 by Digital Equipment Corporation. +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies, and that +// the name of Digital Equipment Corporation not be used in advertising or +// publicity pertaining to distribution of the document or software without +// specific, written prior permission. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL +// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT +// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +// SOFTWARE. +// - +// --Copyright-- + +// @(#)netdb.h 8.1 (Berkeley) 6/2/93 +// From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $ +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type In_addr_t = X__uint32_t /* netdb.h:66:20 */ + +type In_port_t = X__uint16_t /* netdb.h:71:20 */ + +type Socklen_t = X__socklen_t /* netdb.h:81:21 */ + +type Uint32_t = X__uint32_t /* netdb.h:86:20 */ + +// Structures returned by network data base library. All addresses are +// supplied in host order, and returned in network order (suitable for +// use in system calls). +type Hostent = struct { + Fh_name uintptr + Fh_aliases uintptr + Fh_addrtype int32 + Fh_length int32 + Fh_addr_list uintptr +} /* netdb.h:106:1 */ + +type Netent = struct { + Fn_name uintptr + Fn_aliases uintptr + Fn_addrtype int32 + Fn_net Uint32_t +} /* netdb.h:115:1 */ + +type Servent = struct { + Fs_name uintptr + Fs_aliases uintptr + Fs_port int32 + Fs_proto uintptr +} /* netdb.h:122:1 */ + +type Protoent = struct { + Fp_name uintptr + Fp_aliases uintptr + Fp_proto int32 +} /* netdb.h:129:1 */ + +type Addrinfo = struct { + Fai_flags int32 + Fai_family int32 + Fai_socktype int32 + Fai_protocol int32 + Fai_addrlen Socklen_t + Fai_canonname uintptr + Fai_addr uintptr + Fai_next uintptr +} /* netdb.h:135:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go b/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go new file mode 100644 index 000000000..ff758d6d0 --- /dev/null +++ b/vendor/modernc.org/libc/netdb/netdb_openbsd_amd64.go @@ -0,0 +1,1478 @@ +// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_openbsd_amd64.go -pkgname netdb', DO NOT EDIT. + +package netdb + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AI_ADDRCONFIG = 64 + AI_CANONNAME = 2 + AI_EXT = 8 + AI_FQDN = 32 + AI_MASK = 119 + AI_NUMERICHOST = 4 + AI_NUMERICSERV = 16 + AI_PASSIVE = 1 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + EAI_ADDRFAMILY = -9 + EAI_AGAIN = -3 + EAI_BADFLAGS = -1 + EAI_BADHINTS = -12 + EAI_FAIL = -4 + EAI_FAMILY = -6 + EAI_MEMORY = -10 + EAI_NODATA = -5 + EAI_NONAME = -2 + EAI_OVERFLOW = -14 + EAI_PROTOCOL = -13 + EAI_SERVICE = -8 + EAI_SOCKTYPE = -7 + EAI_SYSTEM = -11 + ERRSET_FAIL = 2 + ERRSET_INVAL = 3 + ERRSET_NODATA = 5 + ERRSET_NOMEMORY = 1 + ERRSET_NONAME = 4 + ERRSET_SUCCESS = 0 + HOST_NOT_FOUND = 1 + ICMP6_FILTER = 18 + INET6_ADDRSTRLEN = 46 + INET_ADDRSTRLEN = 16 + IN_CLASSA_MAX = 128 + IN_CLASSA_NSHIFT = 24 + IN_CLASSB_MAX = 65536 + IN_CLASSB_NSHIFT = 16 + IN_CLASSC_NSHIFT = 8 + IN_CLASSD_NSHIFT = 28 + IN_LOOPBACKNET = 127 + IN_RFC3021_NSHIFT = 31 + IPCTL_ARPDOWN = 40 + IPCTL_ARPQUEUE = 41 + IPCTL_ARPQUEUED = 36 + IPCTL_ARPTIMEOUT = 39 + IPCTL_DEFTTL = 3 + IPCTL_DIRECTEDBCAST = 6 + IPCTL_ENCDEBUG = 12 + IPCTL_FORWARDING = 1 + IPCTL_IFQUEUE = 30 + IPCTL_IPPORT_FIRSTAUTO = 7 + IPCTL_IPPORT_HIFIRSTAUTO = 9 + IPCTL_IPPORT_HILASTAUTO = 10 + IPCTL_IPPORT_LASTAUTO = 8 + IPCTL_IPPORT_MAXQUEUE = 11 + IPCTL_IPSEC_ALLOCATIONS = 18 + IPCTL_IPSEC_AUTH_ALGORITHM = 26 + IPCTL_IPSEC_BYTES = 20 + IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT = 15 + IPCTL_IPSEC_ENC_ALGORITHM = 25 + IPCTL_IPSEC_EXPIRE_ACQUIRE = 14 + IPCTL_IPSEC_FIRSTUSE = 24 + IPCTL_IPSEC_IPCOMP_ALGORITHM = 29 + IPCTL_IPSEC_REQUIRE_PFS = 16 + IPCTL_IPSEC_SOFT_ALLOCATIONS = 17 + IPCTL_IPSEC_SOFT_BYTES = 19 + IPCTL_IPSEC_SOFT_FIRSTUSE = 23 + IPCTL_IPSEC_SOFT_TIMEOUT = 22 + IPCTL_IPSEC_STATS = 13 + IPCTL_IPSEC_TIMEOUT = 21 + IPCTL_MAXID = 42 + IPCTL_MFORWARDING = 31 + IPCTL_MRTMFC = 37 + IPCTL_MRTPROTO = 34 + IPCTL_MRTSTATS = 35 + IPCTL_MRTVIF = 38 + IPCTL_MTUDISC = 27 + IPCTL_MTUDISCTIMEOUT = 28 + IPCTL_MULTIPATH = 32 + IPCTL_SENDREDIRECTS = 2 + IPCTL_SOURCEROUTE = 5 + IPCTL_STATS = 33 + IPPORT_HIFIRSTAUTO = 49152 + IPPORT_HILASTAUTO = 65535 + IPPORT_RESERVED = 1024 + IPPORT_USERRESERVED = 49151 + IPPROTO_AH = 51 + IPPROTO_CARP = 112 + IPPROTO_DIVERT = 258 + IPPROTO_DONE = 257 + IPPROTO_DSTOPTS = 60 + IPPROTO_EGP = 8 + IPPROTO_ENCAP = 98 + IPPROTO_EON = 80 + IPPROTO_ESP = 50 + IPPROTO_ETHERIP = 97 + IPPROTO_FRAGMENT = 44 + IPPROTO_GGP = 3 + IPPROTO_GRE = 47 + IPPROTO_HOPOPTS = 0 + IPPROTO_ICMP = 1 + IPPROTO_ICMPV6 = 58 + IPPROTO_IDP = 22 + IPPROTO_IGMP = 2 + IPPROTO_IP = 0 + IPPROTO_IPCOMP = 108 + IPPROTO_IPIP = 4 + IPPROTO_IPV4 = 4 + IPPROTO_IPV6 = 41 + IPPROTO_MAX = 256 + IPPROTO_MAXID = 259 + IPPROTO_MOBILE = 55 + IPPROTO_MPLS = 137 + IPPROTO_NONE = 59 + IPPROTO_PFSYNC = 240 + IPPROTO_PIM = 103 + IPPROTO_PUP = 12 + IPPROTO_RAW = 255 + IPPROTO_ROUTING = 43 + IPPROTO_RSVP = 46 + IPPROTO_SCTP = 132 + IPPROTO_TCP = 6 + IPPROTO_TP = 29 + IPPROTO_UDP = 17 + IPPROTO_UDPLITE = 136 + IPSEC6_OUTSA = 56 + IPSEC_AUTH_LEVEL_DEFAULT = 1 + IPSEC_ESP_NETWORK_LEVEL_DEFAULT = 1 + IPSEC_ESP_TRANS_LEVEL_DEFAULT = 1 + IPSEC_IPCOMP_LEVEL_DEFAULT = 1 + IPSEC_LEVEL_AVAIL = 0x01 + IPSEC_LEVEL_BYPASS = 0x00 + IPSEC_LEVEL_DEFAULT = 1 + IPSEC_LEVEL_NONE = 0x00 + IPSEC_LEVEL_REQUIRE = 0x03 + IPSEC_LEVEL_UNIQUE = 0x04 + IPSEC_LEVEL_USE = 0x02 + IPV6CTL_ACCEPT_RTADV = 12 + IPV6CTL_AUTO_FLOWLABEL = 17 + IPV6CTL_DAD_COUNT = 16 + IPV6CTL_DAD_PENDING = 49 + IPV6CTL_DEFHLIM = 3 + IPV6CTL_DEFMCASTHLIM = 18 + IPV6CTL_FORWARDING = 1 + IPV6CTL_FORWSRCRT = 5 + IPV6CTL_HDRNESTLIMIT = 15 + IPV6CTL_IFQUEUE = 51 + IPV6CTL_LOG_INTERVAL = 14 + IPV6CTL_MAXDYNROUTES = 48 + IPV6CTL_MAXFRAGPACKETS = 9 + IPV6CTL_MAXFRAGS = 41 + IPV6CTL_MAXID = 55 + IPV6CTL_MCAST_PMTU = 44 + IPV6CTL_MFORWARDING = 42 + IPV6CTL_MRTMFC = 53 + IPV6CTL_MRTMIF = 52 + IPV6CTL_MRTPROTO = 8 + IPV6CTL_MRTSTATS = 7 + IPV6CTL_MTUDISCTIMEOUT = 50 + IPV6CTL_MULTIPATH = 43 + IPV6CTL_NEIGHBORGCTHRESH = 45 + IPV6CTL_SENDREDIRECTS = 2 + IPV6CTL_SOIIKEY = 54 + IPV6CTL_SOURCECHECK = 10 + IPV6CTL_SOURCECHECK_LOGINT = 11 + IPV6CTL_STATS = 6 + IPV6CTL_USE_DEPRECATED = 21 + IPV6PROTO_MAXID = 259 + IPV6_AUTH_LEVEL = 53 + IPV6_AUTOFLOWLABEL = 59 + IPV6_CHECKSUM = 26 + IPV6_DEFAULT_MULTICAST_HOPS = 1 + IPV6_DEFAULT_MULTICAST_LOOP = 1 + IPV6_DONTFRAG = 62 + IPV6_DSTOPTS = 50 + IPV6_ESP_NETWORK_LEVEL = 55 + IPV6_ESP_TRANS_LEVEL = 54 + IPV6_HOPLIMIT = 47 + IPV6_HOPOPTS = 49 + IPV6_IPCOMP_LEVEL = 60 + IPV6_JOIN_GROUP = 12 + IPV6_LEAVE_GROUP = 13 + IPV6_MINHOPCOUNT = 65 + IPV6_MULTICAST_HOPS = 10 + IPV6_MULTICAST_IF = 9 + IPV6_MULTICAST_LOOP = 11 + IPV6_NEXTHOP = 48 + IPV6_PATHMTU = 44 + IPV6_PIPEX = 63 + IPV6_PKTINFO = 46 + IPV6_PORTRANGE = 14 + IPV6_PORTRANGE_DEFAULT = 0 + IPV6_PORTRANGE_HIGH = 1 + IPV6_PORTRANGE_LOW = 2 + IPV6_RECVDSTOPTS = 40 + IPV6_RECVDSTPORT = 64 + IPV6_RECVHOPLIMIT = 37 + IPV6_RECVHOPOPTS = 39 + IPV6_RECVPATHMTU = 43 + IPV6_RECVPKTINFO = 36 + IPV6_RECVRTHDR = 38 + IPV6_RECVTCLASS = 57 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 51 + IPV6_RTHDRDSTOPTS = 35 + IPV6_RTHDR_LOOSE = 0 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_TCLASS = 61 + IPV6_UNICAST_HOPS = 4 + IPV6_USE_MIN_MTU = 42 + IPV6_V6ONLY = 27 + IP_ADD_MEMBERSHIP = 12 + IP_AUTH_LEVEL = 20 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DROP_MEMBERSHIP = 13 + IP_ESP_NETWORK_LEVEL = 22 + IP_ESP_TRANS_LEVEL = 21 + IP_HDRINCL = 2 + IP_IPCOMP_LEVEL = 29 + IP_IPDEFTTL = 37 + IP_IPSECFLOWINFO = 36 + IP_IPSEC_LOCAL_AUTH = 27 + IP_IPSEC_LOCAL_CRED = 25 + IP_IPSEC_LOCAL_ID = 23 + IP_IPSEC_REMOTE_AUTH = 28 + IP_IPSEC_REMOTE_CRED = 26 + IP_IPSEC_REMOTE_ID = 24 + IP_MAX_MEMBERSHIPS = 4095 + IP_MINTTL = 32 + IP_MIN_MEMBERSHIPS = 15 + IP_MULTICAST_IF = 9 + IP_MULTICAST_LOOP = 11 + IP_MULTICAST_TTL = 10 + IP_OPTIONS = 1 + IP_PIPEX = 34 + IP_PORTRANGE = 19 + IP_PORTRANGE_DEFAULT = 0 + IP_PORTRANGE_HIGH = 1 + IP_PORTRANGE_LOW = 2 + IP_RECVDSTADDR = 7 + IP_RECVDSTPORT = 33 + IP_RECVIF = 30 + IP_RECVOPTS = 5 + IP_RECVRETOPTS = 6 + IP_RECVRTABLE = 35 + IP_RECVTTL = 31 + IP_RETOPTS = 8 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 7 + IP_TOS = 3 + IP_TTL = 4 + LITTLE_ENDIAN = 1234 + NETDB_INTERNAL = -1 + NETDB_SUCCESS = 0 + NI_DGRAM = 16 + NI_MAXHOST = 256 + NI_MAXSERV = 32 + NI_NAMEREQD = 8 + NI_NOFQDN = 4 + NI_NUMERICHOST = 1 + NI_NUMERICSERV = 2 + NO_ADDRESS = 4 + NO_DATA = 4 + NO_RECOVERY = 3 + PDP_ENDIAN = 3412 + RRSET_VALIDATED = 1 + SCOPE_DELIMITER = 37 + SIN6_LEN = 0 + TRY_AGAIN = 2 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_IN_ADDR_DECLARED = 0 + X_IN_TYPES_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_NETDB_H_ = 0 + X_NETINET6_IN6_H_ = 0 + X_NETINET_IN_H_ = 0 + X_OFF_T_DEFINED_ = 0 + X_PATH_HEQUIV = "/etc/hosts.equiv" + X_PATH_HOSTS = "/etc/hosts" + X_PATH_NETWORKS = "/etc/networks" + X_PATH_PROTOCOLS = "/etc/protocols" + X_PATH_SERVICES = "/etc/services" + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SA_FAMILY_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SOCKLEN_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: netdb.h,v 1.33 2015/01/18 20:29:31 deraadt Exp $ + +// ++Copyright++ 1980, 1983, 1988, 1993 +// - +// Copyright (c) 1980, 1983, 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// - +// Portions Copyright (c) 1993 by Digital Equipment Corporation. +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies, and that +// the name of Digital Equipment Corporation not be used in advertising or +// publicity pertaining to distribution of the document or software without +// specific, written prior permission. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL +// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT +// CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +// DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +// PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +// SOFTWARE. +// - +// --Copyright-- + +// Copyright (c) 1995, 1996, 1997, 1998, 1999 Craig Metz. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the author nor the names of any contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// @(#)netdb.h 8.1 (Berkeley) 6/2/93 +// $From: netdb.h,v 8.7 1996/05/09 05:59:09 vixie Exp $ + +// $OpenBSD: in.h,v 1.141 2021/06/02 00:09:57 dlg Exp $ +// $NetBSD: in.h,v 1.20 1996/02/13 23:41:47 christos Exp $ + +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Constants and structures defined by the internet system, +// Per RFC 790, September 1981, and numerous additions. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// <sys/_endian.h> is pulled in by <sys/types.h> + +type Sa_family_t = X__sa_family_t /* in.h:58:23 */ // sockaddr address family type + +type In_addr_t = X__in_addr_t /* in.h:63:21 */ // base type for internet address +type In_port_t = X__in_port_t /* in.h:64:21 */ // IP port type + +// Protocols + +// Only used internally, so it can be outside the range of valid IP protocols + +// From FreeBSD: +// +// Local port number conventions: +// +// When a user does a bind(2) or connect(2) with a port number of zero, +// a non-conflicting local port address is chosen. +// The default range is IPPORT_RESERVED through +// IPPORT_USERRESERVED, although that is settable by sysctl. +// +// A user may set the IPPROTO_IP option IP_PORTRANGE to change this +// default assignment range. +// +// The value IP_PORTRANGE_DEFAULT causes the default behavior. +// +// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers +// into the "high" range. These are reserved for client outbound connections +// which do not want to be filtered by any firewalls. +// +// The value IP_PORTRANGE_LOW changes the range to the "low" are +// that is (by convention) restricted to privileged processes. This +// convention is based on "vouchsafe" principles only. It is only secure +// if you trust the remote host to restrict these ports. +// +// The default range of ports and the high range can be changed by +// sysctl(3). (net.inet.ip.port{hi}{first,last}) +// +// Changing those values has bad security implications if you are +// using a a stateless firewall that is allowing packets outside of that +// range in order to allow transparent outgoing connections. +// +// Such a firewall configuration will generally depend on the use of these +// default values. If you change them, you may find your Security +// Administrator looking for you with a heavy object. + +// Ports < IPPORT_RESERVED are reserved for +// privileged processes (e.g. root). +// Ports > IPPORT_USERRESERVED are reserved +// for servers, not necessarily privileged. + +// Default local port range to use by setting IP_PORTRANGE_HIGH + +// IP Version 4 Internet address (a structure for historical reasons) +type In_addr = struct{ Fs_addr In_addr_t } /* in.h:167:1 */ + +// last return value of *_input(), meaning "all job for this pkt is done". + +// Definitions of bits in internet address integers. +// On subnets, the decomposition of addresses to host and net parts +// is done according to subnet mask, not the masks here. +// +// By byte-swapping the constants, we avoid ever having to byte-swap IP +// addresses inside the kernel. Unfortunately, user-level programs rely +// on these macros not doing byte-swapping. + +// These ones aren't really net and host fields, but routing needn't know. + +// IP Version 4 socket address. +type Sockaddr_in = struct { + Fsin_len U_int8_t + Fsin_family Sa_family_t + Fsin_port In_port_t + Fsin_addr struct{ Fs_addr In_addr_t } + Fsin_zero [8]Int8_t +} /* in.h:258:1 */ + +// Structure used to describe IP options. +// Used to store options internally, to pass them to a process, +// or to restore options retrieved earlier. +// The ip_dst is used for the first-hop gateway when using a source route +// (this gets put into the header proper). +type Ip_opts = struct { + Fip_dst struct{ Fs_addr In_addr_t } + Fip_opts [40]Int8_t +} /* in.h:273:1 */ + +// Options for use with [gs]etsockopt at the IP level. +// First word of comment is data type; bool is stored in int. +// source address to use + +// Security levels - IPsec, not IPSO + +// Defaults and limits for options +// The imo_membership vector for each socket starts at IP_MIN_MEMBERSHIPS +// and is dynamically allocated at run-time, bounded by IP_MAX_MEMBERSHIPS, +// and is reallocated when needed, sized according to a power-of-two increment. + +// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. +type Ip_mreq = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_interface struct{ Fs_addr In_addr_t } +} /* in.h:359:1 */ + +type Ip_mreqn = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_address struct{ Fs_addr In_addr_t } + Fimr_ifindex int32 +} /* in.h:364:1 */ + +// Argument for IP_PORTRANGE: +// - which range to search when port is unspecified at bind() or connect() + +// Buffer lengths for strings containing printable IP addresses + +// Definitions for inet sysctl operations. +// +// Third level is protocol number. +// Fourth level is desired variable within that protocol. + +// Names for IP sysctl objects + +// INET6 stuff +// $OpenBSD: in6.h,v 1.109 2021/06/02 00:20:50 dlg Exp $ +// $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $ + +// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the project nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)in.h 8.3 (Berkeley) 1/3/94 + +// Identification of the network protocol stack +// for *BSD-current/release: http://www.kame.net/dev/cvsweb2.cgi/kame/COVERAGE +// has the table of implementation/integration differences. + +// IPv6 address +type In6_addr = struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } +} /* in6.h:81:1 */ + +// Socket address for IPv6 +type Sockaddr_in6 = struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t +} /* in6.h:106:1 */ + +// IPv6 route structure +type Route_in6 = struct { + Fro_rt uintptr + Fro_tableid U_long + Fro_dst struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t + } + F__ccgo_pad1 [4]byte +} /* in6.h:150:1 */ + +// Definition of some useful macros to handle IP6 addresses + +// Macros started with IPV6_ADDR is KAME local + +// Unspecified + +// Loopback + +// IPv4 compatible + +// Mapped + +// Unicast Scope +// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373). + +// Multicast + +// Options for use with [gs]etsockopt at the IPV6 level. +// First word of comment is data type; bool is stored in int. + +// new socket options introduced in RFC3542 + +// More new socket options introduced in RFC3542 + +// to define items, should talk with KAME guys first, for *BSD compatibility + +// Defaults and limits for options + +// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. +type Ipv6_mreq = struct { + Fipv6mr_multiaddr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fipv6mr_interface uint32 +} /* in6.h:366:1 */ + +// IPV6_PKTINFO: Packet information(RFC3542 sec 6) +type In6_pktinfo = struct { + Fipi6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fipi6_ifindex uint32 +} /* in6.h:374:1 */ + +// Control structure for IPV6_RECVPATHMTU socket option. +// XXX Not allowed here by POSIX, but required by RFC 3542, so go +// XXX with the code on the pavement. +type Ip6_mtuinfo = struct { + Fip6m_addr struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t + } + Fip6m_mtu U_int32_t +} /* in6.h:384:1 */ + +// Argument for IPV6_PORTRANGE: +// - which range to search when port is unspecified at bind() or connect() + +type Socklen_t = X__socklen_t /* in6.h:401:21 */ + +// Structures returned by network data base library. All addresses are +// supplied in host order, and returned in network order (suitable for +// use in system calls). +type Hostent = struct { + Fh_name uintptr + Fh_aliases uintptr + Fh_addrtype int32 + Fh_length int32 + Fh_addr_list uintptr +} /* netdb.h:108:1 */ + +// Assumption here is that a network number +// fits in an in_addr_t -- probably a poor one. +type Netent = struct { + Fn_name uintptr + Fn_aliases uintptr + Fn_addrtype int32 + Fn_net In_addr_t +} /* netdb.h:121:1 */ + +type Servent = struct { + Fs_name uintptr + Fs_aliases uintptr + Fs_port int32 + F__ccgo_pad1 [4]byte + Fs_proto uintptr +} /* netdb.h:128:1 */ + +type Protoent = struct { + Fp_name uintptr + Fp_aliases uintptr + Fp_proto int32 + F__ccgo_pad1 [4]byte +} /* netdb.h:135:1 */ + +// Error return codes from gethostbyname() and gethostbyaddr() +// (left in extern int h_errno). + +// Values for getaddrinfo() and getnameinfo() +// valid flags for addrinfo + +// #define NI_NUMERICSCOPE 32 return the scope number, not the name + +// Scope delimit character (KAME hack) + +type Addrinfo = struct { + Fai_flags int32 + Fai_family int32 + Fai_socktype int32 + Fai_protocol int32 + Fai_addrlen Socklen_t + F__ccgo_pad1 [4]byte + Fai_addr uintptr + Fai_canonname uintptr + Fai_next uintptr +} /* netdb.h:203:1 */ + +// Flags for getrrsetbyname() + +// Return codes for getrrsetbyname() + +// Structures used by getrrsetbyname() and freerrset() +type Rdatainfo = struct { + Frdi_length uint32 + F__ccgo_pad1 [4]byte + Frdi_data uintptr +} /* netdb.h:233:1 */ + +type Rrsetinfo = struct { + Frri_flags uint32 + Frri_rdclass uint32 + Frri_rdtype uint32 + Frri_ttl uint32 + Frri_nrdatas uint32 + Frri_nsigs uint32 + Frri_name uintptr + Frri_rdatas uintptr + Frri_sigs uintptr +} /* netdb.h:238:1 */ + +type Servent_data = struct { + Ffp uintptr + Faliases uintptr + Fmaxaliases int32 + Fstayopen int32 + Fline uintptr +} /* netdb.h:250:1 */ + +type Protoent_data = struct { + Ffp uintptr + Faliases uintptr + Fmaxaliases int32 + Fstayopen int32 + Fline uintptr +} /* netdb.h:258:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go index 8883b013f..afb6c70b2 100644 --- a/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/netinet/in/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package in -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go index 0363e2c89..288850f1a 100644 --- a/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/netinet/in/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package in -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go b/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go new file mode 100644 index 000000000..7b47f01a5 --- /dev/null +++ b/vendor/modernc.org/libc/netinet/in/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_386.go -pkgname in', DO NOT EDIT. + +package in + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go new file mode 100644 index 000000000..802774e0c --- /dev/null +++ b/vendor/modernc.org/libc/netinet/in/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_openbsd_amd64.go -pkgname in', DO NOT EDIT. + +package in + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go b/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go index cd7efd2e3..294ff74ea 100644 --- a/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go +++ b/vendor/modernc.org/libc/netinet/in/in_darwin_amd64.go @@ -623,7 +623,6 @@ const ( X_FILE_OFFSET_BITS = 64 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_I386__ENDIAN_H_ = 0 X_I386__PARAM_H_ = 0 @@ -634,7 +633,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -671,7 +669,6 @@ const ( X_SOCKLEN_T = 0 X_SSIZE_T = 0 X_SS_MAXSIZE = 128 - X_STDINT_H_ = 0 X_STRUCT_IOVEC = 0 X_SUSECONDS_T = 0 X_SYS_SOCKET_H_ = 0 @@ -681,11 +678,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -721,6 +713,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2018 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -906,6 +900,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -1474,583 +1475,92 @@ type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_ type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: +//===---- stdint.h - Standard header for sized integer types --------------===* * +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +// \*===----------------------------------------------------------------------=== -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T +// is defined until an inclusion of it without _STD_TYPES_T occurs, in which +// case the header guard macro is defined. -// from ISO/IEC 988:1999 spec +// If we're hosted, fall back to the system's stdint.h, which might have +// additional definitions. -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int8_t = int8 /* _int8_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int16_t = int16 /* _int16_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// C99 7.18.1.1 Exact-width integer types. +// C99 7.18.1.2 Minimum-width integer types. +// C99 7.18.1.3 Fastest minimum-width integer types. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int32_t = int32 /* _int32_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// The standard requires that exact-width type be defined for 8-, 16-, 32-, and +// 64-bit types if they are implemented. Other exact width types are optional. +// This implementation defines an exact-width types for every integer width +// that is represented in the standard integer types. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// The standard also requires minimum-width types be defined for 8-, 16-, 32-, +// and 64-bit widths regardless of whether there are corresponding exact-width +// types. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// To accommodate targets that are missing types that are exactly 8, 16, 32, or +// 64 bits wide, this implementation takes an approach of cascading +// redefinitions, redefining __int_leastN_t to successively smaller exact-width +// types. It is therefore important that the types are defined in order of +// descending widths. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// We currently assume that the minimum-width types and the fastest +// minimum-width types are the same. This is allowed by the standard, but is +// suboptimal. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int64_t = int64 /* _int64_t.h:30:33 */ +// In violation of the standard, some targets do not implement a type that is +// wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). +// To accommodate these targets, a required minimum-width type is only +// defined if there exists an exact-width type of equal or greater width. -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int64_t = int64 /* stdint.h:96:24 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int32_t = int32 /* stdint.h:167:24 */ -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Uint32_t = uint32 /* stdint.h:172:25 */ -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int16_t = int16 /* stdint.h:205:24 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ -// Copyright (c) 2000-2008 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1990, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)types.h 8.3 (Berkeley) 1/5/94 +type Int8_t = int8 /* stdint.h:224:23 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// Basic integral types. Omit the typedef if -// not possible for a machine/compiler combination. -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// prevent glibc sys/types.h from defining conflicting types + +// C99 7.18.1.4 Integer types capable of holding object pointers. + +type Intptr_t = int64 /* stdint.h:249:25 */ + +type Uintptr_t = uint64 /* stdint.h:256:26 */ + +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ // Copyright (c) 2016 Apple Inc. All rights reserved. // @@ -2209,7 +1719,6 @@ type Register_t = Int64_t /* types.h:87:33 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Uintptr_t = uint64 /* _uintptr_t.h:30:33 */ // These types are used for reserving the largest possible size. type User_addr_t = U_int64_t /* types.h:97:33 */ @@ -2223,391 +1732,6 @@ type User_off_t = Int64_t /* types.h:103:33 */ // This defines the size of syscall arguments after copying into the kernel: type Syscall_arg_t = U_int64_t /* types.h:111:33 */ -type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. -// -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - -// -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. -// - -// 7.18.2.2 Limits of minimum-width integer types - -// 7.18.2.3 Limits of fastest minimum-width integer types - -// 7.18.2.4 Limits of integer types capable of holding object pointers - -// 7.18.2.5 Limits of greatest-width integer types - -// 7.18.3 "Other" - -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. - -// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. -// -// @APPLE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this -// file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_LICENSE_HEADER_END@ - -// -// These macros are for use in OS header files. They enable function prototypes -// and Objective-C methods to be tagged with the OS version in which they -// were first available; and, if applicable, the OS version in which they -// became deprecated. -// -// The desktop Mac OS X and iOS each have different version numbers. -// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop -// and iOS version numbers. For instance: -// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0) -// means the function/method was first available on Mac OS X 10.2 on the desktop -// and first available in iOS 2.0 on the iPhone. -// -// If a function is available on one platform, but not the other a _NA (not -// applicable) parameter is used. For instance: -// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA) -// means that the function/method was first available on Mac OS X 10.3, and it -// currently not implemented on the iPhone. -// -// At some point, a function/method may be deprecated. That means Apple -// recommends applications stop using the function, either because there is a -// better replacement or the functionality is being phased out. Deprecated -// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED() -// macro which specifies the OS version where the function became available -// as well as the OS version in which it became deprecated. For instance: -// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA) -// means that the function/method was introduced in Mac OS X 10.0, then -// became deprecated beginning in Mac OS X 10.5. On iOS the function -// has never been available. -// -// For these macros to function properly, a program must specify the OS version range -// it is targeting. The min OS version is specified as an option to the compiler: -// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z -// when building for the iPhone. The upper bound for the OS version is rarely needed, -// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for -// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS. -// -// Examples: -// -// A function available in Mac OS X 10.5 and later, but not on the phone: -// -// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -// -// -// An Objective-C method in Mac OS X 10.5 and later, but not on the phone: -// -// @interface MyClass : NSObject -// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -// @end -// -// -// An enum available on the phone, but not available on Mac OS X: -// -// #if __IPHONE_OS_VERSION_MIN_REQUIRED -// enum { myEnum = 1 }; -// #endif -// Note: this works when targeting the Mac OS X platform because -// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. -// -// -// An enum with values added in different iPhoneOS versions: -// -// enum { -// myX = 1, // Usable on iPhoneOS 2.1 and later -// myY = 2, // Usable on iPhoneOS 3.0 and later -// myZ = 3, // Usable on iPhoneOS 3.0 and later -// ... -// Note: you do not want to use #if with enumeration values -// when a client needs to see all values at compile time -// and use runtime logic to only use the viable values. -// -// -// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one -// source base that can be compiled to target a range of OS versions. It is best -// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values. -// That is because you might get compiled on an old OS that does not define a later -// OS version macro, and in the C preprocessor undefined values evaluate to zero -// in expresssions, which could cause the #if expression to evaluate in an unexpected -// way. -// -// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED -// // code only compiled when targeting Mac OS X and not iPhone -// // note use of 1050 instead of __MAC_10_5 -// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050 -// // code in here might run on pre-Leopard OS -// #else -// // code here can assume Leopard or later -// #endif -// #endif -// -// - -// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated -// in an upcoming release. This soft deprecation is an intermediate step before formal -// deprecation to notify developers about the API before compiler warnings are generated. -// You can find all places in your code that use soft deprecated API by redefining the -// value of this macro to your current minimum deployment target, for example: -// (macOS) -// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags> -// (iOS) -// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags> - -// __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable - -// __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable - -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. -// -// @APPLE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this -// file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_LICENSE_HEADER_END@ - -// -// File: AvailabilityInternal.h -// -// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h> -// - -// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - -// make sure a default max version is set - -// -// Macros for defining which versions/platform a given symbol can be used. -// -// @see http://clang.llvm.org/docs/AttributeReference.html#availability -// - -// Evaluate to nothing for compilers that don't support availability. - -// Swift compiler version -// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift -// Example: -// -// #if __swift_compiler_version_at_least(800, 2, 20) -// - (nonnull NSString *)description; -// #else -// - (NSString *)description; -// #endif - -// If __SPI_AVAILABLE has not been defined elsewhere, disable it. - -// for use to document app extension usage - -// for use marking APIs available info for Mac OSX - -// for use marking APIs available info for iOS - -// for use marking APIs available info for tvOS - -// for use marking APIs available info for Watch OS - -// for use marking APIs unavailable for swift - -// -// Macros for defining which versions/platform a given symbol can be used. -// -// @see http://clang.llvm.org/docs/AttributeReference.html#availability -// -// * Note that these macros are only compatible with clang compilers that -// * support the following target selection options: -// * -// * -mmacosx-version-min -// * -miphoneos-version-min -// * -mwatchos-version-min -// * -mtvos-version-min -// - -// Evaluate to nothing for compilers that don't support availability. - -// If SPI decorations have not been defined elsewhere, disable them. - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address // Copyright (c) 2003-2012 Apple Inc. All rights reserved. diff --git a/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go index 4483e3656..8347d9bec 100644 --- a/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go +++ b/vendor/modernc.org/libc/netinet/in/in_darwin_arm64.go @@ -567,7 +567,6 @@ const ( PF_XTP = 19 PTRDIFF_MAX = 9223372036854775807 PTRDIFF_MIN = -9223372036854775808 - RSIZE_MAX = 9223372036854775807 SAE_ASSOCID_ANY = 0 SAE_CONNID_ANY = 0 SCM_CREDS = 0x03 @@ -672,7 +671,6 @@ const ( X_FILE_OFFSET_BITS = 64 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_ID_T = 0 X_INO64_T = 0 @@ -681,7 +679,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -718,7 +715,6 @@ const ( X_SOCKLEN_T = 0 X_SSIZE_T = 0 X_SS_MAXSIZE = 128 - X_STDINT_H_ = 0 X_STRUCT_IOVEC = 0 X_SUSECONDS_T = 0 X_SYS_SOCKET_H_ = 0 @@ -728,11 +724,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -768,6 +759,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2018 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -853,62 +846,151 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// DO NOT EDIT THIS FILE. +//===---- stdint.h - Standard header for sized integer types --------------===* * +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// \*===----------------------------------------------------------------------=== + +// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T +// is defined until an inclusion of it without _STD_TYPES_T occurs, in which +// case the header guard macro is defined. + +// If we're hosted, fall back to the system's stdint.h, which might have +// additional definitions. + +// C99 7.18.1.1 Exact-width integer types. +// C99 7.18.1.2 Minimum-width integer types. +// C99 7.18.1.3 Fastest minimum-width integer types. // -// It has been auto-edited by fixincludes from: +// The standard requires that exact-width type be defined for 8-, 16-, 32-, and +// 64-bit types if they are implemented. Other exact width types are optional. +// This implementation defines an exact-width types for every integer width +// that is represented in the standard integer types. // -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" +// The standard also requires minimum-width types be defined for 8-, 16-, 32-, +// and 64-bit widths regardless of whether there are corresponding exact-width +// types. // -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +// To accommodate targets that are missing types that are exactly 8, 16, 32, or +// 64 bits wide, this implementation takes an approach of cascading +// redefinitions, redefining __int_leastN_t to successively smaller exact-width +// types. It is therefore important that the types are defined in order of +// descending widths. +// +// We currently assume that the minimum-width types and the fastest +// minimum-width types are the same. This is allowed by the standard, but is +// suboptimal. +// +// In violation of the standard, some targets do not implement a type that is +// wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). +// To accommodate these targets, a required minimum-width type is only +// defined if there exists an exact-width type of equal or greater width. -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +type Int64_t = int64 /* stdint.h:96:24 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// from ISO/IEC 988:1999 spec +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. +type Int32_t = int32 /* stdint.h:167:24 */ + +type Uint32_t = uint32 /* stdint.h:172:25 */ + +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ + +type Int16_t = int16 /* stdint.h:205:24 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ + +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ + +type Int8_t = int8 /* stdint.h:224:23 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ + +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ + +// prevent glibc sys/types.h from defining conflicting types + +// C99 7.18.1.4 Integer types capable of holding object pointers. + +type Intptr_t = int64 /* stdint.h:249:25 */ + +type Uintptr_t = uint64 /* stdint.h:256:26 */ + +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ + +// C99 7.18.4 Macros for minimum-width integer constants. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// The standard requires that integer constant macros be defined for all the +// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width +// types are required, the corresponding integer constant macros are defined +// here. This implementation also defines minimum-width types for every other +// integer width that the target implements, so corresponding macros are +// defined below, too. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// These macros are defined using the same successive-shrinking approach as +// the type definitions above. It is likewise important that macros are defined +// in order of decending width. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). + +// C99 7.18.2.1 Limits of exact-width integer types. +// C99 7.18.2.2 Limits of minimum-width integer types. +// C99 7.18.2.3 Limits of fastest minimum-width integer types. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// The presence of limit macros are completely optional in C99. This +// implementation defines limits for all of the types (exact- and +// minimum-width) that it defines above, using the limits of the minimum-width +// type for any types that do not have exact-width representations. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int8_t = int8 /* _int8_t.h:30:31 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// As in the type definitions, this section takes an approach of +// successive-shrinking to determine which limits to use for the standard (8, +// 16, 32, 64) bit widths when they don't have exact representations. It is +// therefore important that the definitions be kept in order of decending +// widths. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). + +// Some utility macros + +// C99 7.18.2.4 Limits of integer types capable of holding object pointers. +// C99 7.18.3 Limits of other integer types. + +// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ +// is enabled. + +// C99 7.18.2.5 Limits of greatest-width integer types. + +// C99 7.18.3 Limits of other integer types. + +// 7.18.4.2 Macros for greatest-width integer constants. + +// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. +// +// @APPLE_LICENSE_HEADER_START@ // // This file contains Original Code and/or Modifications of Original Code // as defined in and that are subject to the Apple Public Source License // Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// compliance with the License. Please obtain a copy of the License at +// http://www.opensource.apple.com/apsl/ and read it before using this +// file. // // The Original Code and all software distributed under the License are // distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER @@ -918,76 +1000,120 @@ type Int8_t = int8 /* _int8_t.h:30:31 */ // Please see the License for the specific language governing rights and // limitations under the License. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int16_t = int16 /* _int16_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// @APPLE_LICENSE_HEADER_END@ + // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// These macros are for use in OS header files. They enable function prototypes +// and Objective-C methods to be tagged with the OS version in which they +// were first available; and, if applicable, the OS version in which they +// became deprecated. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// The desktop Mac OS X and iOS each have different version numbers. +// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop +// and iOS version numbers. For instance: +// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0) +// means the function/method was first available on Mac OS X 10.2 on the desktop +// and first available in iOS 2.0 on the iPhone. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// If a function is available on one platform, but not the other a _NA (not +// applicable) parameter is used. For instance: +// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA) +// means that the function/method was first available on Mac OS X 10.3, and it +// currently not implemented on the iPhone. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// At some point, a function/method may be deprecated. That means Apple +// recommends applications stop using the function, either because there is a +// better replacement or the functionality is being phased out. Deprecated +// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED() +// macro which specifies the OS version where the function became available +// as well as the OS version in which it became deprecated. For instance: +// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA) +// means that the function/method was introduced in Mac OS X 10.0, then +// became deprecated beginning in Mac OS X 10.5. On iOS the function +// has never been available. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int32_t = int32 /* _int32_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// For these macros to function properly, a program must specify the OS version range +// it is targeting. The min OS version is specified as an option to the compiler: +// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z +// when building for the iPhone. The upper bound for the OS version is rarely needed, +// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for +// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// Examples: // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// A function available in Mac OS X 10.5 and later, but not on the phone: // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); +// +// +// An Objective-C method in Mac OS X 10.5 and later, but not on the phone: +// +// @interface MyClass : NSObject +// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); +// @end +// +// +// An enum available on the phone, but not available on Mac OS X: +// +// #if __IPHONE_OS_VERSION_MIN_REQUIRED +// enum { myEnum = 1 }; +// #endif +// Note: this works when targeting the Mac OS X platform because +// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. +// +// +// An enum with values added in different iPhoneOS versions: +// +// enum { +// myX = 1, // Usable on iPhoneOS 2.1 and later +// myY = 2, // Usable on iPhoneOS 3.0 and later +// myZ = 3, // Usable on iPhoneOS 3.0 and later +// ... +// Note: you do not want to use #if with enumeration values +// when a client needs to see all values at compile time +// and use runtime logic to only use the viable values. +// +// +// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one +// source base that can be compiled to target a range of OS versions. It is best +// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values. +// That is because you might get compiled on an old OS that does not define a later +// OS version macro, and in the C preprocessor undefined values evaluate to zero +// in expresssions, which could cause the #if expression to evaluate in an unexpected +// way. +// +// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +// // code only compiled when targeting Mac OS X and not iPhone +// // note use of 1050 instead of __MAC_10_5 +// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050 +// // code in here might run on pre-Leopard OS +// #else +// // code here can assume Leopard or later +// #endif +// #endif // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Int64_t = int64 /* _int64_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated +// in an upcoming release. This soft deprecation is an intermediate step before formal +// deprecation to notify developers about the API before compiler warnings are generated. +// You can find all places in your code that use soft deprecated API by redefining the +// value of this macro to your current minimum deployment target, for example: +// (macOS) +// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags> +// (iOS) +// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags> + +// Copyright (c) 2019 by Apple Inc.. All rights reserved. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// @APPLE_LICENSE_HEADER_START@ // // This file contains Original Code and/or Modifications of Original Code // as defined in and that are subject to the Apple Public Source License // Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// compliance with the License. Please obtain a copy of the License at +// http://www.opensource.apple.com/apsl/ and read it before using this +// file. // // The Original Code and all software distributed under the License are // distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER @@ -997,24 +1123,24 @@ type Int64_t = int64 /* _int64_t.h:30:33 */ // Please see the License for the specific language governing rights and // limitations under the License. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// @APPLE_LICENSE_HEADER_END@ -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable + +// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable + +// Set up standard Mac OS X versions + +// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// @APPLE_LICENSE_HEADER_START@ // // This file contains Original Code and/or Modifications of Original Code // as defined in and that are subject to the Apple Public Source License // Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// compliance with the License. Please obtain a copy of the License at +// http://www.opensource.apple.com/apsl/ and read it before using this +// file. // // The Original Code and all software distributed under the License are // distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER @@ -1024,87 +1150,69 @@ type Uint8_t = uint8 /* _uint8_t.h:31:23 */ // Please see the License for the specific language governing rights and // limitations under the License. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// @APPLE_LICENSE_HEADER_END@ -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// File: AvailabilityInternal.h // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h> // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. + +// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ + +// make sure a default max version is set + // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// Macros for defining which versions/platform a given symbol can be used. +// +// @see http://clang.llvm.org/docs/AttributeReference.html#availability // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Evaluate to nothing for compilers that don't support clang language extensions. + +// Swift compiler version +// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift +// Example: // -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// #if __swift_compiler_version_at_least(800, 2, 20) +// - (nonnull NSString *)description; +// #else +// - (NSString *)description; +// #endif + +// If __SPI_AVAILABLE has not been defined elsewhere, disable it. + +// for use to document app extension usage + +// for use marking APIs available info for Mac OSX + +// for use marking APIs available info for iOS + +// for use marking APIs available info for tvOS + +// for use marking APIs available info for Watch OS + +// for use marking APIs unavailable for swift + // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// Macros for defining which versions/platform a given symbol can be used. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// @see http://clang.llvm.org/docs/AttributeReference.html#availability // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// * Note that these macros are only compatible with clang compilers that +// * support the following target selection options: +// * +// * -mmacosx-version-min +// * -miphoneos-version-min +// * -mwatchos-version-min +// * -mtvos-version-min // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers +// Evaluate to nothing for compilers that don't support clang language extensions. -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. +// If SPI decorations have not been defined elsewhere, disable them. + +// Copyright (c) 2003-2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1129,8 +1237,7 @@ type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. +// Copyright (c) 2000-2007 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1156,12 +1263,12 @@ type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ // Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 + +// Copyright (c) 2000-2008 Apple Inc. All rights reserved. +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +// Copyright (c) 1990, 1993 // The Regents of the University of California. All rights reserved. // -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: @@ -1190,334 +1297,7 @@ type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// This SDK is designed to work with clang and specific versions of -// gcc >= 4.0 with Apple's patch sets - -// Compatibility with compilers and environments that don't support compiler -// feature checking function-like macros. - -// The __CONCAT macro is used to concatenate parts of symbol names, e.g. -// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. -// The __CONCAT macro is a bit tricky -- make sure you don't put spaces -// in between its arguments. __CONCAT can also concatenate double-quoted -// strings produced by the __STRING macro, but this only works with ANSI C. - -// __pure2 can be used for functions that are only a function of their scalar -// arguments (meaning they can't dereference pointers). -// -// __stateful_pure can be used for functions that have no side effects, -// but depend on the state of the memory. - -// __unused denotes variables and functions that may not be used, preventing -// the compiler from warning about it if not used. - -// __used forces variables and functions to be included even if it appears -// to the compiler that they are not used (and would thust be discarded). - -// __cold marks code used for debugging or that is rarely taken -// and tells the compiler to optimize for size and outline code. - -// __exported denotes symbols that should be exported even when symbols -// are hidden by default. -// __exported_push/_exported_pop are pragmas used to delimit a range of -// symbols that should be exported even when symbols are hidden by default. - -// __deprecated causes the compiler to produce a warning when encountering -// code using the deprecated functionality. -// __deprecated_msg() does the same, and compilers that support it will print -// a message along with the deprecation warning. -// This may require turning on such warning with the -Wdeprecated flag. -// __deprecated_enum_msg() should be used on enums, and compilers that support -// it will print the deprecation warning. -// __kpi_deprecated() specifically indicates deprecation of kernel programming -// interfaces in Kernel.framework used by KEXTs. - -// __unavailable causes the compiler to error out when encountering -// code using the tagged function - -// Delete pseudo-keywords wherever they are not available or needed. - -// We use `__restrict' as a way to define the `restrict' type qualifier -// without disturbing older software that is unaware of C99 keywords. - -// Compatibility with compilers and environments that don't support the -// nullability feature. - -// __disable_tail_calls causes the compiler to not perform tail call -// optimization inside the marked function. - -// __not_tail_called causes the compiler to prevent tail call optimization -// on statically bound calls to the function. It has no effect on indirect -// calls. Virtual functions, objective-c methods, and functions marked as -// "always_inline" cannot be marked as __not_tail_called. - -// __result_use_check warns callers of a function that not using the function -// return value is a bug, i.e. dismissing malloc() return value results in a -// memory leak. - -// __swift_unavailable causes the compiler to mark a symbol as specifically -// unavailable in Swift, regardless of any other availability in C. - -// __abortlike is the attribute to put on functions like abort() that are -// typically used to mark assertions. These optimize the codegen -// for outlining while still maintaining debugability. - -// Declaring inline functions within headers is error-prone due to differences -// across various versions of the C language and extensions. __header_inline -// can be used to declare inline functions within system headers. In cases -// where you want to force inlining instead of letting the compiler make -// the decision, you can use __header_always_inline. -// -// Be aware that using inline for functions which compilers may also provide -// builtins can behave differently under various compilers. If you intend to -// provide an inline version of such a function, you may want to use a macro -// instead. -// -// The check for !__GNUC__ || __clang__ is because gcc doesn't correctly -// support c99 inline in some cases: -// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965 - -// Compiler-dependent macros that bracket portions of code where the -// "-Wunreachable-code" warning should be ignored. Please use sparingly. - -// Compiler-dependent macros to declare that functions take printf-like -// or scanf-like arguments. They are null except for versions of gcc -// that are known to support the features properly. Functions declared -// with these attributes will cause compilation warnings if there is a -// mismatch between the format string and subsequent function parameter -// types. - -// Source compatibility only, ID string not emitted in object file - -// __alloc_size can be used to label function arguments that represent the -// size of memory that the function allocates and returns. The one-argument -// form labels a single argument that gives the allocation size (where the -// arguments are numbered from 1): -// -// void *malloc(size_t __size) __alloc_size(1); -// -// The two-argument form handles the case where the size is calculated as the -// product of two arguments: -// -// void *calloc(size_t __count, size_t __size) __alloc_size(1,2); - -// COMPILATION ENVIRONMENTS -- see compat(5) for additional detail -// -// DEFAULT By default newly complied code will get POSIX APIs plus -// Apple API extensions in scope. -// -// Most users will use this compilation environment to avoid -// behavioral differences between 32 and 64 bit code. -// -// LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple -// API extensions in scope. -// -// This is generally equivalent to the Tiger release compilation -// environment, except that it cannot be applied to 64 bit code; -// its use is discouraged. -// -// We expect this environment to be deprecated in the future. -// -// STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the -// available APIs to exactly the set of APIs defined by the -// corresponding standard, based on the value defined. -// -// A correct, portable definition for _POSIX_C_SOURCE is 200112L. -// A correct, portable definition for _XOPEN_SOURCE is 600L. -// -// Apple API extensions are not visible in this environment, -// which can cause Apple specific code to fail to compile, -// or behave incorrectly if prototypes are not in scope or -// warnings about missing prototypes are not enabled or ignored. -// -// In any compilation environment, for correct symbol resolution to occur, -// function prototypes must be in scope. It is recommended that all Apple -// tools users add either the "-Wall" or "-Wimplicit-function-declaration" -// compiler flags to their projects to be warned when a function is being -// used without a prototype in scope. - -// These settings are particular to each product. -// Platform: MacOSX - -// The __DARWIN_ALIAS macros are used to do symbol renaming; they allow -// legacy code to use the old symbol, thus maintaining binary compatibility -// while new code can use a standards compliant version of the same function. -// -// __DARWIN_ALIAS is used by itself if the function signature has not -// changed, it is used along with a #ifdef check for __DARWIN_UNIX03 -// if the signature has changed. Because the __LP64__ environment -// only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be -// defined, but causes __DARWIN_ALIAS to do no symbol mangling. -// -// As a special case, when XCode is used to target a specific version of the -// OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -// will be defined by the compiler, with the digits representing major version -// time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting -// pre-10.5, and it is the default compilation environment, revert the -// compilation environment to pre-__DARWIN_UNIX03. - -// symbol suffixes used for symbol versioning - -// symbol versioning macros - -// symbol release macros -// Copyright (c) 2010 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// POSIX.1 requires that the macros we test be defined before any standard -// header file is included. This permits us to convert values for feature -// testing, as necessary, using only _POSIX_C_SOURCE. -// -// Here's a quick run-down of the versions: -// defined(_POSIX_SOURCE) 1003.1-1988 -// _POSIX_C_SOURCE == 1L 1003.1-1990 -// _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option -// _POSIX_C_SOURCE == 199309L 1003.1b-1993 -// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, -// and the omnibus ISO/IEC 9945-1: 1996 -// _POSIX_C_SOURCE == 200112L 1003.1-2001 -// _POSIX_C_SOURCE == 200809L 1003.1-2008 -// -// In addition, the X/Open Portability Guide, which is now the Single UNIX -// Specification, defines a feature-test macro which indicates the version of -// that specification, and which subsumes _POSIX_C_SOURCE. - -// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L. - -// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L. - -// Deal with various X/Open Portability Guides and Single UNIX Spec. - -// Deal with all versions of POSIX. The ordering relative to the tests above is -// important. - -// POSIX C deprecation macros -// Copyright (c) 2010 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Set a single macro which will always be defined and can be used to determine -// the appropriate namespace. For POSIX, these values will correspond to -// _POSIX_C_SOURCE value. Currently there are two additional levels corresponding -// to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE) - -// If the developer has neither requested a strict language mode nor a version -// of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part -// of __DARWIN_C_FULL. - -// long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and -// c99 still want long longs. While not perfect, we allow long longs for -// g++. - -// **************************************** -// -// Public darwin-specific feature macros -// - -// _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and -// structures modified for 64-bit inodes (like struct stat) will be used. - -// _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only -// be 64-bit; there is no support for 32-bit ino_t when this macro is defined -// (and non-zero). There is no struct stat64 either, as the regular -// struct stat will already be the 64-bit version. - -// _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated -// in 10.5 exists; no pre-10.5 variants are available. - -// _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API -// are available (the legacy BSD APIs are not available) - -// _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on, -// and specifies the conformance level (3 is SUSv3) - -// This macro casts away the qualifier from the variable -// -// Note: use at your own risk, removing qualifiers can result in -// catastrophic run-time failures. - -// __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be -// used from other compilation units, but not other libraries or executables. - -// Architecture validation for current SDK - -// Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS -// -// This provides more advanced type checking on compilers supporting -// the proper extensions, even in C. - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// @(#)types.h 8.3 (Berkeley) 1/5/94 // Copyright (c) 2000-2007 Apple Inc. All rights reserved. @@ -1578,34 +1358,9 @@ type X__darwin_wint_t = int32 /* _types.h:90:33 */ // wint_t type X__darwin_clock_t = uint64 /* _types.h:95:33 */ // clock() type X__darwin_socklen_t = X__uint32_t /* _types.h:96:33 */ // socklen_t (duh) type X__darwin_ssize_t = int64 /* _types.h:97:33 */ // byte count or error -type X__darwin_time_t = int64 /* _types.h:98:33 */ // time() - -// Type definitions; takes common type definitions that must be used -// in multiple header files due to [XSI], removes them from the system -// space, and puts them in the implementation space. +type X__darwin_time_t = int64 /* _types.h:98:33 */ -type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks -type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size -type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t -type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs -type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs -type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs -type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t -type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes -type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes -type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach -type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach -type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes -type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes -type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs -type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set -type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds -type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs -type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds -type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */ -type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */ - -// Copyright (c) 2003-2013 Apple Inc. All rights reserved. +// Copyright (c) 2016 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1630,8 +1385,8 @@ type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. +type U_int8_t = uint8 /* _u_int8_t.h:30:33 */ +// Copyright (c) 2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1656,109 +1411,8 @@ type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// pthread opaque structures - -type X__darwin_pthread_handler_rec = struct { - F__routine uintptr - F__arg uintptr - F__next uintptr -} /* _pthread_types.h:57:1 */ - -type X_opaque_pthread_attr_t = struct { - F__sig int64 - F__opaque [56]int8 -} /* _pthread_types.h:63:1 */ - -type X_opaque_pthread_cond_t = struct { - F__sig int64 - F__opaque [40]int8 -} /* _pthread_types.h:68:1 */ - -type X_opaque_pthread_condattr_t = struct { - F__sig int64 - F__opaque [8]int8 -} /* _pthread_types.h:73:1 */ - -type X_opaque_pthread_mutex_t = struct { - F__sig int64 - F__opaque [56]int8 -} /* _pthread_types.h:78:1 */ - -type X_opaque_pthread_mutexattr_t = struct { - F__sig int64 - F__opaque [8]int8 -} /* _pthread_types.h:83:1 */ - -type X_opaque_pthread_once_t = struct { - F__sig int64 - F__opaque [8]int8 -} /* _pthread_types.h:88:1 */ - -type X_opaque_pthread_rwlock_t = struct { - F__sig int64 - F__opaque [192]int8 -} /* _pthread_types.h:93:1 */ - -type X_opaque_pthread_rwlockattr_t = struct { - F__sig int64 - F__opaque [16]int8 -} /* _pthread_types.h:98:1 */ - -type X_opaque_pthread_t = struct { - F__sig int64 - F__cleanup_stack uintptr - F__opaque [8176]int8 -} /* _pthread_types.h:103:1 */ - -type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */ -type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */ -type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */ -type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */ -type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */ -type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */ -type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */ -type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */ -type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ -type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. +type U_int16_t = uint16 /* _u_int16_t.h:30:41 */ +// Copyright (c) 2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1783,7 +1437,8 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. +type U_int32_t = uint32 /* _u_int32_t.h:30:33 */ +// Copyright (c) 2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1808,45 +1463,11 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. +type U_int64_t = uint64 /* _u_int64_t.h:30:33 */ -// Copyright (c) 2000-2008 Apple Inc. All rights reserved. -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1990, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)types.h 8.3 (Berkeley) 1/5/94 +type Register_t = Int64_t /* types.h:66:33 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. +// Copyright (c) 2003-2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1871,46 +1492,7 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// Basic integral types. Omit the typedef if -// not possible for a machine/compiler combination. -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Copyright (c) 2003-2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1935,7 +1517,21 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. + +// These types are used for reserving the largest possible size. +type User_addr_t = U_int64_t /* types.h:77:33 */ +type User_size_t = U_int64_t /* types.h:78:33 */ +type User_ssize_t = Int64_t /* types.h:79:33 */ +type User_long_t = Int64_t /* types.h:80:33 */ +type User_ulong_t = U_int64_t /* types.h:81:33 */ +type User_time_t = Int64_t /* types.h:82:33 */ +type User_off_t = Int64_t /* types.h:83:33 */ + +// This defines the size of syscall arguments after copying into the kernel: +type Syscall_arg_t = U_int64_t /* types.h:104:33 */ + +type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address +// Copyright (c) 2003-2012 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1960,7 +1556,7 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Copyright (c) 2000-2007 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -1985,7 +1581,13 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */ + +// POSIX 1003.1-2003 +// "Inclusion of the <netinet/in.h> header may also make visible all +// symbols from <inttypes.h> and <sys/socket.h>". +// Copyright (c) 2000-2019 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2010,34 +1612,47 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2016 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved +// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved +// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 +// The Regents of the University of California. All rights reserved. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type U_int8_t = uint8 /* _u_int8_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// @(#)socket.h 8.4 (Berkeley) 2/21/94 +// $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $ +// NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce +// support for mandatory and extensible security protections. This notice +// is included in support of clause 2.2 (b) of the Apple Public License, +// Version 2.0. + +// Copyright (c) 2000-2008 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2062,34 +1677,46 @@ type U_int8_t = uint8 /* _u_int8_t.h:30:33 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type U_int16_t = uint16 /* _u_int16_t.h:30:41 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type U_int32_t = uint32 /* _u_int32_t.h:30:33 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// Copyright (c) 2002 Apple Computer, Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2114,11 +1741,8 @@ type U_int32_t = uint32 /* _u_int32_t.h:30:33 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type U_int64_t = uint64 /* _u_int64_t.h:30:33 */ -type Register_t = Int64_t /* types.h:66:33 */ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. +// Copyright (c) 2000-2018 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2143,48 +1767,45 @@ type Register_t = Int64_t /* types.h:66:33 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintptr_t = uint64 /* _uintptr_t.h:34:33 */ - -// These types are used for reserving the largest possible size. -type User_addr_t = U_int64_t /* types.h:77:33 */ -type User_size_t = U_int64_t /* types.h:78:33 */ -type User_ssize_t = Int64_t /* types.h:79:33 */ -type User_long_t = Int64_t /* types.h:80:33 */ -type User_ulong_t = U_int64_t /* types.h:81:33 */ -type User_time_t = Int64_t /* types.h:82:33 */ -type User_off_t = Int64_t /* types.h:83:33 */ - -// This defines the size of syscall arguments after copying into the kernel: -type Syscall_arg_t = U_int64_t /* types.h:104:33 */ +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 -type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. +// Machine type dependent parameters. +// Copyright (c) 2000-2007 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2209,9 +1830,8 @@ type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +// Copyright (c) 2003-2007 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2237,8 +1857,7 @@ type Intptr_t = X__darwin_intptr_t /* _intptr_t.h:32:33 */ // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. +// Copyright (c) 2000-2018 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2263,284 +1882,44 @@ type Intmax_t = int64 /* _intmax_t.h:32:25 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. -// -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - -// -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. -// - -// 7.18.2.2 Limits of minimum-width integer types - -// 7.18.2.3 Limits of fastest minimum-width integer types - -// 7.18.2.4 Limits of integer types capable of holding object pointers - -// 7.18.2.5 Limits of greatest-width integer types - -// 7.18.3 "Other" - -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. - -// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. -// -// @APPLE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this -// file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_LICENSE_HEADER_END@ - -// -// These macros are for use in OS header files. They enable function prototypes -// and Objective-C methods to be tagged with the OS version in which they -// were first available; and, if applicable, the OS version in which they -// became deprecated. -// -// The desktop Mac OS X and iOS each have different version numbers. -// The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop -// and iOS version numbers. For instance: -// __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0) -// means the function/method was first available on Mac OS X 10.2 on the desktop -// and first available in iOS 2.0 on the iPhone. -// -// If a function is available on one platform, but not the other a _NA (not -// applicable) parameter is used. For instance: -// __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA) -// means that the function/method was first available on Mac OS X 10.3, and it -// currently not implemented on the iPhone. -// -// At some point, a function/method may be deprecated. That means Apple -// recommends applications stop using the function, either because there is a -// better replacement or the functionality is being phased out. Deprecated -// functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED() -// macro which specifies the OS version where the function became available -// as well as the OS version in which it became deprecated. For instance: -// __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA) -// means that the function/method was introduced in Mac OS X 10.0, then -// became deprecated beginning in Mac OS X 10.5. On iOS the function -// has never been available. -// -// For these macros to function properly, a program must specify the OS version range -// it is targeting. The min OS version is specified as an option to the compiler: -// -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z -// when building for the iPhone. The upper bound for the OS version is rarely needed, -// but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for -// Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS. -// -// Examples: -// -// A function available in Mac OS X 10.5 and later, but not on the phone: -// -// extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -// -// -// An Objective-C method in Mac OS X 10.5 and later, but not on the phone: -// -// @interface MyClass : NSObject -// -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA); -// @end -// -// -// An enum available on the phone, but not available on Mac OS X: -// -// #if __IPHONE_OS_VERSION_MIN_REQUIRED -// enum { myEnum = 1 }; -// #endif -// Note: this works when targeting the Mac OS X platform because -// __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. -// -// -// An enum with values added in different iPhoneOS versions: -// -// enum { -// myX = 1, // Usable on iPhoneOS 2.1 and later -// myY = 2, // Usable on iPhoneOS 3.0 and later -// myZ = 3, // Usable on iPhoneOS 3.0 and later -// ... -// Note: you do not want to use #if with enumeration values -// when a client needs to see all values at compile time -// and use runtime logic to only use the viable values. -// -// -// It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one -// source base that can be compiled to target a range of OS versions. It is best -// to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values. -// That is because you might get compiled on an old OS that does not define a later -// OS version macro, and in the C preprocessor undefined values evaluate to zero -// in expresssions, which could cause the #if expression to evaluate in an unexpected -// way. -// -// #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED -// // code only compiled when targeting Mac OS X and not iPhone -// // note use of 1050 instead of __MAC_10_5 -// #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050 -// // code in here might run on pre-Leopard OS -// #else -// // code here can assume Leopard or later -// #endif -// #endif -// -// - -// __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated -// in an upcoming release. This soft deprecation is an intermediate step before formal -// deprecation to notify developers about the API before compiler warnings are generated. -// You can find all places in your code that use soft deprecated API by redefining the -// value of this macro to your current minimum deployment target, for example: -// (macOS) -// clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags> -// (iOS) -// clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags> - -// Copyright (c) 2019 by Apple Inc.. All rights reserved. -// -// @APPLE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this -// file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_LICENSE_HEADER_END@ - -// __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable - -// __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable - -// Set up standard Mac OS X versions - -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. -// -// @APPLE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this -// file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_LICENSE_HEADER_END@ - -// -// File: AvailabilityInternal.h -// -// Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h> -// - -// compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - -// make sure a default max version is set - -// -// Macros for defining which versions/platform a given symbol can be used. -// -// @see http://clang.llvm.org/docs/AttributeReference.html#availability -// - -// Evaluate to nothing for compilers that don't support availability. - -// Swift compiler version -// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift -// Example: -// -// #if __swift_compiler_version_at_least(800, 2, 20) -// - (nonnull NSString *)description; -// #else -// - (NSString *)description; -// #endif - -// If __SPI_AVAILABLE has not been defined elsewhere, disable it. - -// for use to document app extension usage - -// for use marking APIs available info for Mac OSX - -// for use marking APIs available info for iOS - -// for use marking APIs available info for tvOS - -// for use marking APIs available info for Watch OS - -// for use marking APIs unavailable for swift - +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. // -// Macros for defining which versions/platform a given symbol can be used. +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. // -// @see http://clang.llvm.org/docs/AttributeReference.html#availability +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. // -// * Note that these macros are only compatible with clang compilers that -// * support the following target selection options: -// * -// * -mmacosx-version-min -// * -miphoneos-version-min -// * -mwatchos-version-min -// * -mtvos-version-min +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. // +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 -// Evaluate to nothing for compilers that don't support availability. - -// If SPI decorations have not been defined elsewhere, disable them. - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. +// Copyright (c) 2003-2007 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2565,7 +1944,35 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + // Copyright (c) 2000-2007 Apple Inc. All rights reserved. + +// Type definitions; takes common type definitions that must be used +// in multiple header files due to [XSI], removes them from the system +// space, and puts them in the implementation space. + +type X__darwin_blkcnt_t = X__int64_t /* _types.h:55:25 */ // total blocks +type X__darwin_blksize_t = X__int32_t /* _types.h:56:25 */ // preferred block size +type X__darwin_dev_t = X__int32_t /* _types.h:57:25 */ // dev_t +type X__darwin_fsblkcnt_t = uint32 /* _types.h:58:25 */ // Used by statvfs and fstatvfs +type X__darwin_fsfilcnt_t = uint32 /* _types.h:59:25 */ // Used by statvfs and fstatvfs +type X__darwin_gid_t = X__uint32_t /* _types.h:60:25 */ // [???] process and group IDs +type X__darwin_id_t = X__uint32_t /* _types.h:61:25 */ // [XSI] pid_t, uid_t, or gid_t +type X__darwin_ino64_t = X__uint64_t /* _types.h:62:25 */ // [???] Used for 64 bit inodes +type X__darwin_ino_t = X__darwin_ino64_t /* _types.h:64:26 */ // [???] Used for inodes +type X__darwin_mach_port_name_t = X__darwin_natural_t /* _types.h:68:28 */ // Used by mach +type X__darwin_mach_port_t = X__darwin_mach_port_name_t /* _types.h:69:35 */ // Used by mach +type X__darwin_mode_t = X__uint16_t /* _types.h:70:25 */ // [???] Some file attributes +type X__darwin_off_t = X__int64_t /* _types.h:71:25 */ // [???] Used for file sizes +type X__darwin_pid_t = X__int32_t /* _types.h:72:25 */ // [???] process and group IDs +type X__darwin_sigset_t = X__uint32_t /* _types.h:73:25 */ // [???] signal set +type X__darwin_suseconds_t = X__int32_t /* _types.h:74:25 */ // [???] microseconds +type X__darwin_uid_t = X__uint32_t /* _types.h:75:25 */ // [???] user IDs +type X__darwin_useconds_t = X__uint32_t /* _types.h:76:25 */ // [???] microseconds +type X__darwin_uuid_t = [16]uint8 /* _types.h:77:25 */ +type X__darwin_uuid_string_t = [37]int8 /* _types.h:78:17 */ + +// Copyright (c) 2003-2013 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2590,9 +1997,8 @@ type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet address -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. + +// Copyright (c) 2000-2018 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ // @@ -2617,33 +2023,107 @@ type In_addr_t = X__uint32_t /* _in_addr_t.h:31:25 */ // base type for internet // limitations under the License. // // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ +// Copyright 1995 NeXT Computer, Inc. All rights reserved. +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. // -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -type In_port_t = X__uint16_t /* _in_port_t.h:31:33 */ +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// pthread opaque structures + +type X__darwin_pthread_handler_rec = struct { + F__routine uintptr + F__arg uintptr + F__next uintptr +} /* _pthread_types.h:57:1 */ + +type X_opaque_pthread_attr_t = struct { + F__sig int64 + F__opaque [56]int8 +} /* _pthread_types.h:63:1 */ + +type X_opaque_pthread_cond_t = struct { + F__sig int64 + F__opaque [40]int8 +} /* _pthread_types.h:68:1 */ + +type X_opaque_pthread_condattr_t = struct { + F__sig int64 + F__opaque [8]int8 +} /* _pthread_types.h:73:1 */ + +type X_opaque_pthread_mutex_t = struct { + F__sig int64 + F__opaque [56]int8 +} /* _pthread_types.h:78:1 */ + +type X_opaque_pthread_mutexattr_t = struct { + F__sig int64 + F__opaque [8]int8 +} /* _pthread_types.h:83:1 */ + +type X_opaque_pthread_once_t = struct { + F__sig int64 + F__opaque [8]int8 +} /* _pthread_types.h:88:1 */ + +type X_opaque_pthread_rwlock_t = struct { + F__sig int64 + F__opaque [192]int8 +} /* _pthread_types.h:93:1 */ + +type X_opaque_pthread_rwlockattr_t = struct { + F__sig int64 + F__opaque [16]int8 +} /* _pthread_types.h:98:1 */ + +type X_opaque_pthread_t = struct { + F__sig int64 + F__cleanup_stack uintptr + F__opaque [8176]int8 +} /* _pthread_types.h:103:1 */ + +type X__darwin_pthread_attr_t = X_opaque_pthread_attr_t /* _pthread_types.h:109:39 */ +type X__darwin_pthread_cond_t = X_opaque_pthread_cond_t /* _pthread_types.h:110:39 */ +type X__darwin_pthread_condattr_t = X_opaque_pthread_condattr_t /* _pthread_types.h:111:43 */ +type X__darwin_pthread_key_t = uint64 /* _pthread_types.h:112:23 */ +type X__darwin_pthread_mutex_t = X_opaque_pthread_mutex_t /* _pthread_types.h:113:40 */ +type X__darwin_pthread_mutexattr_t = X_opaque_pthread_mutexattr_t /* _pthread_types.h:114:44 */ +type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_types.h:115:39 */ +type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */ +type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ +type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ // Functions for byte reversed loads. diff --git a/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go b/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go new file mode 100644 index 000000000..2bbeb3d6a --- /dev/null +++ b/vendor/modernc.org/libc/netinet/in/in_freebsd_386.go @@ -0,0 +1,1517 @@ +// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_freebsd_386.go -pkgname in', DO NOT EDIT. + +package in + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + ICMP6_FILTER = 18 + ICMPV6CTL_ND6_ONLINKNSRFC4861 = 47 + INET6_ADDRSTRLEN = 46 + INET_ADDRSTRLEN = 16 + IN_CLASSA_HOST = 0x00ffffff + IN_CLASSA_MAX = 128 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 24 + IN_CLASSB_HOST = 0x0000ffff + IN_CLASSB_MAX = 65536 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 16 + IN_CLASSC_HOST = 0x000000ff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 8 + IN_CLASSD_HOST = 0x0fffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 28 + IN_HISTORICAL_NETS = 0 + IN_LOOPBACKNET = 127 + IN_NETMASK_DEFAULT = 0xffffff00 + IPCTL_ACCEPTSOURCEROUTE = 13 + IPCTL_DEFTTL = 3 + IPCTL_DIRECTEDBROADCAST = 9 + IPCTL_FASTFORWARDING = 14 + IPCTL_FORWARDING = 1 + IPCTL_GIF_TTL = 16 + IPCTL_INTRDQDROPS = 18 + IPCTL_INTRDQMAXLEN = 17 + IPCTL_INTRQDROPS = 11 + IPCTL_INTRQMAXLEN = 10 + IPCTL_SENDREDIRECTS = 2 + IPCTL_SOURCEROUTE = 8 + IPCTL_STATS = 12 + IPPORT_EPHEMERALFIRST = 10000 + IPPORT_EPHEMERALLAST = 65535 + IPPORT_HIFIRSTAUTO = 49152 + IPPORT_HILASTAUTO = 65535 + IPPORT_MAX = 65535 + IPPORT_RESERVED = 1024 + IPPORT_RESERVEDSTART = 600 + IPPROTO_3PC = 34 + IPPROTO_ADFS = 68 + IPPROTO_AH = 51 + IPPROTO_AHIP = 61 + IPPROTO_APES = 99 + IPPROTO_ARGUS = 13 + IPPROTO_AX25 = 93 + IPPROTO_BHA = 49 + IPPROTO_BLT = 30 + IPPROTO_BRSATMON = 76 + IPPROTO_CARP = 112 + IPPROTO_CFTP = 62 + IPPROTO_CHAOS = 16 + IPPROTO_CMTP = 38 + IPPROTO_CPHB = 73 + IPPROTO_CPNX = 72 + IPPROTO_DCCP = 33 + IPPROTO_DDP = 37 + IPPROTO_DGP = 86 + IPPROTO_DIVERT = 258 + IPPROTO_DONE = 257 + IPPROTO_DSTOPTS = 60 + IPPROTO_EGP = 8 + IPPROTO_EMCON = 14 + IPPROTO_ENCAP = 98 + IPPROTO_EON = 80 + IPPROTO_ESP = 50 + IPPROTO_ETHERIP = 97 + IPPROTO_FRAGMENT = 44 + IPPROTO_GGP = 3 + IPPROTO_GMTP = 100 + IPPROTO_GRE = 47 + IPPROTO_HELLO = 63 + IPPROTO_HIP = 139 + IPPROTO_HMP = 20 + IPPROTO_HOPOPTS = 0 + IPPROTO_ICMP = 1 + IPPROTO_ICMPV6 = 58 + IPPROTO_IDP = 22 + IPPROTO_IDPR = 35 + IPPROTO_IDRP = 45 + IPPROTO_IGMP = 2 + IPPROTO_IGP = 85 + IPPROTO_IGRP = 88 + IPPROTO_IL = 40 + IPPROTO_INLSP = 52 + IPPROTO_INP = 32 + IPPROTO_IP = 0 + IPPROTO_IPCOMP = 108 + IPPROTO_IPCV = 71 + IPPROTO_IPEIP = 94 + IPPROTO_IPIP = 4 + IPPROTO_IPPC = 67 + IPPROTO_IPV4 = 4 + IPPROTO_IPV6 = 41 + IPPROTO_IRTP = 28 + IPPROTO_KRYPTOLAN = 65 + IPPROTO_LARP = 91 + IPPROTO_LEAF1 = 25 + IPPROTO_LEAF2 = 26 + IPPROTO_MAX = 256 + IPPROTO_MEAS = 19 + IPPROTO_MH = 135 + IPPROTO_MHRP = 48 + IPPROTO_MICP = 95 + IPPROTO_MOBILE = 55 + IPPROTO_MPLS = 137 + IPPROTO_MTP = 92 + IPPROTO_MUX = 18 + IPPROTO_ND = 77 + IPPROTO_NHRP = 54 + IPPROTO_NONE = 59 + IPPROTO_NSP = 31 + IPPROTO_NVPII = 11 + IPPROTO_OLD_DIVERT = 254 + IPPROTO_OSPFIGP = 89 + IPPROTO_PFSYNC = 240 + IPPROTO_PGM = 113 + IPPROTO_PIGP = 9 + IPPROTO_PIM = 103 + IPPROTO_PRM = 21 + IPPROTO_PUP = 12 + IPPROTO_PVP = 75 + IPPROTO_RAW = 255 + IPPROTO_RCCMON = 10 + IPPROTO_RDP = 27 + IPPROTO_RESERVED_253 = 253 + IPPROTO_RESERVED_254 = 254 + IPPROTO_ROUTING = 43 + IPPROTO_RSVP = 46 + IPPROTO_RVD = 66 + IPPROTO_SATEXPAK = 64 + IPPROTO_SATMON = 69 + IPPROTO_SCCSP = 96 + IPPROTO_SCTP = 132 + IPPROTO_SDRP = 42 + IPPROTO_SEND = 259 + IPPROTO_SHIM6 = 140 + IPPROTO_SKIP = 57 + IPPROTO_SPACER = 32767 + IPPROTO_SRPC = 90 + IPPROTO_ST = 7 + IPPROTO_SVMTP = 82 + IPPROTO_SWIPE = 53 + IPPROTO_TCF = 87 + IPPROTO_TCP = 6 + IPPROTO_TLSP = 56 + IPPROTO_TP = 29 + IPPROTO_TPXX = 39 + IPPROTO_TRUNK1 = 23 + IPPROTO_TRUNK2 = 24 + IPPROTO_TTP = 84 + IPPROTO_UDP = 17 + IPPROTO_UDPLITE = 136 + IPPROTO_VINES = 83 + IPPROTO_VISA = 70 + IPPROTO_VMTP = 81 + IPPROTO_WBEXPAK = 79 + IPPROTO_WBMON = 78 + IPPROTO_WSN = 74 + IPPROTO_XNET = 15 + IPPROTO_XTP = 36 + IPV6CTL_ACCEPT_RTADV = 12 + IPV6CTL_ADDRCTLPOLICY = 38 + IPV6CTL_AUTO_FLOWLABEL = 17 + IPV6CTL_AUTO_LINKLOCAL = 35 + IPV6CTL_DAD_COUNT = 16 + IPV6CTL_DEFHLIM = 3 + IPV6CTL_DEFMCASTHLIM = 18 + IPV6CTL_FORWARDING = 1 + IPV6CTL_FORWSRCRT = 5 + IPV6CTL_GIF_HLIM = 19 + IPV6CTL_HDRNESTLIMIT = 15 + IPV6CTL_INTRDQMAXLEN = 52 + IPV6CTL_INTRQMAXLEN = 51 + IPV6CTL_KAME_VERSION = 20 + IPV6CTL_LOG_INTERVAL = 14 + IPV6CTL_MAXFRAGBUCKETSIZE = 54 + IPV6CTL_MAXFRAGPACKETS = 9 + IPV6CTL_MAXFRAGS = 41 + IPV6CTL_MAXFRAGSPERPACKET = 53 + IPV6CTL_MAXID = 55 + IPV6CTL_MCAST_PMTU = 44 + IPV6CTL_MRTPROTO = 8 + IPV6CTL_MRTSTATS = 7 + IPV6CTL_NORBIT_RAIF = 49 + IPV6CTL_NO_RADR = 48 + IPV6CTL_PREFER_TEMPADDR = 37 + IPV6CTL_RFC6204W3 = 50 + IPV6CTL_RIP6STATS = 36 + IPV6CTL_RR_PRUNE = 22 + IPV6CTL_SENDREDIRECTS = 2 + IPV6CTL_SOURCECHECK = 10 + IPV6CTL_SOURCECHECK_LOGINT = 11 + IPV6CTL_STATS = 6 + IPV6CTL_STEALTH = 45 + IPV6CTL_TEMPPLTIME = 33 + IPV6CTL_TEMPVLTIME = 34 + IPV6CTL_USETEMPADDR = 32 + IPV6CTL_USE_DEFAULTZONE = 39 + IPV6CTL_USE_DEPRECATED = 21 + IPV6CTL_V6ONLY = 24 + IPV6PORT_ANONMAX = 65535 + IPV6PORT_ANONMIN = 49152 + IPV6PORT_RESERVED = 1024 + IPV6PORT_RESERVEDMAX = 1023 + IPV6PORT_RESERVEDMIN = 600 + IPV6PROTO_MAXID = 104 + IPV6_AUTOFLOWLABEL = 59 + IPV6_BINDANY = 64 + IPV6_BINDMULTI = 65 + IPV6_BINDV6ONLY = 27 + IPV6_CHECKSUM = 26 + IPV6_DEFAULT_MULTICAST_HOPS = 1 + IPV6_DEFAULT_MULTICAST_LOOP = 1 + IPV6_DONTFRAG = 62 + IPV6_DSTOPTS = 50 + IPV6_FLOWID = 67 + IPV6_FLOWTYPE = 68 + IPV6_FW_ADD = 30 + IPV6_FW_DEL = 31 + IPV6_FW_FLUSH = 32 + IPV6_FW_GET = 34 + IPV6_FW_ZERO = 33 + IPV6_HOPLIMIT = 47 + IPV6_HOPOPTS = 49 + IPV6_IPSEC_POLICY = 28 + IPV6_JOIN_GROUP = 12 + IPV6_LEAVE_GROUP = 13 + IPV6_MAX_GROUP_SRC_FILTER = 512 + IPV6_MAX_MEMBERSHIPS = 4095 + IPV6_MAX_SOCK_SRC_FILTER = 128 + IPV6_MSFILTER = 74 + IPV6_MULTICAST_HOPS = 10 + IPV6_MULTICAST_IF = 9 + IPV6_MULTICAST_LOOP = 11 + IPV6_NEXTHOP = 48 + IPV6_ORIGDSTADDR = 72 + IPV6_PATHMTU = 44 + IPV6_PKTINFO = 46 + IPV6_PORTRANGE = 14 + IPV6_PORTRANGE_DEFAULT = 0 + IPV6_PORTRANGE_HIGH = 1 + IPV6_PORTRANGE_LOW = 2 + IPV6_PREFER_TEMPADDR = 63 + IPV6_RECVDSTOPTS = 40 + IPV6_RECVFLOWID = 70 + IPV6_RECVHOPLIMIT = 37 + IPV6_RECVHOPOPTS = 39 + IPV6_RECVORIGDSTADDR = 72 + IPV6_RECVPATHMTU = 43 + IPV6_RECVPKTINFO = 36 + IPV6_RECVRSSBUCKETID = 71 + IPV6_RECVRTHDR = 38 + IPV6_RECVTCLASS = 57 + IPV6_RSSBUCKETID = 69 + IPV6_RSS_LISTEN_BUCKET = 66 + IPV6_RTHDR = 51 + IPV6_RTHDRDSTOPTS = 35 + IPV6_RTHDR_LOOSE = 0 + IPV6_RTHDR_STRICT = 1 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_SOCKOPT_RESERVED1 = 3 + IPV6_TCLASS = 61 + IPV6_UNICAST_HOPS = 4 + IPV6_USE_MIN_MTU = 42 + IPV6_V6ONLY = 27 + IPV6_VLAN_PCP = 75 + IP_ADD_MEMBERSHIP = 12 + IP_ADD_SOURCE_MEMBERSHIP = 70 + IP_BINDANY = 24 + IP_BINDMULTI = 25 + IP_BLOCK_SOURCE = 72 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DONTFRAG = 67 + IP_DROP_MEMBERSHIP = 13 + IP_DROP_SOURCE_MEMBERSHIP = 71 + IP_DUMMYNET3 = 49 + IP_DUMMYNET_CONFIGURE = 60 + IP_DUMMYNET_DEL = 61 + IP_DUMMYNET_FLUSH = 62 + IP_DUMMYNET_GET = 64 + IP_FLOWID = 90 + IP_FLOWTYPE = 91 + IP_FW3 = 48 + IP_FW_ADD = 50 + IP_FW_DEL = 51 + IP_FW_FLUSH = 52 + IP_FW_GET = 54 + IP_FW_NAT_CFG = 56 + IP_FW_NAT_DEL = 57 + IP_FW_NAT_GET_CONFIG = 58 + IP_FW_NAT_GET_LOG = 59 + IP_FW_RESETLOG = 55 + IP_FW_TABLE_ADD = 40 + IP_FW_TABLE_DEL = 41 + IP_FW_TABLE_FLUSH = 42 + IP_FW_TABLE_GETSIZE = 43 + IP_FW_TABLE_LIST = 44 + IP_FW_ZERO = 53 + IP_HDRINCL = 2 + IP_IPSEC_POLICY = 21 + IP_MAX_GROUP_SRC_FILTER = 512 + IP_MAX_MEMBERSHIPS = 4095 + IP_MAX_SOCK_MUTE_FILTER = 128 + IP_MAX_SOCK_SRC_FILTER = 128 + IP_MINTTL = 66 + IP_MSFILTER = 74 + IP_MULTICAST_IF = 9 + IP_MULTICAST_LOOP = 11 + IP_MULTICAST_TTL = 10 + IP_MULTICAST_VIF = 14 + IP_ONESBCAST = 23 + IP_OPTIONS = 1 + IP_ORIGDSTADDR = 27 + IP_PORTRANGE = 19 + IP_PORTRANGE_DEFAULT = 0 + IP_PORTRANGE_HIGH = 1 + IP_PORTRANGE_LOW = 2 + IP_RECVDSTADDR = 7 + IP_RECVFLOWID = 93 + IP_RECVIF = 20 + IP_RECVOPTS = 5 + IP_RECVORIGDSTADDR = 27 + IP_RECVRETOPTS = 6 + IP_RECVRSSBUCKETID = 94 + IP_RECVTOS = 68 + IP_RECVTTL = 65 + IP_RETOPTS = 8 + IP_RSSBUCKETID = 92 + IP_RSS_LISTEN_BUCKET = 26 + IP_RSVP_OFF = 16 + IP_RSVP_ON = 15 + IP_RSVP_VIF_OFF = 18 + IP_RSVP_VIF_ON = 17 + IP_SENDSRCADDR = 7 + IP_TOS = 3 + IP_TTL = 4 + IP_UNBLOCK_SOURCE = 73 + IP_VLAN_PCP = 75 + LITTLE_ENDIAN = 1234 + MCAST_BLOCK_SOURCE = 84 + MCAST_EXCLUDE = 2 + MCAST_INCLUDE = 1 + MCAST_JOIN_GROUP = 80 + MCAST_JOIN_SOURCE_GROUP = 82 + MCAST_LEAVE_GROUP = 81 + MCAST_LEAVE_SOURCE_GROUP = 83 + MCAST_UNBLOCK_SOURCE = 85 + MCAST_UNDEFINED = 0 + PDP_ENDIAN = 3412 + SIN6_LEN = 0 + X_BIG_ENDIAN = 4321 + X_BYTEORDER_FUNC_DEFINED = 0 + X_BYTEORDER_PROTOTYPED = 0 + X_BYTE_ORDER = 1234 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_NETINET6_IN6_H_ = 0 + X_NETINET_IN_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PDP_ENDIAN = 3412 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_SA_FAMILY_T_DECLARED = 0 + X_SIZE_T_DECLARED = 0 + X_SOCKLEN_T_DECLARED = 0 + X_SS_MAXSIZE = 128 + X_STRUCT_IN_ADDR_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__SOCKADDR_STORAGE_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)in.h 8.3 (Berkeley) 1/3/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// BSD Compatiblity + +// Definitions for byte order, according to byte significance from low +// address to high. + +// Define the order of 32-bit words in 64-bit words. + +// Deprecated variants that don't have enough underscores to be useful in more +// strict namespaces. + +// bswap primitives, based on compiler builtins + +// Protocols common to RFC 1700, POSIX, and X/Open. + +type Uint8_t = X__uint8_t /* in.h:52:20 */ + +type Uint16_t = X__uint16_t /* in.h:57:21 */ + +type Uint32_t = X__uint32_t /* in.h:62:21 */ + +type In_addr_t = Uint32_t /* in.h:67:19 */ + +type In_port_t = Uint16_t /* in.h:72:19 */ + +type Sa_family_t = X__sa_family_t /* in.h:77:24 */ + +// Internet address (a structure for historical reasons). +type In_addr = struct{ Fs_addr In_addr_t } /* in.h:83:1 */ + +type Socklen_t = X__socklen_t /* in.h:90:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)socket.h 8.4 (Berkeley) 2/21/94 +// $FreeBSD$ + +// RFC 2553: protocol-independent placeholder for socket addresses + +type Sockaddr_storage = struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 +} /* _sockaddr_storage.h:48:1 */ + +// Socket address, internet style. +type Sockaddr_in = struct { + Fsin_len Uint8_t + Fsin_family Sa_family_t + Fsin_port In_port_t + Fsin_addr struct{ Fs_addr In_addr_t } + Fsin_zero [8]int8 +} /* in.h:97:1 */ + +// Constants and structures defined by the internet system, +// Per RFC 790, September 1981, and numerous additions. + +// Protocols (RFC 1700) +// 101-254: Partly Unassigned +// 255: Reserved +// BSD Private, local use, namespace incursion, no longer used + +// last return value of *_input(), meaning "all job for this pkt is done". + +// Only used internally, so can be outside the range of valid IP protocols. + +// Defined to avoid confusion. The master value is defined by +// PROTO_SPACER in sys/protosw.h. + +// Local port number conventions: +// +// When a user does a bind(2) or connect(2) with a port number of zero, +// a non-conflicting local port address is chosen. +// The default range is IPPORT_HIFIRSTAUTO through +// IPPORT_HILASTAUTO, although that is settable by sysctl. +// +// A user may set the IPPROTO_IP option IP_PORTRANGE to change this +// default assignment range. +// +// The value IP_PORTRANGE_DEFAULT causes the default behavior. +// +// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers +// into the "high" range. These are reserved for client outbound connections +// which do not want to be filtered by any firewalls. +// +// The value IP_PORTRANGE_LOW changes the range to the "low" are +// that is (by convention) restricted to privileged processes. This +// convention is based on "vouchsafe" principles only. It is only secure +// if you trust the remote host to restrict these ports. +// +// The default range of ports and the high range can be changed by +// sysctl(3). (net.inet.ip.portrange.{hi,low,}{first,last}) +// +// Changing those values has bad security implications if you are +// using a stateless firewall that is allowing packets outside of that +// range in order to allow transparent outgoing connections. +// +// Such a firewall configuration will generally depend on the use of these +// default values. If you change them, you may find your Security +// Administrator looking for you with a heavy object. +// +// For a slightly more orthodox text view on this: +// +// ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers +// +// port numbers are divided into three ranges: +// +// 0 - 1023 Well Known Ports +// 1024 - 49151 Registered Ports +// 49152 - 65535 Dynamic and/or Private Ports +// + +// Ports < IPPORT_RESERVED are reserved for +// privileged processes (e.g. root). (IP_PORTRANGE_LOW) + +// Default local port range, used by IP_PORTRANGE_DEFAULT + +// Dynamic port range, used by IP_PORTRANGE_HIGH. + +// Scanning for a free reserved port return a value below IPPORT_RESERVED, +// but higher than IPPORT_RESERVEDSTART. Traditionally the start value was +// 512, but that conflicts with some well-known-services that firewalls may +// have a fit if we use. + +// Historical definitions of bits in internet address integers +// (pre-CIDR). Class A/B/C are long obsolete, and now deprecated. +// Hide these definitions from the kernel unless IN_HISTORICAL_NETS +// is defined. Provide the historical definitions to user level for now. + +// Options for use with [gs]etsockopt at the IP level. +// First word of comment is data type; bool is stored in int. +// for IPSEC +// unused; was IP_FAITH + +// Options for controlling the firewall and dummynet. +// Historical options (from 40 to 64) will eventually be +// replaced by only two options, IP_FW3 and IP_DUMMYNET3. + +// IPv4 Source Filter Multicast API [RFC3678] + +// The following option is private; do not use it from user applications. + +// The following option deals with the 802.1Q Ethernet Priority Code Point +// -1 use interface default + +// Protocol Independent Multicast API [RFC3678] + +// Flow and RSS definitions + +// Defaults and limits for options + +// Limit for IPv4 multicast memberships + +// Default resource limits for IPv4 multicast source filtering. +// These may be modified by sysctl. + +// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. +type Ip_mreq = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_interface struct{ Fs_addr In_addr_t } +} /* in.h:539:1 */ + +// Modified argument structure for IP_MULTICAST_IF, obtained from Linux. +// This is used to specify an interface index for multicast sends, as +// the IPv4 legacy APIs do not support this (unless IP_SENDIF is available). +type Ip_mreqn = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_address struct{ Fs_addr In_addr_t } + Fimr_ifindex int32 +} /* in.h:549:1 */ + +// Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678] +type Ip_mreq_source = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_sourceaddr struct{ Fs_addr In_addr_t } + Fimr_interface struct{ Fs_addr In_addr_t } +} /* in.h:558:1 */ + +// Argument structures for Protocol-Independent Multicast Source +// Filter APIs. [RFC3678] +type Group_req = struct { + Fgr_interface Uint32_t + Fgr_group struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 + } +} /* in.h:568:1 */ + +type Group_source_req = struct { + Fgsr_interface Uint32_t + Fgsr_group struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 + } + Fgsr_source struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 + } +} /* in.h:573:1 */ + +// The following structure is private; do not use it from user applications. +// It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between +// the RFC 3678 libc functions and the kernel. +type X__msfilterreq = struct { + Fmsfr_ifindex Uint32_t + Fmsfr_fmode Uint32_t + Fmsfr_nsrcs Uint32_t + Fmsfr_group struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 + } + Fmsfr_srcs uintptr +} /* in.h:586:1 */ + +// Filter modes; also used to represent per-socket filter mode internally. + +// Argument for IP_PORTRANGE: +// - which range to search when port is unspecified at bind() or connect() + +// Identifiers for IP sysctl nodes +// IPCTL_RTEXPIRE 5 deprecated +// IPCTL_RTMINEXPIRE 6 deprecated +// IPCTL_RTMAXCACHE 7 deprecated +// 15, unused, was: IPCTL_KEEPFAITH + +// INET6 stuff +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the project nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $ + +// - +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)in.h 8.3 (Berkeley) 1/3/94 +// $FreeBSD$ + +// Identification of the network protocol stack +// for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE +// has the table of implementation/integration differences. + +// IPv6 port allocation rules should mirror the IPv4 rules and are controlled +// by the net.inet.ip.portrange sysctl tree. The following defines exist +// for compatibility with userland applications that need them. + +// IPv6 address +type In6_addr = struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } +} /* in6.h:97:1 */ + +// XXX missing POSIX.1-2001 macro IPPROTO_IPV6. + +// Socket address for IPv6 + +type Sockaddr_in6 = struct { + Fsin6_len Uint8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo Uint32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } + } + Fsin6_scope_id Uint32_t +} /* in6.h:125:1 */ + +type Route_in6 = struct { + Fro_nh uintptr + Fro_lle uintptr + Fro_prepend uintptr + Fro_plen Uint16_t + Fro_flags Uint16_t + Fro_mtu Uint16_t + Fspare Uint16_t + Fro_dst struct { + Fsin6_len Uint8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo Uint32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } + } + Fsin6_scope_id Uint32_t + } +} /* in6.h:379:1 */ + +// Options for use with [gs]etsockopt at the IPV6 level. +// First word of comment is data type; bool is stored in int. +// no hdrincl +// RFC2292 options + +// 29; unused; was IPV6_FAITH + +// new socket options introduced in RFC3542 + +// more new socket options introduced in RFC3542 + +// The following option is private; do not use it from user applications. +// It is deliberately defined to the same value as IP_MSFILTER. + +// The following option deals with the 802.1Q Ethernet Priority Code Point +// -1 use interface default + +// to define items, should talk with KAME guys first, for *BSD compatibility + +// Defaults and limits for options + +// Limit for IPv6 multicast memberships + +// Default resource limits for IPv6 multicast source filtering. +// These may be modified by sysctl. + +// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. +type Ipv6_mreq = struct { + Fipv6mr_multiaddr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } + } + Fipv6mr_interface uint32 +} /* in6.h:545:1 */ + +// IPV6_PKTINFO: Packet information(RFC2292 sec 5) +type In6_pktinfo = struct { + Fipi6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } + } + Fipi6_ifindex uint32 +} /* in6.h:553:1 */ + +// Control structure for IPV6_RECVPATHMTU socket option. +type Ip6_mtuinfo = struct { + Fip6m_addr struct { + Fsin6_len Uint8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo Uint32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]Uint8_t + } + } + Fsin6_scope_id Uint32_t + } + Fip6m_mtu Uint32_t +} /* in6.h:561:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go b/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go new file mode 100644 index 000000000..8cd4b618f --- /dev/null +++ b/vendor/modernc.org/libc/netinet/in/in_openbsd_amd64.go @@ -0,0 +1,1252 @@ +// Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_openbsd_amd64.go -pkgname in', DO NOT EDIT. + +package in + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + ICMP6_FILTER = 18 + INET6_ADDRSTRLEN = 46 + INET_ADDRSTRLEN = 16 + IN_CLASSA_MAX = 128 + IN_CLASSA_NSHIFT = 24 + IN_CLASSB_MAX = 65536 + IN_CLASSB_NSHIFT = 16 + IN_CLASSC_NSHIFT = 8 + IN_CLASSD_NSHIFT = 28 + IN_LOOPBACKNET = 127 + IN_RFC3021_NSHIFT = 31 + IPCTL_ARPDOWN = 40 + IPCTL_ARPQUEUE = 41 + IPCTL_ARPQUEUED = 36 + IPCTL_ARPTIMEOUT = 39 + IPCTL_DEFTTL = 3 + IPCTL_DIRECTEDBCAST = 6 + IPCTL_ENCDEBUG = 12 + IPCTL_FORWARDING = 1 + IPCTL_IFQUEUE = 30 + IPCTL_IPPORT_FIRSTAUTO = 7 + IPCTL_IPPORT_HIFIRSTAUTO = 9 + IPCTL_IPPORT_HILASTAUTO = 10 + IPCTL_IPPORT_LASTAUTO = 8 + IPCTL_IPPORT_MAXQUEUE = 11 + IPCTL_IPSEC_ALLOCATIONS = 18 + IPCTL_IPSEC_AUTH_ALGORITHM = 26 + IPCTL_IPSEC_BYTES = 20 + IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT = 15 + IPCTL_IPSEC_ENC_ALGORITHM = 25 + IPCTL_IPSEC_EXPIRE_ACQUIRE = 14 + IPCTL_IPSEC_FIRSTUSE = 24 + IPCTL_IPSEC_IPCOMP_ALGORITHM = 29 + IPCTL_IPSEC_REQUIRE_PFS = 16 + IPCTL_IPSEC_SOFT_ALLOCATIONS = 17 + IPCTL_IPSEC_SOFT_BYTES = 19 + IPCTL_IPSEC_SOFT_FIRSTUSE = 23 + IPCTL_IPSEC_SOFT_TIMEOUT = 22 + IPCTL_IPSEC_STATS = 13 + IPCTL_IPSEC_TIMEOUT = 21 + IPCTL_MAXID = 42 + IPCTL_MFORWARDING = 31 + IPCTL_MRTMFC = 37 + IPCTL_MRTPROTO = 34 + IPCTL_MRTSTATS = 35 + IPCTL_MRTVIF = 38 + IPCTL_MTUDISC = 27 + IPCTL_MTUDISCTIMEOUT = 28 + IPCTL_MULTIPATH = 32 + IPCTL_SENDREDIRECTS = 2 + IPCTL_SOURCEROUTE = 5 + IPCTL_STATS = 33 + IPPORT_HIFIRSTAUTO = 49152 + IPPORT_HILASTAUTO = 65535 + IPPORT_RESERVED = 1024 + IPPORT_USERRESERVED = 49151 + IPPROTO_AH = 51 + IPPROTO_CARP = 112 + IPPROTO_DIVERT = 258 + IPPROTO_DONE = 257 + IPPROTO_DSTOPTS = 60 + IPPROTO_EGP = 8 + IPPROTO_ENCAP = 98 + IPPROTO_EON = 80 + IPPROTO_ESP = 50 + IPPROTO_ETHERIP = 97 + IPPROTO_FRAGMENT = 44 + IPPROTO_GGP = 3 + IPPROTO_GRE = 47 + IPPROTO_HOPOPTS = 0 + IPPROTO_ICMP = 1 + IPPROTO_ICMPV6 = 58 + IPPROTO_IDP = 22 + IPPROTO_IGMP = 2 + IPPROTO_IP = 0 + IPPROTO_IPCOMP = 108 + IPPROTO_IPIP = 4 + IPPROTO_IPV4 = 4 + IPPROTO_IPV6 = 41 + IPPROTO_MAX = 256 + IPPROTO_MAXID = 259 + IPPROTO_MOBILE = 55 + IPPROTO_MPLS = 137 + IPPROTO_NONE = 59 + IPPROTO_PFSYNC = 240 + IPPROTO_PIM = 103 + IPPROTO_PUP = 12 + IPPROTO_RAW = 255 + IPPROTO_ROUTING = 43 + IPPROTO_RSVP = 46 + IPPROTO_SCTP = 132 + IPPROTO_TCP = 6 + IPPROTO_TP = 29 + IPPROTO_UDP = 17 + IPPROTO_UDPLITE = 136 + IPSEC6_OUTSA = 56 + IPSEC_AUTH_LEVEL_DEFAULT = 1 + IPSEC_ESP_NETWORK_LEVEL_DEFAULT = 1 + IPSEC_ESP_TRANS_LEVEL_DEFAULT = 1 + IPSEC_IPCOMP_LEVEL_DEFAULT = 1 + IPSEC_LEVEL_AVAIL = 0x01 + IPSEC_LEVEL_BYPASS = 0x00 + IPSEC_LEVEL_DEFAULT = 1 + IPSEC_LEVEL_NONE = 0x00 + IPSEC_LEVEL_REQUIRE = 0x03 + IPSEC_LEVEL_UNIQUE = 0x04 + IPSEC_LEVEL_USE = 0x02 + IPV6CTL_ACCEPT_RTADV = 12 + IPV6CTL_AUTO_FLOWLABEL = 17 + IPV6CTL_DAD_COUNT = 16 + IPV6CTL_DAD_PENDING = 49 + IPV6CTL_DEFHLIM = 3 + IPV6CTL_DEFMCASTHLIM = 18 + IPV6CTL_FORWARDING = 1 + IPV6CTL_FORWSRCRT = 5 + IPV6CTL_HDRNESTLIMIT = 15 + IPV6CTL_IFQUEUE = 51 + IPV6CTL_LOG_INTERVAL = 14 + IPV6CTL_MAXDYNROUTES = 48 + IPV6CTL_MAXFRAGPACKETS = 9 + IPV6CTL_MAXFRAGS = 41 + IPV6CTL_MAXID = 55 + IPV6CTL_MCAST_PMTU = 44 + IPV6CTL_MFORWARDING = 42 + IPV6CTL_MRTMFC = 53 + IPV6CTL_MRTMIF = 52 + IPV6CTL_MRTPROTO = 8 + IPV6CTL_MRTSTATS = 7 + IPV6CTL_MTUDISCTIMEOUT = 50 + IPV6CTL_MULTIPATH = 43 + IPV6CTL_NEIGHBORGCTHRESH = 45 + IPV6CTL_SENDREDIRECTS = 2 + IPV6CTL_SOIIKEY = 54 + IPV6CTL_SOURCECHECK = 10 + IPV6CTL_SOURCECHECK_LOGINT = 11 + IPV6CTL_STATS = 6 + IPV6CTL_USE_DEPRECATED = 21 + IPV6PROTO_MAXID = 259 + IPV6_AUTH_LEVEL = 53 + IPV6_AUTOFLOWLABEL = 59 + IPV6_CHECKSUM = 26 + IPV6_DEFAULT_MULTICAST_HOPS = 1 + IPV6_DEFAULT_MULTICAST_LOOP = 1 + IPV6_DONTFRAG = 62 + IPV6_DSTOPTS = 50 + IPV6_ESP_NETWORK_LEVEL = 55 + IPV6_ESP_TRANS_LEVEL = 54 + IPV6_HOPLIMIT = 47 + IPV6_HOPOPTS = 49 + IPV6_IPCOMP_LEVEL = 60 + IPV6_JOIN_GROUP = 12 + IPV6_LEAVE_GROUP = 13 + IPV6_MINHOPCOUNT = 65 + IPV6_MULTICAST_HOPS = 10 + IPV6_MULTICAST_IF = 9 + IPV6_MULTICAST_LOOP = 11 + IPV6_NEXTHOP = 48 + IPV6_PATHMTU = 44 + IPV6_PIPEX = 63 + IPV6_PKTINFO = 46 + IPV6_PORTRANGE = 14 + IPV6_PORTRANGE_DEFAULT = 0 + IPV6_PORTRANGE_HIGH = 1 + IPV6_PORTRANGE_LOW = 2 + IPV6_RECVDSTOPTS = 40 + IPV6_RECVDSTPORT = 64 + IPV6_RECVHOPLIMIT = 37 + IPV6_RECVHOPOPTS = 39 + IPV6_RECVPATHMTU = 43 + IPV6_RECVPKTINFO = 36 + IPV6_RECVRTHDR = 38 + IPV6_RECVTCLASS = 57 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 51 + IPV6_RTHDRDSTOPTS = 35 + IPV6_RTHDR_LOOSE = 0 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_TCLASS = 61 + IPV6_UNICAST_HOPS = 4 + IPV6_USE_MIN_MTU = 42 + IPV6_V6ONLY = 27 + IP_ADD_MEMBERSHIP = 12 + IP_AUTH_LEVEL = 20 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DROP_MEMBERSHIP = 13 + IP_ESP_NETWORK_LEVEL = 22 + IP_ESP_TRANS_LEVEL = 21 + IP_HDRINCL = 2 + IP_IPCOMP_LEVEL = 29 + IP_IPDEFTTL = 37 + IP_IPSECFLOWINFO = 36 + IP_IPSEC_LOCAL_AUTH = 27 + IP_IPSEC_LOCAL_CRED = 25 + IP_IPSEC_LOCAL_ID = 23 + IP_IPSEC_REMOTE_AUTH = 28 + IP_IPSEC_REMOTE_CRED = 26 + IP_IPSEC_REMOTE_ID = 24 + IP_MAX_MEMBERSHIPS = 4095 + IP_MINTTL = 32 + IP_MIN_MEMBERSHIPS = 15 + IP_MULTICAST_IF = 9 + IP_MULTICAST_LOOP = 11 + IP_MULTICAST_TTL = 10 + IP_OPTIONS = 1 + IP_PIPEX = 34 + IP_PORTRANGE = 19 + IP_PORTRANGE_DEFAULT = 0 + IP_PORTRANGE_HIGH = 1 + IP_PORTRANGE_LOW = 2 + IP_RECVDSTADDR = 7 + IP_RECVDSTPORT = 33 + IP_RECVIF = 30 + IP_RECVOPTS = 5 + IP_RECVRETOPTS = 6 + IP_RECVRTABLE = 35 + IP_RECVTTL = 31 + IP_RETOPTS = 8 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 7 + IP_TOS = 3 + IP_TTL = 4 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + SIN6_LEN = 0 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_IN_ADDR_DECLARED = 0 + X_IN_TYPES_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_NETINET6_IN6_H_ = 0 + X_NETINET_IN_H_ = 0 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SA_FAMILY_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SOCKLEN_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: in.h,v 1.141 2021/06/02 00:09:57 dlg Exp $ +// $NetBSD: in.h,v 1.20 1996/02/13 23:41:47 christos Exp $ + +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Constants and structures defined by the internet system, +// Per RFC 790, September 1981, and numerous additions. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// <sys/_endian.h> is pulled in by <sys/types.h> + +type Sa_family_t = X__sa_family_t /* in.h:58:23 */ // sockaddr address family type + +type In_addr_t = X__in_addr_t /* in.h:63:21 */ // base type for internet address +type In_port_t = X__in_port_t /* in.h:64:21 */ // IP port type + +// Protocols + +// Only used internally, so it can be outside the range of valid IP protocols + +// From FreeBSD: +// +// Local port number conventions: +// +// When a user does a bind(2) or connect(2) with a port number of zero, +// a non-conflicting local port address is chosen. +// The default range is IPPORT_RESERVED through +// IPPORT_USERRESERVED, although that is settable by sysctl. +// +// A user may set the IPPROTO_IP option IP_PORTRANGE to change this +// default assignment range. +// +// The value IP_PORTRANGE_DEFAULT causes the default behavior. +// +// The value IP_PORTRANGE_HIGH changes the range of candidate port numbers +// into the "high" range. These are reserved for client outbound connections +// which do not want to be filtered by any firewalls. +// +// The value IP_PORTRANGE_LOW changes the range to the "low" are +// that is (by convention) restricted to privileged processes. This +// convention is based on "vouchsafe" principles only. It is only secure +// if you trust the remote host to restrict these ports. +// +// The default range of ports and the high range can be changed by +// sysctl(3). (net.inet.ip.port{hi}{first,last}) +// +// Changing those values has bad security implications if you are +// using a a stateless firewall that is allowing packets outside of that +// range in order to allow transparent outgoing connections. +// +// Such a firewall configuration will generally depend on the use of these +// default values. If you change them, you may find your Security +// Administrator looking for you with a heavy object. + +// Ports < IPPORT_RESERVED are reserved for +// privileged processes (e.g. root). +// Ports > IPPORT_USERRESERVED are reserved +// for servers, not necessarily privileged. + +// Default local port range to use by setting IP_PORTRANGE_HIGH + +// IP Version 4 Internet address (a structure for historical reasons) +type In_addr = struct{ Fs_addr In_addr_t } /* in.h:167:1 */ + +// last return value of *_input(), meaning "all job for this pkt is done". + +// Definitions of bits in internet address integers. +// On subnets, the decomposition of addresses to host and net parts +// is done according to subnet mask, not the masks here. +// +// By byte-swapping the constants, we avoid ever having to byte-swap IP +// addresses inside the kernel. Unfortunately, user-level programs rely +// on these macros not doing byte-swapping. + +// These ones aren't really net and host fields, but routing needn't know. + +// IP Version 4 socket address. +type Sockaddr_in = struct { + Fsin_len U_int8_t + Fsin_family Sa_family_t + Fsin_port In_port_t + Fsin_addr struct{ Fs_addr In_addr_t } + Fsin_zero [8]Int8_t +} /* in.h:258:1 */ + +// Structure used to describe IP options. +// Used to store options internally, to pass them to a process, +// or to restore options retrieved earlier. +// The ip_dst is used for the first-hop gateway when using a source route +// (this gets put into the header proper). +type Ip_opts = struct { + Fip_dst struct{ Fs_addr In_addr_t } + Fip_opts [40]Int8_t +} /* in.h:273:1 */ + +// Options for use with [gs]etsockopt at the IP level. +// First word of comment is data type; bool is stored in int. +// source address to use + +// Security levels - IPsec, not IPSO + +// Defaults and limits for options +// The imo_membership vector for each socket starts at IP_MIN_MEMBERSHIPS +// and is dynamically allocated at run-time, bounded by IP_MAX_MEMBERSHIPS, +// and is reallocated when needed, sized according to a power-of-two increment. + +// Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. +type Ip_mreq = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_interface struct{ Fs_addr In_addr_t } +} /* in.h:359:1 */ + +type Ip_mreqn = struct { + Fimr_multiaddr struct{ Fs_addr In_addr_t } + Fimr_address struct{ Fs_addr In_addr_t } + Fimr_ifindex int32 +} /* in.h:364:1 */ + +// Argument for IP_PORTRANGE: +// - which range to search when port is unspecified at bind() or connect() + +// Buffer lengths for strings containing printable IP addresses + +// Definitions for inet sysctl operations. +// +// Third level is protocol number. +// Fourth level is desired variable within that protocol. + +// Names for IP sysctl objects + +// INET6 stuff +// $OpenBSD: in6.h,v 1.109 2021/06/02 00:20:50 dlg Exp $ +// $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $ + +// Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the project nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Copyright (c) 1982, 1986, 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)in.h 8.3 (Berkeley) 1/3/94 + +// Identification of the network protocol stack +// for *BSD-current/release: http://www.kame.net/dev/cvsweb2.cgi/kame/COVERAGE +// has the table of implementation/integration differences. + +// IPv6 address +type In6_addr = struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } +} /* in6.h:81:1 */ + +// Socket address for IPv6 +type Sockaddr_in6 = struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t +} /* in6.h:106:1 */ + +// IPv6 route structure +type Route_in6 = struct { + Fro_rt uintptr + Fro_tableid U_long + Fro_dst struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t + } + F__ccgo_pad1 [4]byte +} /* in6.h:150:1 */ + +// Definition of some useful macros to handle IP6 addresses + +// Macros started with IPV6_ADDR is KAME local + +// Unspecified + +// Loopback + +// IPv4 compatible + +// Mapped + +// Unicast Scope +// Note that we must check topmost 10 bits only, not 16 bits (see RFC2373). + +// Multicast + +// Options for use with [gs]etsockopt at the IPV6 level. +// First word of comment is data type; bool is stored in int. + +// new socket options introduced in RFC3542 + +// More new socket options introduced in RFC3542 + +// to define items, should talk with KAME guys first, for *BSD compatibility + +// Defaults and limits for options + +// Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. +type Ipv6_mreq = struct { + Fipv6mr_multiaddr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fipv6mr_interface uint32 +} /* in6.h:366:1 */ + +// IPV6_PKTINFO: Packet information(RFC3542 sec 6) +type In6_pktinfo = struct { + Fipi6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fipi6_ifindex uint32 +} /* in6.h:374:1 */ + +// Control structure for IPV6_RECVPATHMTU socket option. +// XXX Not allowed here by POSIX, but required by RFC 3542, so go +// XXX with the code on the pavement. +type Ip6_mtuinfo = struct { + Fip6m_addr struct { + Fsin6_len U_int8_t + Fsin6_family Sa_family_t + Fsin6_port In_port_t + Fsin6_flowinfo U_int32_t + Fsin6_addr struct { + F__u6_addr struct { + F__ccgo_pad1 [0]uint32 + F__u6_addr8 [16]U_int8_t + } + } + Fsin6_scope_id U_int32_t + } + Fip6m_mtu U_int32_t +} /* in6.h:384:1 */ + +// Argument for IPV6_PORTRANGE: +// - which range to search when port is unspecified at bind() or connect() + +type Socklen_t = X__socklen_t /* in6.h:401:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/poll/capi_darwin_amd64.go b/vendor/modernc.org/libc/poll/capi_darwin_amd64.go index 2589fc07f..d2930fc06 100644 --- a/vendor/modernc.org/libc/poll/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/poll/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package poll -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/poll/capi_darwin_arm64.go b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go index b5e9cffdb..89d2d1899 100644 --- a/vendor/modernc.org/libc/poll/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/poll/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package poll -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/poll/capi_freebsd_386.go b/vendor/modernc.org/libc/poll/capi_freebsd_386.go new file mode 100644 index 000000000..90c3cc8f3 --- /dev/null +++ b/vendor/modernc.org/libc/poll/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo poll/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_freebsd_386.go -pkgname poll', DO NOT EDIT. + +package poll + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go b/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go new file mode 100644 index 000000000..bb5c3230f --- /dev/null +++ b/vendor/modernc.org/libc/poll/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo poll/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_openbsd_amd64.go -pkgname poll', DO NOT EDIT. + +package poll + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/poll/poll_darwin_amd64.go b/vendor/modernc.org/libc/poll/poll_darwin_amd64.go index 08f1916a8..c05a90c2e 100644 --- a/vendor/modernc.org/libc/poll/poll_darwin_amd64.go +++ b/vendor/modernc.org/libc/poll/poll_darwin_amd64.go @@ -60,6 +60,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2004 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/poll/poll_darwin_arm64.go b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go index 30ae157ba..27d1110a0 100644 --- a/vendor/modernc.org/libc/poll/poll_darwin_arm64.go +++ b/vendor/modernc.org/libc/poll/poll_darwin_arm64.go @@ -62,6 +62,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2004 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/poll/poll_freebsd_386.go b/vendor/modernc.org/libc/poll/poll_freebsd_386.go new file mode 100644 index 000000000..d90135e8f --- /dev/null +++ b/vendor/modernc.org/libc/poll/poll_freebsd_386.go @@ -0,0 +1,882 @@ +// Code generated by 'ccgo poll/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_freebsd_386.go -pkgname poll', DO NOT EDIT. + +package poll + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + INFTIM = -1 + POLLERR = 0x0008 + POLLHUP = 0x0010 + POLLIN = 0x0001 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x0020 + POLLOUT = 0x0004 + POLLPRI = 0x0002 + POLLRDBAND = 0x0080 + POLLRDNORM = 0x0040 + POLLSTANDARD = 511 + POLLWRBAND = 0x0100 + POLLWRNORM = 4 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SYS_CDEFS_H_ = 0 + X_SYS_POLL_H_ = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIME_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1997 Peter Wemm <peter@freebsd.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// This file is intended to be compatible with the traditional poll.h. + +type Nfds_t = uint32 /* poll.h:42:22 */ + +// This structure is passed as an array to poll(2). +type Pollfd = struct { + Ffd int32 + Fevents int16 + Frevents int16 +} /* poll.h:47:1 */ + +// Requestable events. If poll(2) finds any of these set, they are +// copied to revents on return. +// XXX Note that FreeBSD doesn't make much distinction between POLLPRI +// and POLLRDBAND since none of the file types have distinct priority +// bands - and only some have an urgent "mode". +// XXX Note POLLIN isn't really supported in true SVSV terms. Under SYSV +// POLLIN includes all of normal, band and urgent data. Most poll handlers +// on FreeBSD only treat it as "normal" data. + +// General FreeBSD extension (currently only supported for sockets): + +// These events are set if they occur regardless of whether they were +// requested. + +// Request that poll() wait forever. +// XXX in SYSV, this is defined in stropts.h, which is not included +// by poll.h. + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Time_t = X__time_t /* _timespec.h:42:18 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type Sigset_t = X__sigset_t /* poll.h:108:20 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go b/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go new file mode 100644 index 000000000..36114dd6d --- /dev/null +++ b/vendor/modernc.org/libc/poll/poll_openbsd_amd64.go @@ -0,0 +1,480 @@ +// Code generated by 'ccgo poll/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_openbsd_amd64.go -pkgname poll', DO NOT EDIT. + +package poll + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + INFTIM = -1 + POLLERR = 0x0008 + POLLHUP = 0x0010 + POLLIN = 0x0001 + POLLNORM = 64 + POLLNVAL = 0x0020 + POLLOUT = 0x0004 + POLLPRI = 0x0002 + POLLRDBAND = 0x0080 + POLLRDNORM = 0x0040 + POLLWRBAND = 0x0100 + POLLWRNORM = 4 + X_FILE_OFFSET_BITS = 64 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_RET_PROTECTOR = 1 + X_SIGSET_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_POLL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIME_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: poll.h,v 1.3 2003/10/29 16:41:13 deraadt Exp $ + +// Written by Theo de Raadt, Public Domain +// +// Typical poll() implementations expect poll.h to be in /usr/include. +// However this is not a convenient place for the real definitions. +// $OpenBSD: poll.h,v 1.15 2016/06/07 06:12:37 deraadt Exp $ + +// Copyright (c) 1996 Theo de Raadt +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +type Pollfd = struct { + Ffd int32 + Fevents int16 + Frevents int16 +} /* poll.h:31:9 */ + +// $OpenBSD: poll.h,v 1.3 2003/10/29 16:41:13 deraadt Exp $ + +// Written by Theo de Raadt, Public Domain +// +// Typical poll() implementations expect poll.h to be in /usr/include. +// However this is not a convenient place for the real definitions. +// $OpenBSD: poll.h,v 1.15 2016/06/07 06:12:37 deraadt Exp $ + +// Copyright (c) 1996 Theo de Raadt +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +type Pollfd_t = Pollfd /* poll.h:35:3 */ + +type Nfds_t = uint32 /* poll.h:37:22 */ + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +type Sigset_t = uint32 /* poll.h:64:22 */ + +type Time_t = X__time_t /* poll.h:69:18 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* poll.h:74:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go b/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go index 2fa8f0e2c..ac443ae54 100644 --- a/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/pthread/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package pthread -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go index c772a1c12..b7c71969d 100644 --- a/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/pthread/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package pthread -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/pthread/capi_freebsd_386.go b/vendor/modernc.org/libc/pthread/capi_freebsd_386.go new file mode 100644 index 000000000..b3a38c3a1 --- /dev/null +++ b/vendor/modernc.org/libc/pthread/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo pthread/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_freebsd_386.go -pkgname pthread', DO NOT EDIT. + +package pthread + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go b/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go new file mode 100644 index 000000000..d84c07816 --- /dev/null +++ b/vendor/modernc.org/libc/pthread/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo pthread/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_openbsd_amd64.go -pkgname pthread', DO NOT EDIT. + +package pthread + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/pthread/capi_windows_386.go b/vendor/modernc.org/libc/pthread/capi_windows_386.go index 619b6d062..eb0511cc6 100644 --- a/vendor/modernc.org/libc/pthread/capi_windows_386.go +++ b/vendor/modernc.org/libc/pthread/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo pthread/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_windows_386.go -pkgname pthread', DO NOT EDIT. +// Code generated by 'ccgo pthread\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread\pthread_windows_386.go -pkgname pthread', DO NOT EDIT. package pthread diff --git a/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go b/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go index a53bf4898..ad34564fa 100644 --- a/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go +++ b/vendor/modernc.org/libc/pthread/pthread_darwin_amd64.go @@ -476,6 +476,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2012 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -640,6 +642,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -1645,15 +1654,6 @@ type Sched_param = struct { // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go index 0cc056236..ad851e8bb 100644 --- a/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go +++ b/vendor/modernc.org/libc/pthread/pthread_darwin_arm64.go @@ -513,6 +513,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2012 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -677,6 +679,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1670,15 +1679,6 @@ type Sched_param = struct { // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go b/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go new file mode 100644 index 000000000..b41902365 --- /dev/null +++ b/vendor/modernc.org/libc/pthread/pthread_freebsd_386.go @@ -0,0 +1,1169 @@ +// Code generated by 'ccgo pthread/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_freebsd_386.go -pkgname pthread', DO NOT EDIT. + +package pthread + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + CLK_TCK = 128 + CLOCKS_PER_SEC = 128 + CLOCK_BOOTTIME = 5 + CLOCK_MONOTONIC = 4 + CLOCK_MONOTONIC_COARSE = 12 + CLOCK_MONOTONIC_FAST = 12 + CLOCK_MONOTONIC_PRECISE = 11 + CLOCK_PROCESS_CPUTIME_ID = 15 + CLOCK_PROF = 2 + CLOCK_REALTIME = 0 + CLOCK_REALTIME_COARSE = 10 + CLOCK_REALTIME_FAST = 10 + CLOCK_REALTIME_PRECISE = 9 + CLOCK_SECOND = 13 + CLOCK_THREAD_CPUTIME_ID = 14 + CLOCK_UPTIME = 5 + CLOCK_UPTIME_FAST = 8 + CLOCK_UPTIME_PRECISE = 7 + CLOCK_VIRTUAL = 1 + PTHREAD_BARRIER_SERIAL_THREAD = -1 + PTHREAD_CANCEL_ASYNCHRONOUS = 2 + PTHREAD_CANCEL_DEFERRED = 0 + PTHREAD_CANCEL_DISABLE = 1 + PTHREAD_CANCEL_ENABLE = 0 + PTHREAD_CREATE_DETACHED = 1 + PTHREAD_CREATE_JOINABLE = 0 + PTHREAD_DESTRUCTOR_ITERATIONS = 4 + PTHREAD_DETACHED = 0x1 + PTHREAD_DONE_INIT = 1 + PTHREAD_EXPLICIT_SCHED = 0 + PTHREAD_INHERIT_SCHED = 0x4 + PTHREAD_KEYS_MAX = 256 + PTHREAD_MUTEX_ROBUST = 1 + PTHREAD_MUTEX_STALLED = 0 + PTHREAD_NEEDS_INIT = 0 + PTHREAD_NOFLOAT = 0x8 + PTHREAD_PRIO_INHERIT = 1 + PTHREAD_PRIO_NONE = 0 + PTHREAD_PRIO_PROTECT = 2 + PTHREAD_PROCESS_PRIVATE = 0 + PTHREAD_PROCESS_SHARED = 1 + PTHREAD_SCOPE_PROCESS = 0 + PTHREAD_SCOPE_SYSTEM = 0x2 + PTHREAD_STACK_MIN = 2048 + PTHREAD_THREADS_MAX = 4294967295 + SCHED_FIFO = 1 + SCHED_OTHER = 2 + SCHED_RR = 3 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_LOCALE_T_DEFINED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PID_T_DECLARED = 0 + X_PTHREAD_H_ = 0 + X_PTHREAD_T_DECLARED = 0 + X_SCHED_H_ = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SYS__CLOCK_ID_H = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DECLARED = 0 + X_XLOCALE_LOCALE1_H = 0 + I386 = 1 + Unix = 1 +) + +// Run-time invariant values: + +// Flags for threads and thread attributes. + +// Values for process shared/private attributes. + +// Flags for cancelling threads + +// Flags for once initialization. + +// Static once initialization values. + +// Static initialization values. + +// Default attribute arguments (draft 4, deprecated). + +// Mutex types (Single UNIX Specification, Version 2, 1997). +// +// Note that a mutex attribute with one of the following types: +// +// PTHREAD_MUTEX_NORMAL +// PTHREAD_MUTEX_RECURSIVE +// +// will deviate from POSIX specified semantics. +const ( /* pthread.h:130:1: */ + PTHREAD_MUTEX_ERRORCHECK = 1 // Default POSIX mutex + PTHREAD_MUTEX_RECURSIVE = 2 // Recursive mutex + PTHREAD_MUTEX_NORMAL = 3 // No error checking + PTHREAD_MUTEX_ADAPTIVE_NP = 4 // Adaptive mutex, spins briefly before blocking on lock + PTHREAD_MUTEX_TYPE_MAX = 5 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: (BSD-4-Clause AND BSD-2-Clause-FreeBSD) +// +// Copyright (c) 1996, 1997 +// HD Associates, Inc. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by HD Associates, Inc +// and Jukka Antero Ukkonen. +// 4. Neither the name of the author nor the names of any co-contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL HD ASSOCIATES OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// - +// Copyright (c) 2002-2008, Jeffrey Roberson <jeff@freebsd.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice unmodified, this list of conditions, and the following +// disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// POSIX 1003.1b Process Scheduling + +// POSIX scheduling policies + +type Sched_param = struct{ Fsched_priority int32 } /* sched.h:240:1 */ + +// POSIX scheduling declarations for userland. +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Time_t = X__time_t /* _timespec.h:42:18 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Pid_t = X__pid_t /* sched.h:253:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// These macros are shared between time.h and sys/time.h. + +// Note: The values shown below as a comment for the __POSIX_VISIBLE values are +// the ones FreeBSD traditionally used based on our reading of the POSIX +// standards. However, glibc uses 199309 for all of them, even those many were +// not defined there. To remain bug compatible with glibc means more software +// that relied on the glibc behavior will compile easily on FreeBSD. +// +// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl +// port until it can be updated properly. It incorrectly assumes that this was a +// standard value. It will be moved back to the __BSD_VISIBLE section once the +// issue is corrected. + +// FreeBSD-specific clocks. + +// Linux compatible names. + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// Frequency of the clock ticks reported by clock(). + +type Clock_t = X__clock_t /* time.h:63:19 */ + +// New in POSIX 1003.1b-1993. +type Clockid_t = X__clockid_t /* time.h:82:21 */ + +type Timer_t = X__timer_t /* time.h:87:19 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +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 + Ftm_gmtoff int32 + Ftm_zone uintptr +} /* time.h:101:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011, 2012 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _time.h:36:25 */ + +type X_pthread_cleanup_info = struct{ Fpthread_cleanup_pad [8]X__uintptr_t } /* pthread.h:143:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go b/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go new file mode 100644 index 000000000..a1bee6a56 --- /dev/null +++ b/vendor/modernc.org/libc/pthread/pthread_openbsd_amd64.go @@ -0,0 +1,2020 @@ +// Code generated by 'ccgo pthread/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_openbsd_amd64.go -pkgname pthread', DO NOT EDIT. + +package pthread + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ARG_MAX = 524288 + BC_BASE_MAX = 2147483647 + BC_DIM_MAX = 65535 + BC_SCALE_MAX = 2147483647 + BC_STRING_MAX = 2147483647 + BIG_ENDIAN = 4321 + BUS_ADRALN = 1 + BUS_ADRERR = 2 + BUS_OBJERR = 3 + BYTE_ORDER = 1234 + CHAR_BIT = 8 + CHAR_MAX = 0x7f + CHAR_MIN = -128 + CHILD_MAX = 80 + CLD_CONTINUED = 6 + CLD_DUMPED = 3 + CLD_EXITED = 1 + CLD_KILLED = 2 + CLD_STOPPED = 5 + CLD_TRAPPED = 4 + CLK_TCK = 100 + CLOCKS_PER_SEC = 100 + CLOCK_BOOTTIME = 6 + CLOCK_MONOTONIC = 3 + CLOCK_PROCESS_CPUTIME_ID = 2 + CLOCK_REALTIME = 0 + CLOCK_THREAD_CPUTIME_ID = 4 + CLOCK_UPTIME = 5 + COLL_WEIGHTS_MAX = 2 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + EMT_TAGOVF = 1 + EXPR_NEST_MAX = 32 + FD_SETSIZE = 1024 + FPE_FLTDIV = 3 + FPE_FLTINV = 7 + FPE_FLTOVF = 4 + FPE_FLTRES = 6 + FPE_FLTSUB = 8 + FPE_FLTUND = 5 + FPE_INTDIV = 1 + FPE_INTOVF = 2 + GID_MAX = 4294967295 + HOST_NAME_MAX = 255 + ILL_BADSTK = 8 + ILL_COPROC = 7 + ILL_ILLADR = 3 + ILL_ILLOPC = 1 + ILL_ILLOPN = 2 + ILL_ILLTRP = 4 + ILL_PRVOPC = 5 + ILL_PRVREG = 6 + INT_MAX = 0x7fffffff + INT_MIN = -2147483648 + IOV_MAX = 1024 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LINE_MAX = 2048 + LINK_MAX = 32767 + LITTLE_ENDIAN = 1234 + LLONG_MAX = 0x7fffffffffffffff + LLONG_MIN = -9223372036854775808 + LOGIN_NAME_MAX = 32 + LONG_BIT = 64 + LONG_MAX = 0x7fffffffffffffff + LONG_MIN = -9223372036854775808 + MAX_CANON = 255 + MAX_INPUT = 255 + MB_LEN_MAX = 4 + MINSIGSTKSZ = 12288 + NAME_MAX = 255 + NBBY = 8 + NGROUPS_MAX = 16 + NL_ARGMAX = 9 + NL_LANGMAX = 14 + NL_MSGMAX = 32767 + NL_SETMAX = 255 + NL_TEXTMAX = 255 + NSIG = 33 + NSIGBUS = 3 + NSIGCLD = 6 + NSIGEMT = 1 + NSIGFPE = 8 + NSIGILL = 8 + NSIGSEGV = 2 + NSIGTRAP = 2 + NZERO = 20 + OPEN_MAX = 64 + PATH_MAX = 1024 + PDP_ENDIAN = 3412 + PIPE_BUF = 512 + PTHREAD_BARRIER_SERIAL_THREAD = -1 + PTHREAD_CANCEL_ASYNCHRONOUS = 2 + PTHREAD_CANCEL_DEFERRED = 0 + PTHREAD_CANCEL_DISABLE = 1 + PTHREAD_CANCEL_ENABLE = 0 + PTHREAD_CREATE_DETACHED = 1 + PTHREAD_CREATE_JOINABLE = 0 + PTHREAD_DESTRUCTOR_ITERATIONS = 4 + PTHREAD_DETACHED = 0x1 + PTHREAD_DONE_INIT = 1 + PTHREAD_EXPLICIT_SCHED = 0 + PTHREAD_INHERIT_SCHED = 0x4 + PTHREAD_KEYS_MAX = 256 + PTHREAD_NEEDS_INIT = 0 + PTHREAD_NOFLOAT = 0x8 + PTHREAD_PRIO_INHERIT = 1 + PTHREAD_PRIO_NONE = 0 + PTHREAD_PRIO_PROTECT = 2 + PTHREAD_PROCESS_PRIVATE = 0 + PTHREAD_PROCESS_SHARED = 1 + PTHREAD_SCOPE_PROCESS = 0 + PTHREAD_SCOPE_SYSTEM = 0x2 + PTHREAD_STACK_MIN = 4096 + PTHREAD_THREADS_MAX = 18446744073709551615 + QUAD_MAX = 0x7fffffffffffffff + QUAD_MIN = -9223372036854775808 + RE_DUP_MAX = 255 + SA_NOCLDSTOP = 0x0008 + SA_NOCLDWAIT = 0x0020 + SA_NODEFER = 0x0010 + SA_ONSTACK = 0x0001 + SA_RESETHAND = 0x0004 + SA_RESTART = 0x0002 + SA_SIGINFO = 0x0040 + SCHAR_MAX = 0x7f + SCHAR_MIN = -128 + SCHED_FIFO = 1 + SCHED_OTHER = 2 + SCHED_RR = 3 + SEGV_ACCERR = 2 + SEGV_MAPERR = 1 + SEM_VALUE_MAX = 4294967295 + SHRT_MAX = 0x7fff + SHRT_MIN = -32768 + SIGABRT = 6 + SIGALRM = 14 + SIGBUS = 10 + SIGCHLD = 20 + SIGCONT = 19 + SIGEMT = 7 + SIGFPE = 8 + SIGHUP = 1 + SIGILL = 4 + SIGINFO = 29 + SIGINT = 2 + SIGIO = 23 + SIGIOT = 6 + SIGKILL = 9 + SIGPIPE = 13 + SIGPROF = 27 + SIGQUIT = 3 + SIGSEGV = 11 + SIGSTKSZ = 28672 + SIGSTOP = 17 + SIGSYS = 12 + SIGTERM = 15 + SIGTHR = 32 + SIGTRAP = 5 + SIGTSTP = 18 + SIGTTIN = 21 + SIGTTOU = 22 + SIGURG = 16 + SIGUSR1 = 30 + SIGUSR2 = 31 + SIGVTALRM = 26 + SIGWINCH = 28 + SIGXCPU = 24 + SIGXFSZ = 25 + SIG_BLOCK = 1 + SIG_SETMASK = 3 + SIG_UNBLOCK = 2 + SIZE_T_MAX = 18446744073709551615 + SI_LWP = -1 + SI_MAXSZ = 128 + SI_NOINFO = 32767 + SI_QUEUE = -2 + SI_TIMER = -3 + SI_USER = 0 + SSIZE_MAX = 9223372036854775807 + SS_DISABLE = 0x0004 + SS_ONSTACK = 0x0001 + SV_INTERRUPT = 2 + SV_ONSTACK = 1 + SV_RESETHAND = 4 + SYMLINK_MAX = 1024 + SYMLOOP_MAX = 32 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + TRAP_BRKPT = 1 + TRAP_TRACE = 2 + TTY_NAME_MAX = 260 + UCHAR_MAX = 0xff + UID_MAX = 4294967295 + UINT_MAX = 0xffffffff + ULLONG_MAX = 0xffffffffffffffff + ULONG_MAX = 0xffffffffffffffff + UQUAD_MAX = 0xffffffffffffffff + USHRT_MAX = 0xffff + WORD_BIT = 32 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LIMITS_H_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE_LIMITS_H_ = 0 + X_MACHINE_SIGNAL_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_NSIG = 33 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_POSIX2_BC_BASE_MAX = 99 + X_POSIX2_BC_DIM_MAX = 2048 + X_POSIX2_BC_SCALE_MAX = 99 + X_POSIX2_BC_STRING_MAX = 1000 + X_POSIX2_CHARCLASS_NAME_MAX = 14 + X_POSIX2_COLL_WEIGHTS_MAX = 2 + X_POSIX2_EXPR_NEST_MAX = 32 + X_POSIX2_LINE_MAX = 2048 + X_POSIX2_RE_DUP_MAX = 255 + X_POSIX_ARG_MAX = 4096 + X_POSIX_CHILD_MAX = 25 + X_POSIX_CLOCKRES_MIN = 20000000 + X_POSIX_HOST_NAME_MAX = 255 + X_POSIX_LINK_MAX = 8 + X_POSIX_LOGIN_NAME_MAX = 9 + X_POSIX_MAX_CANON = 255 + X_POSIX_MAX_INPUT = 255 + X_POSIX_NAME_MAX = 14 + X_POSIX_NGROUPS_MAX = 8 + X_POSIX_OPEN_MAX = 20 + X_POSIX_PATH_MAX = 256 + X_POSIX_PIPE_BUF = 512 + X_POSIX_RE_DUP_MAX = 255 + X_POSIX_SEM_NSEMS_MAX = 256 + X_POSIX_SEM_VALUE_MAX = 32767 + X_POSIX_SSIZE_MAX = 32767 + X_POSIX_STREAM_MAX = 8 + X_POSIX_SYMLINK_MAX = 255 + X_POSIX_SYMLOOP_MAX = 8 + X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 + X_POSIX_THREAD_KEYS_MAX = 128 + X_POSIX_THREAD_THREADS_MAX = 4 + X_POSIX_TTY_NAME_MAX = 9 + X_POSIX_TZNAME_MAX = 6 + X_PTHREAD_H_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SCHED_H_ = 0 + X_SELECT_DEFINED_ = 0 + X_SIGSET_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_LIMITS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_SIGINFO_H = 0 + X_SYS_SIGNAL_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TIME_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIMEVAL_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + X_XOPEN_IOV_MAX = 16 + X_XOPEN_NAME_MAX = 255 + X_XOPEN_PATH_MAX = 1024 + Unix = 1 +) + +// Flags for once initialization. + +// Static once initialization values. + +// Static initialization values. + +// Mutex types. +const ( /* pthread.h:168:1: */ + PTHREAD_MUTEX_ERRORCHECK = 1 // Error checking mutex + PTHREAD_MUTEX_RECURSIVE = 2 // Recursive mutex + PTHREAD_MUTEX_NORMAL = 3 // No error checking + PTHREAD_MUTEX_STRICT_NP = 4 // Strict error checking + PTHREAD_MUTEX_TYPE_MAX = 5 +) + +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 */ + +// $OpenBSD: pthread.h,v 1.4 2018/03/05 01:15:26 deraadt Exp $ + +// Copyright (c) 1993, 1994 by Chris Provenzano, proven@mit.edu +// Copyright (c) 1995-1998 by John Birrell <jb@cimlogic.com.au> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by Chris Provenzano. +// 4. The name of Chris Provenzano may not be used to endorse or promote +// products derived from this software without specific prior written +// permission. +// +// THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD: pthread.h,v 1.13 1999/07/31 08:36:07 rse Exp $ + +// Header files. +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $ +// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.2 (Berkeley) 7/10/94 + +// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther Exp $ + +// - +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)select.h 8.2 (Berkeley) 1/4/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* select.h:41:1 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* select.h:49:1 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +// We don't want to pollute the namespace with select(2) internals. +// Non-underscore versions are exposed later #if __BSD_VISIBLE +type X__fd_mask = Uint32_t /* select.h:70:18 */ + +type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */ + +type Fd_set = Fd_set1 /* select.h:76:3 */ + +type Sigset_t = uint32 /* select.h:122:22 */ + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:72:1 */ + +// Operations on timevals. + +// Operations on timespecs. + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:148:1 */ + +// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE}) +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:157:1 */ + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Per-process and per-thread clocks encode the PID or TID into the +// high bits, with the type in the bottom bits + +// Structure defined by POSIX 1003.1b to be like a itimerval, +// but with timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* _time.h:56:1 */ + +type Locale_t = uintptr /* time.h:107:14 */ + +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 + F__ccgo_pad1 [4]byte + Ftm_gmtoff int64 + Ftm_zone uintptr +} /* time.h:111:1 */ + +// $OpenBSD: signal.h,v 1.29 2018/04/18 16:05:20 deraadt Exp $ +// $NetBSD: signal.h,v 1.21 1996/02/09 18:25:32 christos Exp $ + +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.2 (Berkeley) 1/21/94 + +// $OpenBSD: signal.h,v 1.9 2016/05/10 18:39:42 deraadt Exp $ +// $NetBSD: signal.h,v 1.2 2003/04/28 23:16:17 bjh21 Exp $ + +// Copyright (c) 1982, 1986, 1989, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 7.16 (Berkeley) 3/17/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +type Sig_atomic_t = int32 /* signal.h:40:13 */ + +// Information pushed on stack when a signal is delivered. +// This is used by the kernel to restore state following +// execution of the signal handler. It is also made available +// to the handler to allow it to restore state properly if +// a non-standard exit is performed. +type Sigcontext = struct { + Fsc_rdi int64 + Fsc_rsi int64 + Fsc_rdx int64 + Fsc_rcx int64 + Fsc_r8 int64 + Fsc_r9 int64 + Fsc_r10 int64 + Fsc_r11 int64 + Fsc_r12 int64 + Fsc_r13 int64 + Fsc_r14 int64 + Fsc_r15 int64 + Fsc_rbp int64 + Fsc_rbx int64 + Fsc_rax int64 + Fsc_gs int64 + Fsc_fs int64 + Fsc_es int64 + Fsc_ds int64 + Fsc_trapno int64 + Fsc_err int64 + Fsc_rip int64 + Fsc_cs int64 + Fsc_rflags int64 + Fsc_rsp int64 + Fsc_ss int64 + Fsc_fpstate uintptr + F__sc_unused int32 + Fsc_mask int32 + Fsc_cookie int64 +} /* signal.h:54:1 */ + +// Language spec says we must list exactly one parameter, even though we +// actually supply three. Ugh! + +// $OpenBSD: siginfo.h,v 1.12 2017/04/07 04:48:44 guenther Exp $ + +// Copyright (c) 1997 Theo de Raadt +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +type Sigval = struct { + F__ccgo_pad1 [0]uint64 + Fsival_int int32 + F__ccgo_pad2 [4]byte +} /* siginfo.h:33:1 */ + +// Negative signal codes are reserved for future use for +// user generated signals. + +// The machine dependent signal codes (SIGILL, SIGFPE, +// SIGSEGV, and SIGBUS) + +// SIGTRAP signal codes + +// SIGCHLD signal codes + +// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $ +// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.2 (Berkeley) 7/10/94 + +type Siginfo_t = struct { + Fsi_signo int32 + Fsi_code int32 + Fsi_errno int32 + F__ccgo_pad1 [4]byte + F_data struct { + F__ccgo_pad1 [0]uint64 + F_pad [29]int32 + F__ccgo_pad2 [4]byte + } +} /* siginfo.h:173:3 */ + +// Signal vector "template" used in sigaction call. +type Sigaction = struct { + F__sigaction_u struct{ F__sa_handler uintptr } + Fsa_mask Sigset_t + Fsa_flags int32 +} /* signal.h:112:1 */ + +// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler. + +// Flags for sigprocmask: + +type Sig_t = uintptr /* signal.h:146:14 */ // type of signal function + +// 4.3 compatibility: +// Signal vector "template" used in sigvec call. +type Sigvec = struct { + Fsv_handler uintptr + Fsv_mask int32 + Fsv_flags int32 +} /* signal.h:152:1 */ + +// Macro for converting signal number to a mask suitable for +// sigblock(). + +// Structure used in sigaltstack call. +type Sigaltstack = struct { + Fss_sp uintptr + Fss_size Size_t + Fss_flags int32 + F__ccgo_pad1 [4]byte +} /* signal.h:176:9 */ + +// Macro for converting signal number to a mask suitable for +// sigblock(). + +// Structure used in sigaltstack call. +type Stack_t = Sigaltstack /* signal.h:180:3 */ + +type Ucontext_t = Sigcontext /* signal.h:190:27 */ + +// $OpenBSD: limits.h,v 1.19 2015/01/20 22:09:50 tedu Exp $ +// $NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $ + +// Copyright (c) 1988 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 5.9 (Berkeley) 4/3/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: limits.h,v 1.10 2012/06/30 20:21:10 guenther Exp $ +// Copyright (c) 2002 Marc Espie. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD +// PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// Common definitions for limits.h. + +// Legacy +// $OpenBSD: limits.h,v 1.6 2015/04/30 13:42:08 millert Exp $ + +// Copyright (c) 1988 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 7.2 (Berkeley) 6/28/90 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// max value for unsigned long +// max value for a signed long +// min value for a signed long + +// max value for unsigned long long +// max value for a signed long long +// min value for a signed long long + +// $OpenBSD: syslimits.h,v 1.14 2020/04/02 18:00:00 deraadt Exp $ +// $NetBSD: syslimits.h,v 1.12 1995/10/05 05:26:19 thorpej Exp $ + +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)syslimits.h 8.1 (Berkeley) 6/2/93 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: sched.h,v 1.1 2017/10/15 23:40:33 guenther Exp $ + +// sched.h: POSIX 1003.1b Process Scheduling header + +// - +// Copyright (c) 1996, 1997 +// HD Associates, Inc. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by HD Associates, Inc +// and Jukka Antero Ukkonen. +// 4. Neither the name of the author nor the names of any co-contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL HD ASSOCIATES OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// Scheduling policies + +type Sched_param = struct{ Fsched_priority int32 } /* sched.h:51:1 */ + +type Pthread_once = struct { + Fstate int32 + F__ccgo_pad1 [4]byte + Fmutex Pthread_mutex_t +} /* pthread.h:101:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* pthread.h:112:26 */ +type Pthread_attr_t = uintptr /* pthread.h:113:30 */ +type Pthread_mutex_t = uintptr /* pthread.h:114:39 */ +type Pthread_mutexattr_t = uintptr /* pthread.h:115:35 */ +type Pthread_cond_t = uintptr /* pthread.h:116:30 */ +type Pthread_condattr_t = uintptr /* pthread.h:117:34 */ +type Pthread_key_t = int32 /* pthread.h:118:16 */ +type Pthread_once_t = Pthread_once /* pthread.h:119:30 */ +type Pthread_rwlock_t = uintptr /* pthread.h:120:32 */ +type Pthread_rwlockattr_t = uintptr /* pthread.h:121:35 */ +type Pthread_barrier_t = uintptr /* pthread.h:122:33 */ +type Pthread_barrierattr_t = uintptr /* pthread.h:123:36 */ +type Pthread_spinlock_t = uintptr /* pthread.h:124:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* pthread.h:132:14 */ +type Pthread_startroutine_t = uintptr /* pthread.h:133:14 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/pthread/pthread_windows_386.go b/vendor/modernc.org/libc/pthread/pthread_windows_386.go index c18aec3f2..a162ee963 100644 --- a/vendor/modernc.org/libc/pthread/pthread_windows_386.go +++ b/vendor/modernc.org/libc/pthread/pthread_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo pthread/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_windows_386.go -pkgname pthread', DO NOT EDIT. +// Code generated by 'ccgo pthread\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread\pthread_windows_386.go -pkgname pthread', DO NOT EDIT. package pthread @@ -114,10 +114,6 @@ const ( ETXTBSY = 139 EWOULDBLOCK = 140 EXDEV = 18 - GENERIC_ERRORCHECK_INITIALIZER = -2 - GENERIC_INITIALIZER = -1 - GENERIC_NORMAL_INITIALIZER = -1 - GENERIC_RECURSIVE_INITIALIZER = -3 INT_MAX = 2147483647 INT_MIN = -2147483648 LLONG_MAX = 9223372036854775807 @@ -129,7 +125,9 @@ const ( MAX_READ_LOCKS = 2147483646 MB_LEN_MAX = 5 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 NSIG = 23 @@ -236,7 +234,6 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 X_CRT_SYSTEM_DEFINED = 0 X_CRT_TERMINATE_DEFINED = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_CRT_WSYSTEM_DEFINED = 0 X_DEV_T_DEFINED = 0 X_DLL = 0 @@ -254,8 +251,6 @@ const ( X_I64_MIN = -9223372036854775808 X_I8_MAX = 127 X_I8_MIN = -128 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CORECRT_STARTUP = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 @@ -291,6 +286,7 @@ const ( X_POSIX_THREADS = 200112 X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 256 X_POSIX_THREAD_KEYS_MAX = 1048576 + X_POSIX_THREAD_SAFE_FUNCTIONS = 200112 X_POSIX_TIMEOUTS = 200112 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 @@ -299,6 +295,7 @@ const ( X_P_NOWAITO = 3 X_P_OVERLAY = 2 X_P_WAIT = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_ERRCODE_VALUES_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD @@ -426,11 +423,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -451,12 +443,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -497,28 +483,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -544,29 +528,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ // ISO C Standard: 7.17 Common definitions <stddef.h> @@ -630,9 +614,9 @@ type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ type Max_align_t = struct { F__max_align_ll int64 F__max_align_ld float64 -} /* stddef.h:427:3 */ +} /* stddef.h:426:3 */ -// Copyright (C) 1989-2020 Free Software Foundation, Inc. +// Copyright (C) 1989-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -738,18 +722,7 @@ type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */ type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */ -// Includes a definition of _pid_t and pid_t -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - -type X_beginthread_proc_type = uintptr /* process.h:32:16 */ -type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */ - -type X_tls_callback_type = uintptr /* process.h:61:16 */ - -// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// Copyright (C) 1992-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -801,7 +774,7 @@ type X_tls_callback_type = uintptr /* process.h:61:16 */ // are semantically identical, with a limit of 259 characters for the // path name, plus one for a terminating NUL, for a total of 260. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -978,11 +951,11 @@ type Pthread_attr_t1 = struct { type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:251:31 */ // synchronization objects -type Pthread_spinlock_t = Intptr_t /* pthread.h:268:18 */ -type Pthread_mutex_t = Intptr_t /* pthread.h:269:18 */ -type Pthread_cond_t = Intptr_t /* pthread.h:270:18 */ -type Pthread_rwlock_t = Intptr_t /* pthread.h:271:18 */ -type Pthread_barrier_t = uintptr /* pthread.h:272:14 */ +type Pthread_spinlock_t = uintptr /* pthread.h:268:14 */ +type Pthread_mutex_t = uintptr /* pthread.h:269:14 */ +type Pthread_cond_t = uintptr /* pthread.h:270:14 */ +type Pthread_rwlock_t = uintptr /* pthread.h:271:14 */ +type Pthread_barrier_t = uintptr /* pthread.h:272:14 */ type Clockid_t = int32 /* pthread.h:389:13 */ @@ -1103,6 +1076,23 @@ type Clockid_t = int32 /* pthread.h:389:13 */ // // are present. +// _SC_THREAD_SAFE_FUNCTIONS +// Affected functions are +// +// readdir_r(), +// getgrgid_r(), +// getgrnam_r(), +// getpwnam_r(), +// getpwuid_r(), +// flockfile(), +// ftrylockfile(), +// funlockfile(), +// getc_unlocked(), +// getchar_unlocked(), +// putc_unlocked(), +// putchar_unlocked(), +// strerror_r(), + // _SC_TIMEOUTS // The functions // diff --git a/vendor/modernc.org/libc/pthread_all.go b/vendor/modernc.org/libc/pthread_all.go index 698572fe7..4e2b7f105 100644 --- a/vendor/modernc.org/libc/pthread_all.go +++ b/vendor/modernc.org/libc/pthread_all.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !freebsd -// +build !freebsd +//go:build !freebsd && !openbsd +// +build !freebsd,!openbsd package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go b/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go index 16e7deedd..38f65ad64 100644 --- a/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/pwd/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package pwd -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go index 0231bc167..4ce4663e3 100644 --- a/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/pwd/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package pwd -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/pwd/capi_freebsd_386.go b/vendor/modernc.org/libc/pwd/capi_freebsd_386.go new file mode 100644 index 000000000..26510fa6b --- /dev/null +++ b/vendor/modernc.org/libc/pwd/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo pwd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_freebsd_386.go -pkgname pwd', DO NOT EDIT. + +package pwd + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go b/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go new file mode 100644 index 000000000..c5df3b424 --- /dev/null +++ b/vendor/modernc.org/libc/pwd/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo pwd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_openbsd_amd64.go -pkgname pwd', DO NOT EDIT. + +package pwd + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go b/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go index a7b467d9b..5edc4ff27 100644 --- a/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go +++ b/vendor/modernc.org/libc/pwd/pwd_darwin_amd64.go @@ -78,6 +78,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 1989, 1993 // The Regents of the University of California. All rights reserved. @@ -240,6 +242,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go index 1cd771aa9..cc5a1b2b2 100644 --- a/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go +++ b/vendor/modernc.org/libc/pwd/pwd_darwin_arm64.go @@ -80,6 +80,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c) 1989, 1993 // The Regents of the University of California. All rights reserved. @@ -242,6 +244,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go b/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go new file mode 100644 index 000000000..17575d114 --- /dev/null +++ b/vendor/modernc.org/libc/pwd/pwd_freebsd_386.go @@ -0,0 +1,670 @@ +// Code generated by 'ccgo pwd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_freebsd_386.go -pkgname pwd', DO NOT EDIT. + +package pwd + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + X_FILE_OFFSET_BITS = 64 + X_GID_T_DECLARED = 0 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MASTERPASSWD = "master.passwd" + X_MP_DB = "pwd.db" + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PASSWD = "passwd" + X_PASSWORD_EFMT1 = 95 + X_PASSWORD_LEN = 128 + X_PATH_MASTERPASSWD = "/etc/master.passwd" + X_PATH_MP_DB = "/etc/pwd.db" + X_PATH_PASSWD = "/etc/passwd" + X_PATH_PWD = "/etc" + X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb" + X_PATH_SMP_DB = "/etc/spwd.db" + X_PWD_CURRENT_VERSION = 4 + X_PWD_H_ = 0 + X_PWF_CHANGE = 16 + X_PWF_CLASS = 32 + X_PWF_DIR = 128 + X_PWF_EXPIRE = 512 + X_PWF_FILES = 0x1000 + X_PWF_GECOS = 64 + X_PWF_GID = 8 + X_PWF_HESIOD = 0x3000 + X_PWF_NAME = 1 + X_PWF_NIS = 0x2000 + X_PWF_PASSWD = 2 + X_PWF_SHELL = 256 + X_PWF_SOURCE = 0x3000 + X_PWF_UID = 4 + X_PW_KEYBYNAME = 49 + X_PW_KEYBYNUM = 50 + X_PW_KEYBYUID = 51 + X_PW_KEYYPBYNUM = 53 + X_PW_KEYYPENABLED = 52 + X_PW_VERSION_MASK = 240 + X_SIZE_T_DECLARED = 0 + X_SMP_DB = "spwd.db" + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIME_T_DECLARED = 0 + X_UID_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)pwd.h 8.2 (Berkeley) 1/21/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Gid_t = X__gid_t /* pwd.h:47:18 */ + +type Time_t = X__time_t /* pwd.h:52:18 */ + +type Uid_t = X__uid_t /* pwd.h:57:18 */ + +// Historically, the keys in _PATH_MP_DB/_PATH_SMP_DB had the format +// `1 octet tag | key', where the tag is one of the _PW_KEY* values +// listed below. These values happen to be ASCII digits. Starting +// with FreeBSD 5.1, the tag is now still a single octet, but the +// upper 4 bits are interpreted as a version. Pre-FreeBSD 5.1 format +// entries are version `3' -- this conveniently results in the same +// key values as before. The new, architecture-independent entries +// are version `4'. +// As it happens, some applications read the database directly. +// (Bad app, no cookie!) Thus, we leave the _PW_KEY* symbols at their +// old pre-FreeBSD 5.1 values so these apps still work. Consequently +// we have to muck around a bit more to get the correct, versioned +// tag, and that is what the _PW_VERSIONED macro is about. + +// The database also contains a key to indicate the format version of +// the entries therein. There may be other, older versioned entries +// as well. + +type Passwd = struct { + Fpw_name uintptr + Fpw_passwd uintptr + Fpw_uid Uid_t + Fpw_gid Gid_t + Fpw_change Time_t + Fpw_class uintptr + Fpw_gecos uintptr + Fpw_dir uintptr + Fpw_shell uintptr + Fpw_expire Time_t + Fpw_fields int32 +} /* pwd.h:114:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go b/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go new file mode 100644 index 000000000..d26f04f6d --- /dev/null +++ b/vendor/modernc.org/libc/pwd/pwd_openbsd_amd64.go @@ -0,0 +1,729 @@ +// Code generated by 'ccgo pwd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_openbsd_amd64.go -pkgname pwd', DO NOT EDIT. + +package pwd + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PASSWORD_EFMT1 = 95 + X_PASSWORD_LEN = 128 + X_PASSWORD_NOCHG = 0x04 + X_PASSWORD_NOEXP = 0x08 + X_PASSWORD_NOGID = 0x02 + X_PASSWORD_NOUID = 0x01 + X_PASSWORD_OMITV7 = 0x02 + X_PASSWORD_SECUREONLY = 0x01 + X_PATH_MASTERPASSWD = "/etc/master.passwd" + X_PATH_MASTERPASSWD_LOCK = "/etc/ptmp" + X_PATH_MP_DB = "/etc/pwd.db" + X_PATH_PASSWD = "/etc/passwd" + X_PATH_PWD_MKDB = "/usr/sbin/pwd_mkdb" + X_PATH_SMP_DB = "/etc/spwd.db" + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_PWD_H_ = 0 + X_PW_BUF_LEN = 1024 + X_PW_KEYBYNAME = 49 + X_PW_KEYBYNUM = 50 + X_PW_KEYBYUID = 51 + X_PW_NAME_LEN = 31 + X_PW_YPTOKEN = "__YP!" + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: pwd.h,v 1.26 2018/09/13 12:31:15 millert Exp $ +// $NetBSD: pwd.h,v 1.9 1996/05/15 21:36:45 jtc Exp $ + +// - +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// Portions Copyright(C) 1995, 1996, Jason Downs. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)pwd.h 8.2 (Berkeley) 1/21/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// Should be MAXLOGNAME - 1 + +// Flags for pw_mkdb(3) + +type Passwd = struct { + Fpw_name uintptr + Fpw_passwd uintptr + Fpw_uid Uid_t + Fpw_gid Gid_t + Fpw_change Time_t + Fpw_class uintptr + Fpw_gecos uintptr + Fpw_dir uintptr + Fpw_shell uintptr + Fpw_expire Time_t +} /* pwd.h:80:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/signal/capi_darwin_amd64.go b/vendor/modernc.org/libc/signal/capi_darwin_amd64.go index d9c9a11ac..841f5c772 100644 --- a/vendor/modernc.org/libc/signal/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/signal/capi_darwin_amd64.go @@ -2,4 +2,7 @@ package signal -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, + "__sigbits": {}, +} diff --git a/vendor/modernc.org/libc/signal/capi_darwin_arm64.go b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go index 57a492131..c630a75e9 100644 --- a/vendor/modernc.org/libc/signal/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/signal/capi_darwin_arm64.go @@ -2,4 +2,7 @@ package signal -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, + "__sigbits": {}, +} diff --git a/vendor/modernc.org/libc/signal/capi_freebsd_386.go b/vendor/modernc.org/libc/signal/capi_freebsd_386.go new file mode 100644 index 000000000..8bc6ff39f --- /dev/null +++ b/vendor/modernc.org/libc/signal/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo signal/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_freebsd_386.go -pkgname signal', DO NOT EDIT. + +package signal + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go b/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go new file mode 100644 index 000000000..43b1b50de --- /dev/null +++ b/vendor/modernc.org/libc/signal/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo signal/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_openbsd_amd64.go -pkgname signal', DO NOT EDIT. + +package signal + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/signal/capi_windows_386.go b/vendor/modernc.org/libc/signal/capi_windows_386.go index 2ac7e272f..d76512770 100644 --- a/vendor/modernc.org/libc/signal/capi_windows_386.go +++ b/vendor/modernc.org/libc/signal/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo signal/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_windows_386.go -pkgname signal', DO NOT EDIT. +// Code generated by 'ccgo signal\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal\signal_windows_386.go -pkgname signal', DO NOT EDIT. package signal diff --git a/vendor/modernc.org/libc/signal/more_freebsd_386.go b/vendor/modernc.org/libc/signal/more_freebsd_386.go new file mode 100644 index 000000000..c1791b2a5 --- /dev/null +++ b/vendor/modernc.org/libc/signal/more_freebsd_386.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package signal + +const ( + // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0) + SIG_DFL = 0 + // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1) + SIG_IGN = 1 +) diff --git a/vendor/modernc.org/libc/signal/more_openbsd_amd64.go b/vendor/modernc.org/libc/signal/more_openbsd_amd64.go new file mode 100644 index 000000000..c1791b2a5 --- /dev/null +++ b/vendor/modernc.org/libc/signal/more_openbsd_amd64.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package signal + +const ( + // sys/sys/signal.h:139:#define SIG_DFL ((__sighandler_t *)0) + SIG_DFL = 0 + // sys/sys/signal.h:140:#define SIG_IGN ((__sighandler_t *)1) + SIG_IGN = 1 +) diff --git a/vendor/modernc.org/libc/signal/signal_darwin_amd64.go b/vendor/modernc.org/libc/signal/signal_darwin_amd64.go index eae618826..e820a96bf 100644 --- a/vendor/modernc.org/libc/signal/signal_darwin_amd64.go +++ b/vendor/modernc.org/libc/signal/signal_darwin_amd64.go @@ -186,6 +186,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -314,6 +316,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -1300,15 +1309,6 @@ type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/signal/signal_darwin_arm64.go b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go index d9827248b..9a412b1da 100644 --- a/vendor/modernc.org/libc/signal/signal_darwin_arm64.go +++ b/vendor/modernc.org/libc/signal/signal_darwin_arm64.go @@ -216,6 +216,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -344,6 +346,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1339,15 +1348,6 @@ type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/signal/signal_freebsd_386.go b/vendor/modernc.org/libc/signal/signal_freebsd_386.go new file mode 100644 index 000000000..1ac459938 --- /dev/null +++ b/vendor/modernc.org/libc/signal/signal_freebsd_386.go @@ -0,0 +1,1658 @@ +// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_freebsd_386.go -pkgname signal', DO NOT EDIT. + +package signal + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BUS_ADRALN = 1 + BUS_ADRERR = 2 + BUS_OBJERR = 3 + BUS_OOMERR = 100 + CLD_CONTINUED = 6 + CLD_DUMPED = 3 + CLD_EXITED = 1 + CLD_KILLED = 2 + CLD_STOPPED = 5 + CLD_TRAPPED = 4 + FPE_FLTDIV = 3 + FPE_FLTINV = 7 + FPE_FLTOVF = 4 + FPE_FLTRES = 6 + FPE_FLTSUB = 8 + FPE_FLTUND = 5 + FPE_INTDIV = 2 + FPE_INTOVF = 1 + ILL_BADSTK = 8 + ILL_COPROC = 7 + ILL_ILLADR = 3 + ILL_ILLOPC = 1 + ILL_ILLOPN = 2 + ILL_ILLTRP = 4 + ILL_PRVOPC = 5 + ILL_PRVREG = 6 + MINSIGSTKSZ = 2048 + NSIG = 32 + POLL_ERR = 4 + POLL_HUP = 6 + POLL_IN = 1 + POLL_MSG = 3 + POLL_OUT = 2 + POLL_PRI = 5 + SA_NOCLDSTOP = 0x0008 + SA_NOCLDWAIT = 0x0020 + SA_NODEFER = 0x0010 + SA_ONSTACK = 0x0001 + SA_RESETHAND = 0x0004 + SA_RESTART = 0x0002 + SA_SIGINFO = 0x0040 + SEGV_ACCERR = 2 + SEGV_MAPERR = 1 + SEGV_PKUERR = 100 + SIGABRT = 6 + SIGALRM = 14 + SIGBUS = 10 + SIGCHLD = 20 + SIGCONT = 19 + SIGEMT = 7 + SIGEV_KEVENT = 3 + SIGEV_NONE = 0 + SIGEV_SIGNAL = 1 + SIGEV_THREAD = 2 + SIGEV_THREAD_ID = 4 + SIGFPE = 8 + SIGHUP = 1 + SIGILL = 4 + SIGINFO = 29 + SIGINT = 2 + SIGIO = 23 + SIGIOT = 6 + SIGKILL = 9 + SIGLIBRT = 33 + SIGLWP = 32 + SIGPIPE = 13 + SIGPROF = 27 + SIGQUIT = 3 + SIGRTMAX = 126 + SIGRTMIN = 65 + SIGSEGV = 11 + SIGSTKSZ = 34816 + SIGSTOP = 17 + SIGSYS = 12 + SIGTERM = 15 + SIGTHR = 32 + SIGTRAP = 5 + SIGTSTP = 18 + SIGTTIN = 21 + SIGTTOU = 22 + SIGURG = 16 + SIGUSR1 = 30 + SIGUSR2 = 31 + SIGVTALRM = 26 + SIGWINCH = 28 + SIGXCPU = 24 + SIGXFSZ = 25 + SIG_BLOCK = 1 + SIG_SETMASK = 3 + SIG_UNBLOCK = 2 + SI_ASYNCIO = 0x10004 + SI_KERNEL = 0x10006 + SI_LWP = 0x10007 + SI_MESGQ = 0x10005 + SI_NOINFO = 0 + SI_QUEUE = 0x10002 + SI_TIMER = 0x10003 + SI_UNDEFINED = 0 + SI_USER = 0x10001 + SS_DISABLE = 0x0004 + SS_ONSTACK = 0x0001 + SV_INTERRUPT = 2 + SV_NOCLDSTOP = 8 + SV_NODEFER = 16 + SV_ONSTACK = 1 + SV_RESETHAND = 4 + SV_SIGINFO = 64 + TRAP_BRKPT = 1 + TRAP_CAP = 4 + TRAP_DTRACE = 3 + TRAP_TRACE = 2 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE_SIGNAL_H_ = 0 + X_MACHINE_UCONTEXT_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MC_FLAG_MASK = 7 + X_MC_FPFMT_387 = 0x10001 + X_MC_FPFMT_NODEV = 0x10000 + X_MC_FPFMT_XMM = 0x10002 + X_MC_FPOWNED_FPU = 0x20001 + X_MC_FPOWNED_NONE = 0x20000 + X_MC_FPOWNED_PCB = 0x20002 + X_MC_HASBASES = 0x2 + X_MC_HASFPXSTATE = 0x4 + X_MC_HASSEGS = 0x1 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_SIGNAL_H_ = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SIGNAL_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_SYS__UCONTEXT_H_ = 0 + X_TIME_T_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_X86_SIGNAL_H = 1 + X_X86_UCONTEXT_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.3 (Berkeley) 3/30/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.1 (Berkeley) 6/11/93 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// Copyright (c) 2003 Peter Wemm. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.1 (Berkeley) 6/11/93 +// $FreeBSD$ + +// Machine-dependent signal definitions + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +type Sig_atomic_t = int32 /* signal.h:47:13 */ + +type Sigcontext = struct { + Fsc_mask struct{ F__bits [4]X__uint32_t } + Fsc_onstack int32 + Fsc_gs int32 + Fsc_fs int32 + Fsc_es int32 + Fsc_ds int32 + Fsc_edi int32 + Fsc_esi int32 + Fsc_ebp int32 + Fsc_isp int32 + Fsc_ebx int32 + Fsc_edx int32 + Fsc_ecx int32 + Fsc_eax int32 + Fsc_trapno int32 + Fsc_err int32 + Fsc_eip int32 + Fsc_cs int32 + Fsc_efl int32 + Fsc_esp int32 + Fsc_ss int32 + Fsc_len int32 + Fsc_fpformat int32 + Fsc_ownedfp int32 + Fsc_flags int32 + Fsc_fpstate [128]int32 + Fsc_fsbase int32 + Fsc_gsbase int32 + Fsc_xfpustate int32 + Fsc_xfpustate_len int32 + Fsc_spare2 [4]int32 +} /* signal.h:50:1 */ + +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Time_t = X__time_t /* _timespec.h:42:18 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +type Uid_t = X__uid_t /* signal.h:61:18 */ + +type Sigset_t = X__sigset_t /* signal.h:166:20 */ + +type Sigval = struct{ Fsival_int int32 } /* signal.h:171:1 */ + +type Sigevent = struct { + Fsigev_notify int32 + Fsigev_signo int32 + Fsigev_value struct{ Fsival_int int32 } + F_sigev_un struct { + F_threadid X__lwpid_t + F__ccgo_pad1 [28]byte + } +} /* signal.h:195:1 */ + +type X__siginfo = struct { + Fsi_signo int32 + Fsi_errno int32 + Fsi_code int32 + Fsi_pid X__pid_t + Fsi_uid X__uid_t + Fsi_status int32 + Fsi_addr uintptr + Fsi_value struct{ Fsival_int int32 } + F_reason struct { + F_fault struct{ F_trapno int32 } + F__ccgo_pad1 [28]byte + } +} /* signal.h:229:9 */ + +type Siginfo_t = X__siginfo /* signal.h:263:3 */ + +// Signal vector "template" used in sigaction call. +type Sigaction = struct { + F__sigaction_u struct{ F__sa_handler uintptr } + Fsa_flags int32 + Fsa_mask Sigset_t +} /* signal.h:368:1 */ + +// If SA_SIGINFO is set, sa_sigaction must be used instead of sa_handler. + +// a timer set by timer_settime(). +// an asynchronous I/O request. +// message on an empty message queue. + +type Sig_t = uintptr /* signal.h:420:24 */ + +type Sigaltstack = struct { + Fss_sp uintptr + Fss_size X__size_t + Fss_flags int32 +} /* signal.h:428:9 */ + +type Stack_t = Sigaltstack /* signal.h:428:26 */ + +// 4.3 compatibility: +// Signal vector "template" used in sigvec call. +type Sigvec = struct { + Fsv_handler uintptr + Fsv_mask int32 + Fsv_flags int32 +} /* signal.h:452:1 */ + +// Keep this in one place only + +// Structure used in sigstack call. +type Sigstack = struct { + Fss_sp uintptr + Fss_onstack int32 +} /* signal.h:479:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 2003 Peter Wemm +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// Keep _MC_* values similar to amd64 + +type X__mcontext = struct { + Fmc_onstack X__register_t + Fmc_gs X__register_t + Fmc_fs X__register_t + Fmc_es X__register_t + Fmc_ds X__register_t + Fmc_edi X__register_t + Fmc_esi X__register_t + Fmc_ebp X__register_t + Fmc_isp X__register_t + Fmc_ebx X__register_t + Fmc_edx X__register_t + Fmc_ecx X__register_t + Fmc_eax X__register_t + Fmc_trapno X__register_t + Fmc_err X__register_t + Fmc_eip X__register_t + Fmc_cs X__register_t + Fmc_eflags X__register_t + Fmc_esp X__register_t + Fmc_ss X__register_t + Fmc_len int32 + Fmc_fpformat int32 + Fmc_ownedfp int32 + Fmc_flags X__register_t + Fmc_fpstate [128]int32 + Fmc_fsbase X__register_t + Fmc_gsbase X__register_t + Fmc_xfpustate X__register_t + Fmc_xfpustate_len X__register_t + Fmc_spare2 [4]int32 +} /* ucontext.h:44:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 2003 Peter Wemm +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// Keep _MC_* values similar to amd64 + +type Mcontext_t = X__mcontext /* ucontext.h:94:3 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +type X__ucontext = struct { + Fuc_sigmask X__sigset_t + Fuc_mcontext Mcontext_t + Fuc_link uintptr + Fuc_stack struct { + Fss_sp uintptr + Fss_size X__size_t + Fss_flags int32 + } + Fuc_flags int32 + F__spare__ [4]int32 +} /* _ucontext.h:36:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1999 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer +// in this position and unchanged. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +type Ucontext_t = X__ucontext /* _ucontext.h:52:3 */ + +type Pid_t = X__pid_t /* signal.h:60:18 */ // XXX +type X__pthread_t = uintptr /* signal.h:67:24 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go b/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go new file mode 100644 index 000000000..14b66c869 --- /dev/null +++ b/vendor/modernc.org/libc/signal/signal_openbsd_amd64.go @@ -0,0 +1,1386 @@ +// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_openbsd_amd64.go -pkgname signal', DO NOT EDIT. + +package signal + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BUS_ADRALN = 1 + BUS_ADRERR = 2 + BUS_OBJERR = 3 + BYTE_ORDER = 1234 + CLD_CONTINUED = 6 + CLD_DUMPED = 3 + CLD_EXITED = 1 + CLD_KILLED = 2 + CLD_STOPPED = 5 + CLD_TRAPPED = 4 + CLK_TCK = 100 + CLOCKS_PER_SEC = 100 + CLOCK_BOOTTIME = 6 + CLOCK_MONOTONIC = 3 + CLOCK_PROCESS_CPUTIME_ID = 2 + CLOCK_REALTIME = 0 + CLOCK_THREAD_CPUTIME_ID = 4 + CLOCK_UPTIME = 5 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + EMT_TAGOVF = 1 + FD_SETSIZE = 1024 + FPE_FLTDIV = 3 + FPE_FLTINV = 7 + FPE_FLTOVF = 4 + FPE_FLTRES = 6 + FPE_FLTSUB = 8 + FPE_FLTUND = 5 + FPE_INTDIV = 1 + FPE_INTOVF = 2 + ILL_BADSTK = 8 + ILL_COPROC = 7 + ILL_ILLADR = 3 + ILL_ILLOPC = 1 + ILL_ILLOPN = 2 + ILL_ILLTRP = 4 + ILL_PRVOPC = 5 + ILL_PRVREG = 6 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LITTLE_ENDIAN = 1234 + MINSIGSTKSZ = 12288 + NBBY = 8 + NSIG = 33 + NSIGBUS = 3 + NSIGCLD = 6 + NSIGEMT = 1 + NSIGFPE = 8 + NSIGILL = 8 + NSIGSEGV = 2 + NSIGTRAP = 2 + PDP_ENDIAN = 3412 + SA_NOCLDSTOP = 0x0008 + SA_NOCLDWAIT = 0x0020 + SA_NODEFER = 0x0010 + SA_ONSTACK = 0x0001 + SA_RESETHAND = 0x0004 + SA_RESTART = 0x0002 + SA_SIGINFO = 0x0040 + SEGV_ACCERR = 2 + SEGV_MAPERR = 1 + SIGABRT = 6 + SIGALRM = 14 + SIGBUS = 10 + SIGCHLD = 20 + SIGCONT = 19 + SIGEMT = 7 + SIGFPE = 8 + SIGHUP = 1 + SIGILL = 4 + SIGINFO = 29 + SIGINT = 2 + SIGIO = 23 + SIGIOT = 6 + SIGKILL = 9 + SIGPIPE = 13 + SIGPROF = 27 + SIGQUIT = 3 + SIGSEGV = 11 + SIGSTKSZ = 28672 + SIGSTOP = 17 + SIGSYS = 12 + SIGTERM = 15 + SIGTHR = 32 + SIGTRAP = 5 + SIGTSTP = 18 + SIGTTIN = 21 + SIGTTOU = 22 + SIGURG = 16 + SIGUSR1 = 30 + SIGUSR2 = 31 + SIGVTALRM = 26 + SIGWINCH = 28 + SIGXCPU = 24 + SIGXFSZ = 25 + SIG_BLOCK = 1 + SIG_SETMASK = 3 + SIG_UNBLOCK = 2 + SI_LWP = -1 + SI_MAXSZ = 128 + SI_NOINFO = 32767 + SI_QUEUE = -2 + SI_TIMER = -3 + SI_USER = 0 + SS_DISABLE = 0x0004 + SS_ONSTACK = 0x0001 + SV_INTERRUPT = 2 + SV_ONSTACK = 1 + SV_RESETHAND = 4 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + TRAP_BRKPT = 1 + TRAP_TRACE = 2 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE_SIGNAL_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_NSIG = 33 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SELECT_DEFINED_ = 0 + X_SIGSET_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_SIGINFO_H = 0 + X_SYS_SIGNAL_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TIME_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIMEVAL_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + X_USER_SIGNAL_H = 0 + Unix = 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 */ + +// $OpenBSD: signal.h,v 1.26 2018/05/30 13:20:38 bluhm Exp $ +// $NetBSD: signal.h,v 1.8 1996/02/29 00:04:57 jtc Exp $ + +// - +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.3 (Berkeley) 3/30/94 + +// $OpenBSD: signal.h,v 1.29 2018/04/18 16:05:20 deraadt Exp $ +// $NetBSD: signal.h,v 1.21 1996/02/09 18:25:32 christos Exp $ + +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.2 (Berkeley) 1/21/94 + +// $OpenBSD: signal.h,v 1.9 2016/05/10 18:39:42 deraadt Exp $ +// $NetBSD: signal.h,v 1.2 2003/04/28 23:16:17 bjh21 Exp $ + +// Copyright (c) 1982, 1986, 1989, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 7.16 (Berkeley) 3/17/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +type Sig_atomic_t = int32 /* signal.h:40:13 */ + +// Information pushed on stack when a signal is delivered. +// This is used by the kernel to restore state following +// execution of the signal handler. It is also made available +// to the handler to allow it to restore state properly if +// a non-standard exit is performed. +type Sigcontext = struct { + Fsc_rdi int64 + Fsc_rsi int64 + Fsc_rdx int64 + Fsc_rcx int64 + Fsc_r8 int64 + Fsc_r9 int64 + Fsc_r10 int64 + Fsc_r11 int64 + Fsc_r12 int64 + Fsc_r13 int64 + Fsc_r14 int64 + Fsc_r15 int64 + Fsc_rbp int64 + Fsc_rbx int64 + Fsc_rax int64 + Fsc_gs int64 + Fsc_fs int64 + Fsc_es int64 + Fsc_ds int64 + Fsc_trapno int64 + Fsc_err int64 + Fsc_rip int64 + Fsc_cs int64 + Fsc_rflags int64 + Fsc_rsp int64 + Fsc_ss int64 + Fsc_fpstate uintptr + F__sc_unused int32 + Fsc_mask int32 + Fsc_cookie int64 +} /* signal.h:54:1 */ + +// Language spec says we must list exactly one parameter, even though we +// actually supply three. Ugh! + +type Sigset_t = uint32 /* signal.h:104:22 */ + +// $OpenBSD: siginfo.h,v 1.12 2017/04/07 04:48:44 guenther Exp $ + +// Copyright (c) 1997 Theo de Raadt +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +type Sigval = struct { + F__ccgo_pad1 [0]uint64 + Fsival_int int32 + F__ccgo_pad2 [4]byte +} /* siginfo.h:33:1 */ + +// Negative signal codes are reserved for future use for +// user generated signals. + +// The machine dependent signal codes (SIGILL, SIGFPE, +// SIGSEGV, and SIGBUS) + +// SIGTRAP signal codes + +// SIGCHLD signal codes + +// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $ +// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.2 (Berkeley) 7/10/94 + +// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther Exp $ + +// - +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)select.h 8.2 (Berkeley) 1/4/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* select.h:41:1 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* select.h:49:1 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +// We don't want to pollute the namespace with select(2) internals. +// Non-underscore versions are exposed later #if __BSD_VISIBLE +type X__fd_mask = Uint32_t /* select.h:70:18 */ + +type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */ + +type Fd_set = Fd_set1 /* select.h:76:3 */ + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:72:1 */ + +// Operations on timevals. + +// Operations on timespecs. + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:148:1 */ + +// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE}) +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:157:1 */ + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Per-process and per-thread clocks encode the PID or TID into the +// high bits, with the type in the bottom bits + +// Structure defined by POSIX 1003.1b to be like a itimerval, +// but with timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* _time.h:56:1 */ + +type Locale_t = uintptr /* time.h:107:14 */ + +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 + F__ccgo_pad1 [4]byte + Ftm_gmtoff int64 + Ftm_zone uintptr +} /* time.h:111:1 */ + +type Siginfo_t = struct { + Fsi_signo int32 + Fsi_code int32 + Fsi_errno int32 + F__ccgo_pad1 [4]byte + F_data struct { + F__ccgo_pad1 [0]uint64 + F_pad [29]int32 + F__ccgo_pad2 [4]byte + } +} /* siginfo.h:173:3 */ + +// Signal vector "template" used in sigaction call. +type Sigaction = struct { + F__sigaction_u struct{ F__sa_handler uintptr } + Fsa_mask Sigset_t + Fsa_flags int32 +} /* signal.h:112:1 */ + +// if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler. + +// Flags for sigprocmask: + +type Sig_t = uintptr /* signal.h:146:14 */ // type of signal function + +// 4.3 compatibility: +// Signal vector "template" used in sigvec call. +type Sigvec = struct { + Fsv_handler uintptr + Fsv_mask int32 + Fsv_flags int32 +} /* signal.h:152:1 */ + +// Macro for converting signal number to a mask suitable for +// sigblock(). + +// Structure used in sigaltstack call. +type Sigaltstack = struct { + Fss_sp uintptr + Fss_size Size_t + Fss_flags int32 + F__ccgo_pad1 [4]byte +} /* signal.h:176:9 */ + +// Macro for converting signal number to a mask suitable for +// sigblock(). + +// Structure used in sigaltstack call. +type Stack_t = Sigaltstack /* signal.h:180:3 */ + +type Ucontext_t = Sigcontext /* signal.h:190:27 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/signal/signal_windows_386.go b/vendor/modernc.org/libc/signal/signal_windows_386.go index e14d880c8..2b488a957 100644 --- a/vendor/modernc.org/libc/signal/signal_windows_386.go +++ b/vendor/modernc.org/libc/signal/signal_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_windows_386.go -pkgname signal', DO NOT EDIT. +// Code generated by 'ccgo signal\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal\signal_windows_386.go -pkgname signal', DO NOT EDIT. package signal @@ -32,7 +32,9 @@ const ( DUMMYUNIONNAME8 = 0 DUMMYUNIONNAME9 = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 NSIG = 23 @@ -65,12 +67,9 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -85,6 +84,7 @@ const ( X_PGLOBAL = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIG_ATOMIC_T_DEFINED = 0 @@ -139,11 +139,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -164,12 +159,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -210,28 +199,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -257,29 +244,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ // // Copyright (c) 2013-2016 mingw-w64 project diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go index ad9b9cf1b..274e16c93 100644 --- a/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package stdio -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go index 5c824d92b..7e98026e2 100644 --- a/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package stdio -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/stdio/capi_freebsd_386.go b/vendor/modernc.org/libc/stdio/capi_freebsd_386.go new file mode 100644 index 000000000..b173d4759 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo stdio/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_freebsd_386.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go new file mode 100644 index 000000000..c3c582d98 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo stdio/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_openbsd_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_windows_386.go b/vendor/modernc.org/libc/stdio/capi_windows_386.go index 22f366ae8..280ea7c0c 100644 --- a/vendor/modernc.org/libc/stdio/capi_windows_386.go +++ b/vendor/modernc.org/libc/stdio/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo stdio/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_windows_386.go -pkgname stdio', DO NOT EDIT. +// Code generated by 'ccgo stdio\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio\stdio_windows_386.go -pkgname stdio', DO NOT EDIT. package stdio diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go index f09862604..f6f20867a 100644 --- a/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go +++ b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go @@ -18,7 +18,6 @@ const ( BUFSIZ = 1024 EOF = -1 FILENAME_MAX = 1024 - FIXINC_WRAP_STDIO_H_STDIO_STDARG_H = 1 FOPEN_MAX = 20 L_ctermid = 1024 L_tmpnam = 1024 @@ -90,46 +89,7 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (C) 1989-2021 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. -// -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// ISO C Standard: 7.15 Variable arguments <stdarg.h> - -// Define __gnuc_va_list. - -type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ - -// Define the standard macros for the user, -// if this invocation was from the user program. +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ // Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved. // @@ -321,6 +281,13 @@ type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -727,15 +694,6 @@ type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go index d361e7a8e..76157f5fc 100644 --- a/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go +++ b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go @@ -18,7 +18,6 @@ const ( BUFSIZ = 1024 EOF = -1 FILENAME_MAX = 1024 - FIXINC_WRAP_STDIO_H_STDIO_STDARG_H = 1 FOPEN_MAX = 20 L_ctermid = 1024 L_tmpnam = 1024 @@ -127,46 +126,7 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdio.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (C) 1989-2021 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. -// -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -// ISO C Standard: 7.15 Variable arguments <stdarg.h> - -// Define __gnuc_va_list. - -type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ - -// Define the standard macros for the user, -// if this invocation was from the user program. +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ // Copyright (c) 2000, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved. // @@ -358,6 +318,13 @@ type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -797,15 +764,6 @@ type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go new file mode 100644 index 000000000..7314579d3 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_386.go @@ -0,0 +1,746 @@ +// Code generated by 'ccgo stdio/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_freebsd_386.go -pkgname stdio', DO NOT EDIT. + +package stdio + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BUFSIZ = 1024 + EOF = -1 + FILENAME_MAX = 1024 + FOPEN_MAX = 20 + L_ctermid = 1024 + L_cuserid = 17 + L_tmpnam = 1024 + P_tmpdir = "/tmp/" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 308915776 + X_FILE_OFFSET_BITS = 64 + X_FSTDIO = 0 + X_FTRUNCATE_DECLARED = 0 + X_ILP32 = 1 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_LSEEK_DECLARED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MMAP_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_RSIZE_T_DEFINED = 0 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_STDFILE_DECLARED = 0 + X_STDIO_H_ = 0 + X_STDSTREAM_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TRUNCATE_DECLARED = 0 + X_VA_LIST_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Chris Torek. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stdio.h 8.5 (Berkeley) 4/29/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Fpos_t = X__off_t /* stdio.h:47:18 */ + +type Rsize_t = Size_t /* stdio.h:56:16 */ + +type Off_t = X__off_t /* stdio.h:62:18 */ +type Ssize_t = X__ssize_t /* stdio.h:66:19 */ + +type Off64_t = X__off64_t /* stdio.h:72:19 */ + +type Va_list = X__va_list /* stdio.h:77:19 */ + +// NB: to fit things in six character monocase externals, the stdio +// code uses the prefix `__s' for stdio objects, typically followed +// by a three-character attempt at a mnemonic. + +// stdio buffers +type X__sbuf = struct { + F_base uintptr + F_size int32 +} /* stdio.h:91:1 */ + +// stdio state variables. +// +// The following always hold: +// +// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), +// _lbfsize is -_bf._size, else _lbfsize is 0 +// if _flags&__SRD, _w is 0 +// if _flags&__SWR, _r is 0 +// +// This ensures that the getc and putc macros (or inline functions) never +// try to write or read from a file that is in `read' or `write' mode. +// (Moreover, they can, and do, automatically switch from read mode to +// write mode, and back, on "r+" and "w+" files.) +// +// _lbfsize is used only to make the inline line-buffered output stream +// code as compact as possible. +// +// _ub, _up, and _ur are used when ungetc() pushes back more characters +// than fit in the current _bf, or when ungetc() pushes back a character +// that does not match the previous one in _bf. When this happens, +// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff +// _ub._base!=NULL) and _up and _ur save the current values of _p and _r. +// +// Certain members of __sFILE are accessed directly via macros or +// inline functions. To preserve ABI compat, these members must not +// be disturbed. These members are marked below with (*). +type X__sFILE = struct { + F_p uintptr + F_r int32 + F_w int32 + F_flags int16 + F_file int16 + F_bf struct { + F_base uintptr + F_size int32 + } + F_lbfsize int32 + F_cookie uintptr + F_close uintptr + F_read uintptr + F_seek uintptr + F_write uintptr + F_ub struct { + F_base uintptr + F_size int32 + } + F_up uintptr + F_ur int32 + F_ubuf [3]uint8 + F_nbuf [1]uint8 + F_lb struct { + F_base uintptr + F_size int32 + } + F_blksize int32 + F_offset Fpos_t + F_fl_mutex uintptr + F_fl_owner uintptr + F_fl_count int32 + F_orientation int32 + F_mbstate X__mbstate_t + F_flags2 int32 +} /* stdio.h:124:1 */ + +type FILE = X__sFILE /* stdio.h:165:24 */ +type Cookie_io_functions_t = struct { + Fread uintptr + Fwrite uintptr + Fseek uintptr + Fclose uintptr +} /* stdio.h:428:3 */ + +// See ISO/IEC 9945-1 ANSI/IEEE Std 1003.1 Second Edition 1996-07-12 +// B.8.2.7 for the rationale behind the *_unlocked() macros. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go new file mode 100644 index 000000000..22978bf0b --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go @@ -0,0 +1,677 @@ +// Code generated by 'ccgo stdio/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_openbsd_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BUFSIZ = 1024 + BYTE_ORDER = 1234 + EOF = -1 + FILENAME_MAX = 1024 + FOPEN_MAX = 20 + LITTLE_ENDIAN = 1234 + L_ctermid = 1024 + L_tmpnam = 1024 + PDP_ENDIAN = 3412 + P_tmpdir = "/tmp/" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 0x7fffffff + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_FSTDIO = 0 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_STDIO_H_ = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: stdio.h,v 1.54 2020/09/11 17:56:41 naddy Exp $ +// $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Chris Torek. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stdio.h 5.17 (Berkeley) 6/3/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +type Fpos_t = Off_t /* stdio.h:61:15 */ // stdio file position type + +// NB: to fit things in six character monocase externals, the stdio +// code uses the prefix `__s' for stdio objects, typically followed +// by a three-character attempt at a mnemonic. + +// stdio buffers +type X__sbuf = struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte +} /* stdio.h:70:1 */ + +// stdio state variables. +// +// The following always hold: +// +// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), +// _lbfsize is -_bf._size, else _lbfsize is 0 +// if _flags&__SRD, _w is 0 +// if _flags&__SWR, _r is 0 +// +// This ensures that the getc and putc macros (or inline functions) never +// try to write or read from a file that is in `read' or `write' mode. +// (Moreover, they can, and do, automatically switch from read mode to +// write mode, and back, on "r+" and "w+" files.) +// +// _lbfsize is used only to make the inline line-buffered output stream +// code as compact as possible. +// +// _ub, _up, and _ur are used when ungetc() pushes back more characters +// than fit in the current _bf, or when ungetc() pushes back a character +// that does not match the previous one in _bf. When this happens, +// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff +// _ub._base!=NULL) and _up and _ur save the current values of _p and _r. +type X__sFILE = struct { + F_p uintptr + F_r int32 + F_w int32 + F_flags int16 + F_file int16 + F__ccgo_pad1 [4]byte + F_bf struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte + } + F_lbfsize int32 + F__ccgo_pad2 [4]byte + F_cookie uintptr + F_close uintptr + F_read uintptr + F_seek uintptr + F_write uintptr + F_ext struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte + } + F_up uintptr + F_ur int32 + F_ubuf [3]uint8 + F_nbuf [1]uint8 + F_lb struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte + } + F_blksize int32 + F__ccgo_pad3 [4]byte + F_offset Fpos_t +} /* stdio.h:99:9 */ + +// stdio state variables. +// +// The following always hold: +// +// if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), +// _lbfsize is -_bf._size, else _lbfsize is 0 +// if _flags&__SRD, _w is 0 +// if _flags&__SWR, _r is 0 +// +// This ensures that the getc and putc macros (or inline functions) never +// try to write or read from a file that is in `read' or `write' mode. +// (Moreover, they can, and do, automatically switch from read mode to +// write mode, and back, on "r+" and "w+" files.) +// +// _lbfsize is used only to make the inline line-buffered output stream +// code as compact as possible. +// +// _ub, _up, and _ur are used when ungetc() pushes back more characters +// than fit in the current _bf, or when ungetc() pushes back a character +// that does not match the previous one in _bf. When this happens, +// _ub._base becomes non-nil (i.e., a stream has ungetc() data iff +// _ub._base!=NULL) and _up and _ur save the current values of _p and _r. +type FILE = X__sFILE /* stdio.h:131:3 */ + +// The macro implementations of putc and putc_unlocked are not +// fully POSIX compliant; they do not set errno on failure + +// The macro implementations of putc and putc_unlocked are not +// fully POSIX compliant; they do not set errno on failure + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_windows_386.go b/vendor/modernc.org/libc/stdio/stdio_windows_386.go index 5adf00fa9..ca396f234 100644 --- a/vendor/modernc.org/libc/stdio/stdio_windows_386.go +++ b/vendor/modernc.org/libc/stdio/stdio_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo stdio/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_windows_386.go -pkgname stdio', DO NOT EDIT. +// Code generated by 'ccgo stdio\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio\stdio_windows_386.go -pkgname stdio', DO NOT EDIT. package stdio @@ -15,152 +15,141 @@ var _ atomic.Value var _ unsafe.Pointer const ( - BUFSIZ = 512 - DUMMYSTRUCTNAME = 0 - DUMMYSTRUCTNAME1 = 0 - DUMMYSTRUCTNAME2 = 0 - DUMMYSTRUCTNAME3 = 0 - DUMMYSTRUCTNAME4 = 0 - DUMMYSTRUCTNAME5 = 0 - DUMMYUNIONNAME = 0 - DUMMYUNIONNAME1 = 0 - DUMMYUNIONNAME2 = 0 - DUMMYUNIONNAME3 = 0 - DUMMYUNIONNAME4 = 0 - DUMMYUNIONNAME5 = 0 - DUMMYUNIONNAME6 = 0 - DUMMYUNIONNAME7 = 0 - DUMMYUNIONNAME8 = 0 - DUMMYUNIONNAME9 = 0 - EOF = -1 - FILENAME_MAX = 260 - FOPEN_MAX = 20 - MINGW_DDK_H = 0 - MINGW_HAS_DDK_H = 1 - MINGW_HAS_SECURE_API = 1 - MINGW_SDK_INIT = 0 - SEEK_CUR = 1 - SEEK_END = 2 - SEEK_SET = 0 - STDERR_FILENO = 2 - STDIN_FILENO = 0 - STDOUT_FILENO = 1 - SYS_OPEN = 20 - TMP_MAX = 32767 - TMP_MAX_S = 32767 - UNALIGNED = 0 - USE___UUIDOF = 0 - WIN32 = 1 - WINNT = 1 - X_AGLOBAL = 0 - X_ANONYMOUS_STRUCT = 0 - X_ANONYMOUS_UNION = 0 - X_ARGMAX = 100 - X_CONST_RETURN = 0 - X_CRTNOALIAS = 0 - X_CRTRESTRICT = 0 - X_CRT_ALTERNATIVE_IMPORTED = 0 - X_CRT_DIRECTORY_DEFINED = 0 - X_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = 4 - X_CRT_INTERNAL_LOCAL_SCANF_OPTIONS = 2 - X_CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = 0x0008 - X_CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = 0x0010 - X_CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 0x0001 - X_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 0x0004 - X_CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 0x0002 - X_CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = 0x0004 - X_CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 0x0002 - X_CRT_INTERNAL_SCANF_SECURECRT = 0x0001 - X_CRT_MANAGED_HEAP_DEPRECATE = 0 - X_CRT_PACKING = 8 - X_CRT_PERROR_DEFINED = 0 - X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0 - X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0 - X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 - X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 - X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 - X_CRT_WPERROR_DEFINED = 0 - X_DLL = 0 - X_ERRCODE_DEFINED = 0 - X_FILE_DEFINED = 0 - X_FILE_OFFSET_BITS = 64 - X_FILE_OFFSET_BITS_SET_FSEEKO = 0 - X_FILE_OFFSET_BITS_SET_FTELLO = 0 - X_FILE_OFFSET_BITS_SET_OFFT = 0 - X_FPOS_T_DEFINED = 0 - X_ILP32 = 1 - X_INC_CORECRT = 0 - X_INC_CRTDEFS_MACRO = 0 - X_INC_MINGW_SECAPI = 0 - X_INC_STDIO = 0 - X_INC_STDIO_S = 0 - X_INC_SWPRINTF_INL = 0 - X_INC_VADEFS = 0 - X_INC__MINGW_H = 0 - X_INT128_DEFINED = 0 - X_INTEGRAL_MAX_BITS = 64 - X_INTPTR_T_DEFINED = 0 - X_IOB_ENTRIES = 20 - X_IOEOF = 0x0010 - X_IOERR = 0x0020 - X_IOFBF = 0x0000 - X_IOLBF = 0x0040 - X_IOMYBUF = 0x0008 - X_IONBF = 0x0004 - X_IOREAD = 0x0001 - X_IORW = 0x0080 - X_IOSTRG = 0x0040 - X_IOWRT = 0x0002 - X_MT = 0 - X_M_IX86 = 600 - X_NFILE = 512 - X_NSTREAM_ = 512 - X_OFF64_T_DEFINED = 0 - X_OFF_T_ = 0 - X_OFF_T_DEFINED = 0 - X_OLD_P_OVERLAY = 2 - X_PGLOBAL = 0 - X_PTRDIFF_T_ = 0 - X_PTRDIFF_T_DEFINED = 0 - X_P_DETACH = 4 - X_P_NOWAIT = 1 - X_P_NOWAITO = 3 - X_P_OVERLAY = 2 - X_P_WAIT = 0 - X_P_tmpdir = "\\" - X_RSIZE_T_DEFINED = 0 - X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD - X_SIZE_T_DEFINED = 0 - X_SPAWNV_DEFINED = 0 - X_SSIZE_T_DEFINED = 0 - X_STDIO_CONFIG_DEFINED = 0 - X_STDIO_DEFINED = 0 - X_STDIO_S_DEFINED = 0 - X_STDSTREAM_DEFINED = 0 - X_SYS_OPEN = 20 - X_TAGLC_ID_DEFINED = 0 - X_THREADLOCALEINFO = 0 - X_TIME32_T_DEFINED = 0 - X_TIME64_T_DEFINED = 0 - X_TIME_T_DEFINED = 0 - X_TWO_DIGIT_EXPONENT = 0x1 - X_UINTPTR_T_DEFINED = 0 - X_USE_32BIT_TIME_T = 0 - X_VA_LIST_DEFINED = 0 - X_W64 = 0 - X_WAIT_CHILD = 0 - X_WAIT_GRANDCHILD = 1 - X_WCHAR_T_DEFINED = 0 - X_WCTYPE_T_DEFINED = 0 - X_WIN32 = 1 - X_WIN32_WINNT = 0x502 - X_WINT_T = 0 - X_WSPAWN_DEFINED = 0 - X_WSTDIO_DEFINED = 0 - X_WSTDIO_S_DEFINED = 0 - X_X86_ = 1 - I386 = 1 + BUFSIZ = 512 + DUMMYSTRUCTNAME = 0 + DUMMYSTRUCTNAME1 = 0 + DUMMYSTRUCTNAME2 = 0 + DUMMYSTRUCTNAME3 = 0 + DUMMYSTRUCTNAME4 = 0 + DUMMYSTRUCTNAME5 = 0 + DUMMYUNIONNAME = 0 + DUMMYUNIONNAME1 = 0 + DUMMYUNIONNAME2 = 0 + DUMMYUNIONNAME3 = 0 + DUMMYUNIONNAME4 = 0 + DUMMYUNIONNAME5 = 0 + DUMMYUNIONNAME6 = 0 + DUMMYUNIONNAME7 = 0 + DUMMYUNIONNAME8 = 0 + DUMMYUNIONNAME9 = 0 + EOF = -1 + FILENAME_MAX = 260 + FOPEN_MAX = 20 + MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 + MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 + MINGW_HAS_SECURE_API = 1 + MINGW_SDK_INIT = 0 + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + STDERR_FILENO = 2 + STDIN_FILENO = 0 + STDOUT_FILENO = 1 + SYS_OPEN = 20 + TMP_MAX = 32767 + UNALIGNED = 0 + USE___UUIDOF = 0 + WIN32 = 1 + WINNT = 1 + X_AGLOBAL = 0 + X_ANONYMOUS_STRUCT = 0 + X_ANONYMOUS_UNION = 0 + X_ARGMAX = 100 + X_CONST_RETURN = 0 + X_CRTNOALIAS = 0 + X_CRTRESTRICT = 0 + X_CRT_ALTERNATIVE_IMPORTED = 0 + X_CRT_DIRECTORY_DEFINED = 0 + X_CRT_MANAGED_HEAP_DEPRECATE = 0 + X_CRT_PACKING = 8 + X_CRT_PERROR_DEFINED = 0 + X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0 + X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0 + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 + X_CRT_WPERROR_DEFINED = 0 + X_DLL = 0 + X_ERRCODE_DEFINED = 0 + X_FILE_DEFINED = 0 + X_FILE_OFFSET_BITS = 64 + X_FILE_OFFSET_BITS_SET_FSEEKO = 0 + X_FILE_OFFSET_BITS_SET_FTELLO = 0 + X_FILE_OFFSET_BITS_SET_OFFT = 0 + X_FPOS_T_DEFINED = 0 + X_INC_CRTDEFS = 0 + X_INC_CRTDEFS_MACRO = 0 + X_INC_MINGW_SECAPI = 0 + X_INC_STDIO = 0 + X_INC_STDIO_S = 0 + X_INC_SWPRINTF_INL = 0 + X_INC_VADEFS = 0 + X_INC__MINGW_H = 0 + X_INT128_DEFINED = 0 + X_INTEGRAL_MAX_BITS = 64 + X_INTPTR_T_DEFINED = 0 + X_IOB_ENTRIES = 20 + X_IOEOF = 0x0010 + X_IOERR = 0x0020 + X_IOFBF = 0x0000 + X_IOLBF = 0x0040 + X_IOMYBUF = 0x0008 + X_IONBF = 0x0004 + X_IOREAD = 0x0001 + X_IORW = 0x0080 + X_IOSTRG = 0x0040 + X_IOWRT = 0x0002 + X_MT = 0 + X_M_IX86 = 600 + X_NFILE = 512 + X_NSTREAM_ = 512 + X_OFF64_T_DEFINED = 0 + X_OFF_T_ = 0 + X_OFF_T_DEFINED = 0 + X_OLD_P_OVERLAY = 2 + X_PGLOBAL = 0 + X_PTRDIFF_T_ = 0 + X_PTRDIFF_T_DEFINED = 0 + X_P_DETACH = 4 + X_P_NOWAIT = 1 + X_P_NOWAITO = 3 + X_P_OVERLAY = 2 + X_P_WAIT = 0 + X_P_tmpdir = "\\" + X_REENTRANT = 1 + X_RSIZE_T_DEFINED = 0 + X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD + X_SIZE_T_DEFINED = 0 + X_SPAWNV_DEFINED = 0 + X_SSIZE_T_DEFINED = 0 + X_STDIO_DEFINED = 0 + X_STDIO_S_DEFINED = 0 + X_STDSTREAM_DEFINED = 0 + X_SYS_OPEN = 20 + X_TAGLC_ID_DEFINED = 0 + X_THREADLOCALEINFO = 0 + X_TIME32_T_DEFINED = 0 + X_TIME64_T_DEFINED = 0 + X_TIME_T_DEFINED = 0 + X_TWO_DIGIT_EXPONENT = 0x1 + X_UINTPTR_T_DEFINED = 0 + X_USE_32BIT_TIME_T = 0 + X_VA_LIST_DEFINED = 0 + X_W64 = 0 + X_WAIT_CHILD = 0 + X_WAIT_GRANDCHILD = 1 + X_WCHAR_T_DEFINED = 0 + X_WCTYPE_T_DEFINED = 0 + X_WIN32 = 1 + X_WIN32_WINNT = 0x502 + X_WINT_T = 0 + X_WSPAWN_DEFINED = 0 + X_WSTDIO_DEFINED = 0 + X_WSTDIO_S_DEFINED = 0 + X_X86_ = 1 + I386 = 1 ) type Ptrdiff_t = int32 /* <builtin>:3:26 */ @@ -181,11 +170,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // * // This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the Wine project. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - -// * -// This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. @@ -219,12 +203,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -265,28 +243,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -312,29 +288,36 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ + +// * +// This file has no copyright assigned and is placed in the Public Domain. +// This file is part of the mingw-w64 runtime package. +// No warranty is given; refer to the file DISCLAIMER.PD within this package. + +// Undefine __mingw_<printf> macros. type X_iobuf = struct { F_ptr uintptr @@ -345,9 +328,9 @@ type X_iobuf = struct { F_charbuf int32 F_bufsiz int32 F_tmpfname uintptr -} /* stdio.h:24:3 */ +} /* stdio.h:26:3 */ -type FILE = X_iobuf /* stdio.h:34:25 */ +type FILE = X_iobuf /* stdio.h:36:25 */ type X_off_t = int32 /* _mingw_off_t.h:5:16 */ type Off32_t = int32 /* _mingw_off_t.h:7:16 */ @@ -357,6 +340,13 @@ type Off64_t = int64 /* _mingw_off_t.h:15:39 */ type Off_t = Off64_t /* _mingw_off_t.h:24:17 */ // A pointer to an array of FILE -type Fpos_t = int64 /* stdio.h:102:37 */ +type Fpos_t = int64 /* stdio.h:104:37 */ + +// * +// This file has no copyright assigned and is placed in the Public Domain. +// This file is part of the mingw-w64 runtime package. +// No warranty is given; refer to the file DISCLAIMER.PD within this package. + +// Define __mingw_<printf> macros. var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go b/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go index f55932f12..aa94ac0d7 100644 --- a/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/stdlib/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package stdlib -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go index 7c81426af..0371aa192 100644 --- a/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/stdlib/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package stdlib -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go b/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go new file mode 100644 index 000000000..130280634 --- /dev/null +++ b/vendor/modernc.org/libc/stdlib/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo stdlib/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_freebsd_386.go -pkgname stdlib', DO NOT EDIT. + +package stdlib + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go b/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go new file mode 100644 index 000000000..5eb9398b6 --- /dev/null +++ b/vendor/modernc.org/libc/stdlib/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo stdlib/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_openbsd_amd64.go -pkgname stdlib', DO NOT EDIT. + +package stdlib + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdlib/capi_windows_386.go b/vendor/modernc.org/libc/stdlib/capi_windows_386.go index 9bf9ad789..c65f27059 100644 --- a/vendor/modernc.org/libc/stdlib/capi_windows_386.go +++ b/vendor/modernc.org/libc/stdlib/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo stdlib/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT. +// Code generated by 'ccgo stdlib\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib\stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT. package stdlib diff --git a/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go index 37f58f886..4767f05a9 100644 --- a/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go +++ b/vendor/modernc.org/libc/stdlib/stdlib_darwin_amd64.go @@ -270,7 +270,6 @@ const ( X_DEV_T = 0 X_FILE_OFFSET_BITS = 64 X_FORTIFY_SOURCE = 2 - X_GCC_WRAP_STDINT_H = 0 X_I386_SIGNAL_H_ = 1 X_I386__ENDIAN_H_ = 0 X_ID_T = 0 @@ -278,7 +277,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_LP64 = 1 X_MACHTYPES_H_ = 0 @@ -300,7 +298,6 @@ const ( X_RUNE_T = 0 X_SIGSET_T = 0 X_SIZE_T = 0 - X_STDINT_H_ = 0 X_STDLIB_H_ = 0 X_SYS_RESOURCE_H_ = 0 X_SYS_SIGNAL_H_ = 0 @@ -309,11 +306,7 @@ const ( X_SYS__PTHREAD_TYPES_H_ = 0 X_SYS__TYPES_H_ = 0 X_UID_T = 0 - X_UINT16_T = 0 X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_U_INT16_T = 0 X_U_INT32_T = 0 @@ -499,6 +492,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -680,15 +675,6 @@ type X__float128 = float64 /* <builtin>:47:21 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -844,6 +830,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -5297,592 +5290,87 @@ type Sigstack = struct { F__ccgo_pad1 [4]byte } /* signal.h:367:1 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved -// Copyright (c) 1982, 1986, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)resource.h 8.2 (Berkeley) 1/4/94 +type Uint64_t = uint64 /* stdint.h:98:25 */ -// Copyright (c) 2002 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +type Uint32_t = uint32 /* stdint.h:172:25 */ -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// from ISO/IEC 988:1999 spec +// prevent glibc sys/types.h from defining conflicting types -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// C99 7.18.4 Macros for minimum-width integer constants. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// The standard requires that integer constant macros be defined for all the +// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width +// types are required, the corresponding integer constant macros are defined +// here. This implementation also defines minimum-width types for every other +// integer width that the target implements, so corresponding macros are +// defined below, too. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// These macros are defined using the same successive-shrinking approach as +// the type definitions above. It is likewise important that macros are defined +// in order of decending width. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// C99 7.18.2.1 Limits of exact-width integer types. +// C99 7.18.2.2 Limits of minimum-width integer types. +// C99 7.18.2.3 Limits of fastest minimum-width integer types. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. -// -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - +// The presence of limit macros are completely optional in C99. This +// implementation defines limits for all of the types (exact- and +// minimum-width) that it defines above, using the limits of the minimum-width +// type for any types that do not have exact-width representations. // -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. +// As in the type definitions, this section takes an approach of +// successive-shrinking to determine which limits to use for the standard (8, +// 16, 32, 64) bit widths when they don't have exact representations. It is +// therefore important that the definitions be kept in order of decending +// widths. // +// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -// 7.18.2.2 Limits of minimum-width integer types +// Some utility macros -// 7.18.2.3 Limits of fastest minimum-width integer types +// C99 7.18.2.4 Limits of integer types capable of holding object pointers. +// C99 7.18.3 Limits of other integer types. -// 7.18.2.4 Limits of integer types capable of holding object pointers +// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ +// is enabled. -// 7.18.2.5 Limits of greatest-width integer types +// C99 7.18.2.5 Limits of greatest-width integer types. -// 7.18.3 "Other" +// C99 7.18.3 Limits of other integer types. -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. +// 7.18.4.2 Macros for greatest-width integer constants. // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // diff --git a/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go index 67a37e9e7..83e44d4e3 100644 --- a/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go +++ b/vendor/modernc.org/libc/stdlib/stdlib_darwin_arm64.go @@ -320,13 +320,11 @@ const ( X_DEV_T = 0 X_FILE_OFFSET_BITS = 64 X_FORTIFY_SOURCE = 2 - X_GCC_WRAP_STDINT_H = 0 X_ID_T = 0 X_INT16_T = 0 X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_LP64 = 1 X_MACHTYPES_H_ = 0 @@ -348,7 +346,6 @@ const ( X_RUNE_T = 0 X_SIGSET_T = 0 X_SIZE_T = 0 - X_STDINT_H_ = 0 X_STDLIB_H_ = 0 X_SYS_RESOURCE_H_ = 0 X_SYS_SIGNAL_H_ = 0 @@ -357,11 +354,7 @@ const ( X_SYS__PTHREAD_TYPES_H_ = 0 X_SYS__TYPES_H_ = 0 X_UID_T = 0 - X_UINT16_T = 0 X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_U_INT16_T = 0 X_U_INT32_T = 0 @@ -547,6 +540,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -751,15 +746,6 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -915,6 +901,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -3637,592 +3630,87 @@ type Sigstack = struct { F__ccgo_pad1 [4]byte } /* signal.h:367:1 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved -// Copyright (c) 1982, 1986, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)resource.h 8.2 (Berkeley) 1/4/94 +type Uint64_t = uint64 /* stdint.h:98:25 */ -// Copyright (c) 2002 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +type Uint32_t = uint32 /* stdint.h:172:25 */ -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// from ISO/IEC 988:1999 spec +// prevent glibc sys/types.h from defining conflicting types -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. +// C99 7.18.4 Macros for minimum-width integer constants. // -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// The standard requires that integer constant macros be defined for all the +// minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width +// types are required, the corresponding integer constant macros are defined +// here. This implementation also defines minimum-width types for every other +// integer width that the target implements, so corresponding macros are +// defined below, too. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. +// These macros are defined using the same successive-shrinking approach as +// the type definitions above. It is likewise important that macros are defined +// in order of decending width. // -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. +// C99 7.18.2.1 Limits of exact-width integer types. +// C99 7.18.2.2 Limits of minimum-width integer types. +// C99 7.18.2.3 Limits of fastest minimum-width integer types. // -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ - -// 7.18.4 Macros for integer constants - -// 7.18.2 Limits of specified-width integer types: -// These #defines specify the minimum and maximum limits -// of each of the types declared above. -// -// They must have "the same type as would an expression that is an -// object of the corresponding type converted according to the integer -// promotion". - -// 7.18.2.1 Limits of exact-width integer types - +// The presence of limit macros are completely optional in C99. This +// implementation defines limits for all of the types (exact- and +// minimum-width) that it defines above, using the limits of the minimum-width +// type for any types that do not have exact-width representations. // -// Note: the literal "most negative int" cannot be written in C -- -// the rules in the standard (section 6.4.4.1 in C99) will give it -// an unsigned type, so INT32_MIN (and the most negative member of -// any larger signed type) must be written via a constant expression. +// As in the type definitions, this section takes an approach of +// successive-shrinking to determine which limits to use for the standard (8, +// 16, 32, 64) bit widths when they don't have exact representations. It is +// therefore important that the definitions be kept in order of decending +// widths. // +// Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the +// claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). -// 7.18.2.2 Limits of minimum-width integer types +// Some utility macros -// 7.18.2.3 Limits of fastest minimum-width integer types +// C99 7.18.2.4 Limits of integer types capable of holding object pointers. +// C99 7.18.3 Limits of other integer types. -// 7.18.2.4 Limits of integer types capable of holding object pointers +// ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ +// is enabled. -// 7.18.2.5 Limits of greatest-width integer types +// C99 7.18.2.5 Limits of greatest-width integer types. -// 7.18.3 "Other" +// C99 7.18.3 Limits of other integer types. -// WCHAR_MIN should be 0 if wchar_t is an unsigned type and -// (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately, -// it turns out that -fshort-wchar changes the signedness of -// the type. +// 7.18.4.2 Macros for greatest-width integer constants. // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // diff --git a/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go new file mode 100644 index 000000000..73d7c0f0b --- /dev/null +++ b/vendor/modernc.org/libc/stdlib/stdlib_freebsd_386.go @@ -0,0 +1,663 @@ +// Code generated by 'ccgo stdlib/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_freebsd_386.go -pkgname stdlib', DO NOT EDIT. + +package stdlib + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + EXIT_FAILURE = 1 + EXIT_SUCCESS = 0 + RAND_MAX = 0x7fffffff + X_ERRNO_T_DEFINED = 0 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MKDTEMP_DECLARED = 0 + X_MKSTEMP_DECLARED = 0 + X_MKTEMP_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_RSIZE_T_DEFINED = 0 + X_RUNE_T_DECLARED = 0 + X_SIZE_T_DECLARED = 0 + X_STDLIB_H_ = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_WCHAR_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stdlib.h 8.5 (Berkeley) 5/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Rune_t = X__rune_t /* stdlib.h:46:18 */ + +type Div_t = struct { + Fquot int32 + Frem int32 +} /* stdlib.h:66:3 */ + +type Ldiv_t = struct { + Fquot int32 + Frem int32 +} /* stdlib.h:71:3 */ + +// Functions added in C99 which we make conditionally available in the +// BSD^C89 namespace if the compiler supports `long long'. +// The #if test is more complicated than it ought to be because +// __BSD_VISIBLE implies __ISO_C_VISIBLE == 1999 *even if* `long long' +// is not supported in the compilation environment (which therefore means +// that it can't really be ISO C99). +// +// (The only other extension made by C99 in thie header is _Exit().) +// LONGLONG +type Lldiv_t = struct { + Fquot int64 + Frem int64 +} /* stdlib.h:142:3 */ // getsubopt(3) external variable + +type Rsize_t = Size_t /* stdlib.h:340:16 */ + +type Errno_t = int32 /* stdlib.h:345:13 */ + +// K.3.6 +type Constraint_handler_t = uintptr /* stdlib.h:349:14 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go b/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go new file mode 100644 index 000000000..84504a0ee --- /dev/null +++ b/vendor/modernc.org/libc/stdlib/stdlib_openbsd_amd64.go @@ -0,0 +1,781 @@ +// Code generated by 'ccgo stdlib/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_openbsd_amd64.go -pkgname stdlib', DO NOT EDIT. + +package stdlib + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + EXIT_FAILURE = 1 + EXIT_SUCCESS = 0 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + RAND_MAX = 0x7fffffff + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_STDLIB_H_ = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + X_WCHAR_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: stdlib.h,v 1.76 2019/05/10 15:03:24 otto Exp $ +// $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stdlib.h 5.13 (Berkeley) 6/4/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +type Div_t = struct { + Fquot int32 + Frem int32 +} /* stdlib.h:59:3 */ + +type Ldiv_t = struct { + Fquot int64 + Frem int64 +} /* stdlib.h:64:3 */ + +type Lldiv_t = struct { + Fquot int64 + Frem int64 +} /* stdlib.h:70:3 */ + +type Qdiv_t = struct { + Fquot Quad_t + Frem Quad_t +} /* stdlib.h:77:3 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go b/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go index 731c6661c..d6e0c8ada 100644 --- a/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go +++ b/vendor/modernc.org/libc/stdlib/stdlib_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo stdlib/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT. +// Code generated by 'ccgo stdlib\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib\stdlib_windows_386.go -pkgname stdlib', DO NOT EDIT. package stdlib @@ -46,7 +46,9 @@ const ( LONG_MIN = -2147483648 MB_LEN_MAX = 5 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 PATH_MAX = 260 @@ -97,7 +99,6 @@ const ( X_CRT_SWAB_DEFINED = 0 X_CRT_SYSTEM_DEFINED = 0 X_CRT_TERMINATE_DEFINED = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_CRT_WPERROR_DEFINED = 0 X_CRT_WSYSTEM_DEFINED = 0 X_CVTBUFSIZE = 349 @@ -124,9 +125,6 @@ const ( X_I64_MIN = -9223372036854775808 X_I8_MAX = 127 X_I8_MIN = -128 - X_ILP32 = 1 - X_INC_CORECRT = 0 - X_INC_CORECRT_WSTDLIB = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_LIMITS = 0 @@ -158,6 +156,7 @@ const ( X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 X_QSORT_S_DEFINED = 0 + X_REENTRANT = 1 X_REPORT_ERRMODE = 3 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD @@ -184,7 +183,9 @@ const ( X_WINT_T = 0 X_WRITE_ABORT_MSG = 0x1 X_WSTDLIBP_DEFINED = 0 + X_WSTDLIBP_S_DEFINED = 0 X_WSTDLIB_DEFINED = 0 + X_WSTDLIB_S_DEFINED = 0 X_X86_ = 1 I386 = 1 ) @@ -240,12 +241,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -286,28 +281,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -333,31 +326,31 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ -// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// Copyright (C) 1992-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -401,11 +394,6 @@ type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // File system limits // // NOTE: Apparently the actual size of PATH_MAX is 260, but a space is @@ -414,7 +402,7 @@ type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ // are semantically identical, with a limit of 259 characters for the // path name, plus one for a terminating NUL, for a total of 260. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2018 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -471,40 +459,40 @@ type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ // This administrivia gets added to the end of limits.h // if the system has its own version of limits.h. -type X_onexit_t = uintptr /* stdlib.h:50:15 */ +type X_onexit_t = uintptr /* stdlib.h:49:15 */ type X_div_t = struct { Fquot int32 Frem int32 -} /* stdlib.h:60:11 */ +} /* stdlib.h:59:11 */ -type Div_t = X_div_t /* stdlib.h:63:5 */ +type Div_t = X_div_t /* stdlib.h:62:5 */ type X_ldiv_t = struct { Fquot int32 Frem int32 -} /* stdlib.h:65:11 */ +} /* stdlib.h:64:11 */ -type Ldiv_t = X_ldiv_t /* stdlib.h:68:5 */ +type Ldiv_t = X_ldiv_t /* stdlib.h:67:5 */ -type X_LDOUBLE = struct{ Fld [10]uint8 } /* stdlib.h:77:5 */ +type X_LDOUBLE = struct{ Fld [10]uint8 } /* stdlib.h:76:5 */ -type X_CRT_DOUBLE = struct{ Fx float64 } /* stdlib.h:84:5 */ +type X_CRT_DOUBLE = struct{ Fx float64 } /* stdlib.h:83:5 */ -type X_CRT_FLOAT = struct{ Ff float32 } /* stdlib.h:88:5 */ +type X_CRT_FLOAT = struct{ Ff float32 } /* stdlib.h:87:5 */ -type X_LONGDOUBLE = struct{ Fx float64 } /* stdlib.h:95:5 */ +type X_LONGDOUBLE = struct{ Fx float64 } /* stdlib.h:94:5 */ -type X_LDBL12 = struct{ Fld12 [12]uint8 } /* stdlib.h:102:5 */ +type X_LDBL12 = struct{ Fld12 [12]uint8 } /* stdlib.h:101:5 */ -type X_purecall_handler = uintptr /* stdlib.h:143:16 */ +type X_purecall_handler = uintptr /* stdlib.h:142:16 */ -type X_invalid_parameter_handler = uintptr /* stdlib.h:148:16 */ +type X_invalid_parameter_handler = uintptr /* stdlib.h:147:16 */ type Lldiv_t = struct { Fquot int64 Frem int64 -} /* stdlib.h:727:61 */ +} /* stdlib.h:699:61 */ // * // This file has no copyright assigned and is placed in the Public Domain. diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go index b0f3be1d3..301493944 100644 --- a/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package socket -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go index ba45cfeba..6c11868bb 100644 --- a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package socket -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go new file mode 100644 index 000000000..5fc3c1061 --- /dev/null +++ b/vendor/modernc.org/libc/sys/socket/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_freebsd_386.go -pkgname socket', DO NOT EDIT. + +package socket + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/socket/capi_openbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_openbsd_amd64.go new file mode 100644 index 000000000..40211227d --- /dev/null +++ b/vendor/modernc.org/libc/sys/socket/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_openbsd_amd64.go -pkgname socket', DO NOT EDIT. + +package socket + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go index 9bb040859..a17bddfaf 100644 --- a/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go @@ -352,6 +352,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2019 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -581,6 +583,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -3148,15 +3157,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -3427,15 +3427,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go index 4a743258d..4468f19b9 100644 --- a/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go @@ -360,7 +360,6 @@ const ( X_FILE_OFFSET_BITS = 64 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_ID_T = 0 X_INO64_T = 0 @@ -369,7 +368,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -404,7 +402,6 @@ const ( X_SOCKLEN_T = 0 X_SSIZE_T = 0 X_SS_MAXSIZE = 128 - X_STDINT_H_ = 0 X_STRUCT_IOVEC = 0 X_SUSECONDS_T = 0 X_SYS_SOCKET_H_ = 0 @@ -414,11 +411,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -454,6 +446,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2019 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -683,6 +677,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1758,727 +1759,39 @@ type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_ type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */ type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)endian.h 8.1 (Berkeley) 6/11/93 +type Uint32_t = uint32 /* stdint.h:172:25 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// Define _NOQUAD if the compiler does NOT support 64-bit integers. -// #define _NOQUAD +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Define the order of 32-bit words in 64-bit words. +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// Definitions for byte order, according to byte significance from low -// address to high. +// prevent glibc sys/types.h from defining conflicting types -// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// Macros for network/external number representation conversion. - -// Copyright (c) 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// This header is normally included from <libkern/OSByteOrder.h>. However, -// <sys/_endian.h> also includes this in the case of little-endian -// architectures, so that we can map OSByteOrder routines to the hton* and ntoh* -// macros. This results in the asymmetry below; we only include -// <libkern/arch/_OSByteOrder.h> for little-endian architectures. - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Macros for swapping constant values in the preprocessing stage. - -// Copyright (c) 1999-2007 Apple Inc. All rights reserved. - -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. - -// from ISO/IEC 988:1999 spec - -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ // Functions for byte reversed loads. @@ -3941,15 +3254,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -4243,15 +3547,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go b/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go new file mode 100644 index 000000000..c92c62a1c --- /dev/null +++ b/vendor/modernc.org/libc/sys/socket/socket_freebsd_386.go @@ -0,0 +1,1146 @@ +// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_freebsd_386.go -pkgname socket', DO NOT EDIT. + +package socket + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AF_APPLETALK = 16 + AF_ARP = 35 + AF_ATM = 30 + AF_BLUETOOTH = 36 + AF_CCITT = 10 + AF_CHAOS = 5 + AF_CNT = 21 + AF_COIP = 20 + AF_DATAKIT = 9 + AF_DECnet = 12 + AF_DLI = 13 + AF_E164 = 26 + AF_ECMA = 8 + AF_HYLINK = 15 + AF_HYPERV = 43 + AF_IEEE80211 = 37 + AF_IMPLINK = 3 + AF_INET = 2 + AF_INET6 = 28 + AF_INET6_SDP = 42 + AF_INET_SDP = 40 + AF_IPX = 23 + AF_ISDN = 26 + AF_ISO = 7 + AF_LAT = 14 + AF_LINK = 18 + AF_LOCAL = 1 + AF_MAX = 43 + AF_NATM = 29 + AF_NETBIOS = 6 + AF_NETGRAPH = 32 + AF_OSI = 7 + AF_PUP = 4 + AF_ROUTE = 17 + AF_SCLUSTER = 34 + AF_SIP = 24 + AF_SLOW = 33 + AF_SNA = 11 + AF_UNIX = 1 + AF_UNSPEC = 0 + AF_VENDOR00 = 39 + AF_VENDOR01 = 41 + AF_VENDOR03 = 45 + AF_VENDOR04 = 47 + AF_VENDOR05 = 49 + AF_VENDOR06 = 51 + AF_VENDOR07 = 53 + AF_VENDOR08 = 55 + AF_VENDOR09 = 57 + AF_VENDOR10 = 59 + AF_VENDOR11 = 61 + AF_VENDOR12 = 63 + AF_VENDOR13 = 65 + AF_VENDOR14 = 67 + AF_VENDOR15 = 69 + AF_VENDOR16 = 71 + AF_VENDOR17 = 73 + AF_VENDOR18 = 75 + AF_VENDOR19 = 77 + AF_VENDOR20 = 79 + AF_VENDOR21 = 81 + AF_VENDOR22 = 83 + AF_VENDOR23 = 85 + AF_VENDOR24 = 87 + AF_VENDOR25 = 89 + AF_VENDOR26 = 91 + AF_VENDOR27 = 93 + AF_VENDOR28 = 95 + AF_VENDOR29 = 97 + AF_VENDOR30 = 99 + AF_VENDOR31 = 101 + AF_VENDOR32 = 103 + AF_VENDOR33 = 105 + AF_VENDOR34 = 107 + AF_VENDOR35 = 109 + AF_VENDOR36 = 111 + AF_VENDOR37 = 113 + AF_VENDOR38 = 115 + AF_VENDOR39 = 117 + AF_VENDOR40 = 119 + AF_VENDOR41 = 121 + AF_VENDOR42 = 123 + AF_VENDOR43 = 125 + AF_VENDOR44 = 127 + AF_VENDOR45 = 129 + AF_VENDOR46 = 131 + AF_VENDOR47 = 133 + CMGROUP_MAX = 16 + MSG_CMSG_CLOEXEC = 0x00040000 + MSG_COMPAT = 0x00008000 + MSG_CTRUNC = 0x00000020 + MSG_DONTROUTE = 0x00000004 + MSG_DONTWAIT = 0x00000080 + MSG_EOF = 0x00000100 + MSG_EOR = 0x00000008 + MSG_NBIO = 0x00004000 + MSG_NOSIGNAL = 0x00020000 + MSG_NOTIFICATION = 0x00002000 + MSG_OOB = 0x00000001 + MSG_PEEK = 0x00000002 + MSG_TRUNC = 0x00000010 + MSG_WAITALL = 0x00000040 + MSG_WAITFORONE = 0x00080000 + NET_RT_DUMP = 1 + NET_RT_FLAGS = 2 + NET_RT_IFLIST = 3 + NET_RT_IFLISTL = 5 + NET_RT_IFMALIST = 4 + NET_RT_NHGRP = 7 + NET_RT_NHOP = 6 + PF_APPLETALK = 16 + PF_ARP = 35 + PF_ATM = 30 + PF_BLUETOOTH = 36 + PF_CCITT = 10 + PF_CHAOS = 5 + PF_CNT = 21 + PF_COIP = 20 + PF_DATAKIT = 9 + PF_DECnet = 12 + PF_DLI = 13 + PF_ECMA = 8 + PF_HYLINK = 15 + PF_IEEE80211 = 37 + PF_IMPLINK = 3 + PF_INET = 2 + PF_INET6 = 28 + PF_INET6_SDP = 42 + PF_INET_SDP = 40 + PF_IPX = 23 + PF_ISDN = 26 + PF_ISO = 7 + PF_KEY = 27 + PF_LAT = 14 + PF_LINK = 18 + PF_LOCAL = 1 + PF_MAX = 43 + PF_NATM = 29 + PF_NETBIOS = 6 + PF_NETGRAPH = 32 + PF_OSI = 7 + PF_PIP = 25 + PF_PUP = 4 + PF_ROUTE = 17 + PF_RTIP = 22 + PF_SCLUSTER = 34 + PF_SIP = 24 + PF_SLOW = 33 + PF_SNA = 11 + PF_UNIX = 1 + PF_UNSPEC = 0 + PF_XTP = 19 + PRU_FLUSH_RD = 0 + PRU_FLUSH_RDWR = 2 + PRU_FLUSH_WR = 1 + SCM_BINTIME = 0x04 + SCM_CREDS = 0x03 + SCM_CREDS2 = 0x08 + SCM_MONOTONIC = 0x06 + SCM_REALTIME = 0x05 + SCM_RIGHTS = 0x01 + SCM_TIMESTAMP = 0x02 + SCM_TIME_INFO = 0x07 + SF_MNOWAIT = 0x00000002 + SF_NOCACHE = 0x00000010 + SF_NODISKIO = 0x00000001 + SF_SYNC = 0x00000004 + SF_USER_READAHEAD = 0x00000008 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 2 + SOCK_MAXADDRLEN = 255 + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + SOCK_STREAM = 1 + SOL_SOCKET = 0xffff + SOMAXCONN = 128 + SO_ACCEPTCONN = 0x00000002 + SO_ACCEPTFILTER = 0x00001000 + SO_BINTIME = 0x00002000 + SO_BROADCAST = 0x00000020 + SO_DEBUG = 0x00000001 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x00000010 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x00000008 + SO_LABEL = 0x1009 + SO_LINGER = 0x00000080 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x00000800 + SO_NO_DDP = 0x00008000 + SO_NO_OFFLOAD = 0x00004000 + SO_OOBINLINE = 0x00000100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 4118 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x00020000 + SO_REUSEADDR = 0x00000004 + SO_REUSEPORT = 0x00000200 + SO_REUSEPORT_LB = 0x00010000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x00000400 + SO_TS_BINTIME = 1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 3 + SO_TS_DEFAULT = 0 + SO_TS_MONOTONIC = 3 + SO_TS_REALTIME = 2 + SO_TS_REALTIME_MICRO = 0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x00000040 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + ST_INFO_HW = 0x0001 + ST_INFO_HW_HPREC = 0x0002 + X_FILE_OFFSET_BITS = 64 + X_GID_T_DECLARED = 0 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF_T_DECLARED = 0 + X_PID_T_DECLARED = 0 + X_SA_FAMILY_T_DECLARED = 0 + X_SIZE_T_DECLARED = 0 + X_SOCKLEN_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SS_MAXSIZE = 128 + X_SYS_CDEFS_H_ = 0 + X_SYS_SOCKET_H_ = 0 + X_SYS__IOVEC_H_ = 0 + X_SYS__SOCKADDR_STORAGE_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_UID_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_X86_INCLUDE__ALIGN_H_ = 0 + I386 = 1 + Pseudo_AF_HDRCMPLT = 31 + Pseudo_AF_KEY = 27 + Pseudo_AF_PIP = 25 + Pseudo_AF_RTIP = 22 + Pseudo_AF_XTP = 19 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)socket.h 8.4 (Berkeley) 2/21/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ + +type Iovec = struct { + Fiov_base uintptr + Fiov_len Size_t +} /* _iovec.h:45:1 */ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2001 David E. O'Brien +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// William Jolitz. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)param.h 5.8 (Berkeley) 6/28/91 +// $FreeBSD$ + +// Round p (pointer or byte index) up to a correctly-aligned value +// for all data types (int, long, ...). The result is unsigned int +// and must be cast to any desired pointer type. + +// Definitions related to sockets: types, address families, options. + +// Data types. +type Gid_t = X__gid_t /* socket.h:52:18 */ + +type Off_t = X__off_t /* socket.h:57:18 */ + +type Pid_t = X__pid_t /* socket.h:62:18 */ + +type Sa_family_t = X__sa_family_t /* socket.h:68:23 */ + +type Socklen_t = X__socklen_t /* socket.h:73:21 */ + +type Ssize_t = X__ssize_t /* socket.h:78:19 */ + +type Uid_t = X__uid_t /* socket.h:84:18 */ + +type Uint32_t = X__uint32_t /* socket.h:90:20 */ + +type Uintptr_t = X__uintptr_t /* socket.h:95:21 */ + +// Types + +// Creation flags, OR'ed into socket() and socketpair() type argument. + +// Option flags per-socket. + +// Additional options, not kept in so_options. + +// Space reserved for new socket options added by third-party vendors. +// This range applies to all socket option levels. New socket options +// in FreeBSD should always use an option value less than SO_VENDOR. + +// Structure used for manipulating linger option. +type Linger = struct { + Fl_onoff int32 + Fl_linger int32 +} /* socket.h:199:1 */ + +type Accept_filter_arg = struct { + Faf_name [16]int8 + Faf_arg [240]int8 +} /* socket.h:205:1 */ + +// Level number for (get/set)sockopt() to apply to socket itself. + +// Address families. +// When allocating a new AF_ constant, please only allocate +// even numbered constants for FreeBSD until 134 as odd numbered AF_ +// constants 39-133 are now reserved for vendors. + +// Structure used by kernel to store most +// addresses. +type Sockaddr = struct { + Fsa_len uint8 + Fsa_family Sa_family_t + Fsa_data [14]int8 +} /* socket.h:329:1 */ + +// Structure used by kernel to pass protocol +// information in raw sockets. +type Sockproto = struct { + Fsp_family uint16 + Fsp_protocol uint16 +} /* socket.h:341:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)socket.h 8.4 (Berkeley) 2/21/94 +// $FreeBSD$ + +// RFC 2553: protocol-independent placeholder for socket addresses + +type Sockaddr_storage = struct { + Fss_len uint8 + Fss_family Sa_family_t + F__ss_pad1 [6]int8 + F__ss_align X__int64_t + F__ss_pad2 [112]int8 +} /* _sockaddr_storage.h:48:1 */ + +// Protocol families, same as address families for now. + +// Definitions for network related sysctl, CTL_NET. +// +// Second level is protocol family. +// Third level is protocol number. +// +// Further levels are defined by the individual families. + +// PF_ROUTE - Routing table +// +// Three additional levels are defined: +// Fourth: address family, 0 is wildcard +// Fifth: type of info, defined below +// Sixth: flag(s) to mask with for NET_RT_FLAGS + +// Maximum queue length specifiable by listen. + +// Message header for recvmsg and sendmsg calls. +// Used value-result for recvmsg, value only for sendmsg. +type Msghdr = struct { + Fmsg_name uintptr + Fmsg_namelen Socklen_t + Fmsg_iov uintptr + Fmsg_iovlen int32 + Fmsg_control uintptr + Fmsg_controllen Socklen_t + Fmsg_flags int32 +} /* socket.h:433:1 */ + +// 0x00000200 unused +// 0x00000400 unused +// 0x00000800 unused +// 0x00001000 unused + +// Header for ancillary data objects in msg_control buffer. +// Used for additional information with/about a datagram +// not expressible by flags. The format is a sequence +// of message elements headed by cmsghdr structures. +type Cmsghdr = struct { + Fcmsg_len Socklen_t + Fcmsg_level int32 + Fcmsg_type int32 +} /* socket.h:482:1 */ + +// While we may have more groups than this, the cmsgcred struct must +// be able to fit in an mbuf and we have historically supported a +// maximum of 16 groups. + +// Credentials structure, used to verify the identity of a peer +// process that has sent us a message. This is allocated by the +// peer process but filled in by the kernel. This prevents the +// peer from lying about its identity. (Note that cmcred_groups[0] +// is the effective GID.) +type Cmsgcred = struct { + Fcmcred_pid Pid_t + Fcmcred_uid Uid_t + Fcmcred_euid Uid_t + Fcmcred_gid Gid_t + Fcmcred_ngroups int16 + F__ccgo_pad1 [2]byte + Fcmcred_groups [16]Gid_t +} /* socket.h:504:1 */ + +// Socket credentials (LOCAL_CREDS). +type Sockcred = struct { + Fsc_uid Uid_t + Fsc_euid Uid_t + Fsc_gid Gid_t + Fsc_egid Gid_t + Fsc_ngroups int32 + Fsc_groups [1]Gid_t +} /* socket.h:516:1 */ + +// Compute size of a sockcred structure with groups. + +// Socket credentials (LOCAL_CREDS_PERSISTENT). +type Sockcred2 = struct { + Fsc_version int32 + Fsc_pid Pid_t + Fsc_uid Uid_t + Fsc_euid Uid_t + Fsc_gid Gid_t + Fsc_egid Gid_t + Fsc_ngroups int32 + Fsc_groups [1]Gid_t +} /* socket.h:534:1 */ + +// given pointer to struct cmsghdr, return pointer to data + +// given pointer to struct cmsghdr, return pointer to next cmsghdr + +// RFC 2292 requires to check msg_controllen, in case that the kernel returns +// an empty list for some reasons. + +// RFC 2292 additions + +// "Socket"-level control message types: + +type Sock_timestamp_info = struct { + Fst_info_flags X__uint32_t + Fst_info_pad0 X__uint32_t + Fst_info_rsv [7]X__uint64_t +} /* socket.h:593:1 */ + +// 4.3 compat sockaddr, move to compat file later +type Osockaddr = struct { + Fsa_family uint16 + Fsa_data [14]int8 +} /* socket.h:608:1 */ + +// 4.3-compat message header (move to compat file later). +type Omsghdr = struct { + Fmsg_name uintptr + Fmsg_namelen int32 + Fmsg_iov uintptr + Fmsg_iovlen int32 + Fmsg_accrights uintptr + Fmsg_accrightslen int32 +} /* socket.h:616:1 */ + +// howto arguments for shutdown(2), specified by Posix.1g. + +// for SCTP +// we cheat and use the SHUT_XX defines for these + +// sendfile(2) header/trailer struct +type Sf_hdtr = struct { + Fheaders uintptr + Fhdr_cnt int32 + Ftrailers uintptr + Ftrl_cnt int32 +} /* socket.h:645:1 */ + +// Sendfile-specific flag(s) + +// Sendmmsg/recvmmsg specific structure(s) +type Mmsghdr = struct { + Fmsg_hdr struct { + Fmsg_name uintptr + Fmsg_namelen Socklen_t + Fmsg_iov uintptr + Fmsg_iovlen int32 + Fmsg_control uintptr + Fmsg_controllen Socklen_t + Fmsg_flags int32 + } + Fmsg_len Ssize_t +} /* socket.h:669:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go new file mode 100644 index 000000000..479bddf05 --- /dev/null +++ b/vendor/modernc.org/libc/sys/socket/socket_openbsd_amd64.go @@ -0,0 +1,899 @@ +// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_openbsd_amd64.go -pkgname socket', DO NOT EDIT. + +package socket + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + AF_APPLETALK = 16 + AF_BLUETOOTH = 32 + AF_CCITT = 10 + AF_CHAOS = 5 + AF_CNT = 21 + AF_COIP = 20 + AF_DATAKIT = 9 + AF_DECnet = 12 + AF_DLI = 13 + AF_E164 = 26 + AF_ECMA = 8 + AF_ENCAP = 28 + AF_HYLINK = 15 + AF_IMPLINK = 3 + AF_INET = 2 + AF_INET6 = 24 + AF_IPX = 23 + AF_ISDN = 26 + AF_ISO = 7 + AF_KEY = 30 + AF_LAT = 14 + AF_LINK = 18 + AF_LOCAL = 1 + AF_MAX = 36 + AF_MPLS = 33 + AF_NATM = 27 + AF_NS = 6 + AF_OSI = 7 + AF_PUP = 4 + AF_ROUTE = 17 + AF_SIP = 29 + AF_SNA = 11 + AF_UNIX = 1 + AF_UNSPEC = 0 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + LITTLE_ENDIAN = 1234 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + NET_BPF_BUFSIZE = 1 + NET_BPF_MAXBUFSIZE = 2 + NET_BPF_MAXID = 3 + NET_KEY_MAXID = 3 + NET_KEY_SADB_DUMP = 1 + NET_KEY_SPD_DUMP = 2 + NET_LINK_IFRXQ = 1 + NET_LINK_IFRXQ_MAXID = 3 + NET_LINK_IFRXQ_PRESSURE_DROP = 2 + NET_LINK_IFRXQ_PRESSURE_RETURN = 1 + NET_LINK_MAXID = 2 + NET_MAXID = 36 + NET_PFLOW_MAXID = 2 + NET_PFLOW_STATS = 1 + NET_RT_DUMP = 1 + NET_RT_FLAGS = 2 + NET_RT_IFLIST = 3 + NET_RT_IFNAMES = 6 + NET_RT_MAXID = 8 + NET_RT_SOURCE = 7 + NET_RT_STATS = 4 + NET_RT_TABLE = 5 + NET_UNIX_DEFERRED = 7 + NET_UNIX_INFLIGHT = 6 + NET_UNIX_MAXID = 8 + NET_UNIX_PROTO_MAXID = 3 + PDP_ENDIAN = 3412 + PF_APPLETALK = 16 + PF_BLUETOOTH = 32 + PF_BPF = 31 + PF_CCITT = 10 + PF_CHAOS = 5 + PF_CNT = 21 + PF_COIP = 20 + PF_DATAKIT = 9 + PF_DECnet = 12 + PF_DLI = 13 + PF_ECMA = 8 + PF_ENCAP = 28 + PF_HYLINK = 15 + PF_IMPLINK = 3 + PF_INET = 2 + PF_INET6 = 24 + PF_IPX = 23 + PF_ISDN = 26 + PF_ISO = 7 + PF_KEY = 30 + PF_LAT = 14 + PF_LINK = 18 + PF_LOCAL = 1 + PF_MAX = 36 + PF_MPLS = 33 + PF_NATM = 27 + PF_NS = 6 + PF_OSI = 7 + PF_PFLOW = 34 + PF_PIP = 25 + PF_PIPEX = 35 + PF_PUP = 4 + PF_ROUTE = 17 + PF_RTIP = 22 + PF_SIP = 29 + PF_SNA = 11 + PF_UNIX = 1 + PF_UNSPEC = 0 + PF_XTP = 19 + RT_TABLEID_BITS = 8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 255 + SCM_RIGHTS = 0x01 + SCM_TIMESTAMP = 0x04 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + SOCK_STREAM = 1 + SOL_SOCKET = 0xffff + SOMAXCONN = 128 + SO_ACCEPTCONN = 0x0002 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x0020 + SO_DEBUG = 0x0001 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x0010 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x0008 + SO_LINGER = 0x0080 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x0100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x0004 + SO_REUSEPORT = 0x0200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x0800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x0040 + SO_ZEROIZE = 0x2000 + UIO_MAXIOV = 1024 + UNPCTL_RECVSPACE = 1 + UNPCTL_SENDSPACE = 2 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SA_FAMILY_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SOCKLEN_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_SOCKET_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UIO_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMEVAL_DECLARED = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Pseudo_AF_HDRCMPLT = 31 + Pseudo_AF_PFLOW = 34 + Pseudo_AF_PIP = 25 + Pseudo_AF_PIPEX = 35 + Pseudo_AF_RTIP = 22 + Pseudo_AF_XTP = 19 + Unix = 1 +) + +const ( /* uio.h:57:1: */ + UIO_READ = 0 + UIO_WRITE = 1 +) + +// Segment flag values. +const ( /* uio.h:60:1: */ + UIO_USERSPACE = 0 // from user data space + UIO_SYSSPACE = 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 */ + +// $OpenBSD: socket.h,v 1.100 2021/05/17 17:54:31 claudio Exp $ +// $NetBSD: socket.h,v 1.14 1996/02/09 18:25:36 christos Exp $ + +// Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)socket.h 8.4 (Berkeley) 2/21/94 + +// get the definitions for struct iovec, size_t, ssize_t, and <sys/cdefs.h> +// $OpenBSD: uio.h,v 1.19 2018/08/20 16:00:22 mpi Exp $ +// $NetBSD: uio.h,v 1.12 1996/02/09 18:25:45 christos Exp $ + +// Copyright (c) 1982, 1986, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)uio.h 8.5 (Berkeley) 2/22/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +type Ssize_t = X__ssize_t /* uio.h:48:19 */ + +type Iovec = struct { + Fiov_base uintptr + Fiov_len Size_t +} /* uio.h:51:1 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +type Socklen_t = X__socklen_t /* socket.h:47:21 */ // length type for network syscalls + +type Sa_family_t = X__sa_family_t /* socket.h:52:23 */ // sockaddr address family type + +// Definitions related to sockets: types, address families, options. + +// Types + +// Socket creation flags + +// Option flags per-socket. + +// Additional options, not kept in so_options. + +// Structure used for manipulating linger option. +type Linger = struct { + Fl_onoff int32 + Fl_linger int32 +} /* socket.h:122:1 */ + +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* socket.h:131:1 */ + +// Structure used for manipulating splice option. +type Splice = struct { + Fsp_fd int32 + F__ccgo_pad1 [4]byte + Fsp_max Off_t + Fsp_idle struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* socket.h:140:1 */ + +// Maximum number of alternate routing tables + +// Level number for (get/set)sockopt() to apply to socket itself. + +// Address families. + +// Structure used by kernel to store most +// addresses. +type Sockaddr = struct { + Fsa_len X__uint8_t + Fsa_family Sa_family_t + Fsa_data [14]int8 +} /* socket.h:209:1 */ + +// Sockaddr type which can hold any sockaddr type available +// in the system. +// +// Note: __ss_{len,family} is defined in RFC2553. During RFC2553 discussion +// the field name went back and forth between ss_len and __ss_len, +// and RFC2553 specifies it to be __ss_len. openbsd picked ss_len. +// For maximum portability, userland programmer would need to +// (1) make the code never touch ss_len portion (cast it into sockaddr and +// touch sa_len), or (2) add "-Dss_len=__ss_len" into CFLAGS to unify all +// occurrences (including header file) to __ss_len. +type Sockaddr_storage = struct { + Fss_len X__uint8_t + Fss_family Sa_family_t + F__ss_pad1 [6]uint8 + F__ss_pad2 X__uint64_t + F__ss_pad3 [240]uint8 +} /* socket.h:227:1 */ + +// Protocol families, same as address families for now. + +// These are the valid values for the "how" field used by shutdown(2). + +// Read using getsockopt() with SOL_SOCKET, SO_PEERCRED +type Sockpeercred = struct { + Fuid Uid_t + Fgid Gid_t + Fpid Pid_t +} /* socket.h:300:1 */ + +// Definitions for network related sysctl, CTL_NET. +// +// Second level is protocol family. +// Third level is protocol number. +// +// Further levels are defined by the individual families below. + +// PF_ROUTE - Routing table +// +// Four additional levels are defined: +// Fourth: address family, 0 is wildcard +// Fifth: type of info, defined below +// Sixth: flag(s) to mask with for NET_RT_FLAGS +// Seventh: routing table to use (facultative, defaults to 0) +// NET_RT_TABLE has the table id as sixth element. + +// PF_UNIX - unix socket tunables + +// PF_LINK - link layer or device tunables + +// PF_KEY - Key Management + +// PF_BPF not really a family, but connected under CTL_NET + +// PF_PFLOW not really a family, but connected under CTL_NET + +// Maximum queue length specifiable by listen(2). + +// Message header for recvmsg and sendmsg calls. +// Used value-result for recvmsg, value only for sendmsg. +type Msghdr = struct { + Fmsg_name uintptr + Fmsg_namelen Socklen_t + F__ccgo_pad1 [4]byte + Fmsg_iov uintptr + Fmsg_iovlen uint32 + F__ccgo_pad2 [4]byte + Fmsg_control uintptr + Fmsg_controllen Socklen_t + Fmsg_flags int32 +} /* socket.h:483:1 */ + +// Header for ancillary data objects in msg_control buffer. +// Used for additional information with/about a datagram +// not expressible by flags. The format is a sequence +// of message elements headed by cmsghdr structures. +type Cmsghdr = struct { + Fcmsg_len Socklen_t + Fcmsg_level int32 + Fcmsg_type int32 +} /* socket.h:512:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go index fdd8a9584..550e5b58c 100644 --- a/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package stat -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go index 827c5c421..1835b3b16 100644 --- a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package stat -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go new file mode 100644 index 000000000..19a4bcd59 --- /dev/null +++ b/vendor/modernc.org/libc/sys/stat/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_freebsd_386.go -pkgname stat', DO NOT EDIT. + +package stat + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/stat/capi_openbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_openbsd_amd64.go new file mode 100644 index 000000000..4f54d20f4 --- /dev/null +++ b/vendor/modernc.org/libc/sys/stat/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_openbsd_amd64.go -pkgname stat', DO NOT EDIT. + +package stat + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/stat/capi_windows_386.go b/vendor/modernc.org/libc/sys/stat/capi_windows_386.go index ec7e8697b..5656b390b 100644 --- a/vendor/modernc.org/libc/sys/stat/capi_windows_386.go +++ b/vendor/modernc.org/libc/sys/stat/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT. +// Code generated by 'ccgo sys\stat\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\stat\stat_windows_386.go -pkgname stat', DO NOT EDIT. package stat diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go index 34f6c6e8c..45c2ed9af 100644 --- a/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go @@ -131,6 +131,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2014 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -296,6 +298,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -1053,15 +1062,6 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go index dc6c3958f..ff41ae3e4 100644 --- a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go @@ -169,6 +169,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2014 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -334,6 +336,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1100,15 +1109,6 @@ type X__darwin_pthread_t = uintptr /* _pthread_ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go b/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go new file mode 100644 index 000000000..e236e64c1 --- /dev/null +++ b/vendor/modernc.org/libc/sys/stat/stat_freebsd_386.go @@ -0,0 +1,1986 @@ +// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_freebsd_386.go -pkgname stat', DO NOT EDIT. + +package stat + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ACCESSPERMS = 511 + ALLPERMS = 4095 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + CLK_TCK = 128 + CLOCKS_PER_SEC = 128 + CLOCK_BOOTTIME = 5 + CLOCK_MONOTONIC = 4 + CLOCK_MONOTONIC_COARSE = 12 + CLOCK_MONOTONIC_FAST = 12 + CLOCK_MONOTONIC_PRECISE = 11 + CLOCK_PROCESS_CPUTIME_ID = 15 + CLOCK_PROF = 2 + CLOCK_REALTIME = 0 + CLOCK_REALTIME_COARSE = 10 + CLOCK_REALTIME_FAST = 10 + CLOCK_REALTIME_PRECISE = 9 + CLOCK_SECOND = 13 + CLOCK_THREAD_CPUTIME_ID = 14 + CLOCK_UPTIME = 5 + CLOCK_UPTIME_FAST = 8 + CLOCK_UPTIME_PRECISE = 7 + CLOCK_VIRTUAL = 1 + CPUCLOCK_WHICH_PID = 0 + CPUCLOCK_WHICH_TID = 1 + DEFFILEMODE = 438 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + FD_SETSIZE = 1024 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + SBT_MAX = 0x7fffffffffffffff + SF_APPEND = 0x00040000 + SF_ARCHIVED = 0x00010000 + SF_IMMUTABLE = 0x00020000 + SF_NOUNLINK = 0x00100000 + SF_SETTABLE = 0xffff0000 + SF_SNAPSHOT = 0x00200000 + S_BLKSIZE = 512 + S_IEXEC = 64 + S_IFBLK = 0060000 + S_IFCHR = 0020000 + S_IFDIR = 0040000 + S_IFIFO = 0010000 + S_IFLNK = 0120000 + S_IFMT = 0170000 + S_IFREG = 0100000 + S_IFSOCK = 0140000 + S_IFWHT = 0160000 + S_IREAD = 256 + S_IRGRP = 0000040 + S_IROTH = 0000004 + S_IRUSR = 0000400 + S_IRWXG = 0000070 + S_IRWXO = 0000007 + S_IRWXU = 0000700 + S_ISGID = 0002000 + S_ISTXT = 0001000 + S_ISUID = 0004000 + S_ISVTX = 0001000 + S_IWGRP = 0000020 + S_IWOTH = 0000002 + S_IWRITE = 128 + S_IWUSR = 0000200 + S_IXGRP = 0000010 + S_IXOTH = 0000001 + S_IXUSR = 0000100 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + UF_APPEND = 0x00000004 + UF_ARCHIVE = 0x00000800 + UF_HIDDEN = 0x00008000 + UF_IMMUTABLE = 0x00000002 + UF_NODUMP = 0x00000001 + UF_NOUNLINK = 0x00000010 + UF_OFFLINE = 0x00000200 + UF_OPAQUE = 0x00000008 + UF_READONLY = 0x00001000 + UF_REPARSE = 0x00000400 + UF_SETTABLE = 0x0000ffff + UF_SPARSE = 0x00000100 + UF_SYSTEM = 0x00000080 + UTIME_NOW = -1 + UTIME_OMIT = -2 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_ILP32 = 1 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED = 0 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MKNOD_DECLARED = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_STAT_H_ = 0 + X_SYS_SYS__CLOCK_ID_H = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_USECONDS_T_DECLARED = 0 + X_XLOCALE_LOCALE1_H = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stat.h 8.12 (Berkeley) 6/16/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Time_t = X__time_t /* _timespec.h:42:18 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Blksize_t = X__blksize_t /* stat.h:48:21 */ + +type Blkcnt_t = X__blkcnt_t /* stat.h:53:20 */ + +type Dev_t = X__dev_t /* stat.h:58:18 */ + +type Fflags_t = X__fflags_t /* stat.h:63:20 */ + +type Gid_t = X__gid_t /* stat.h:68:18 */ + +type Ino_t = X__ino_t /* stat.h:73:18 */ + +type Mode_t = X__mode_t /* stat.h:78:18 */ + +type Nlink_t = X__nlink_t /* stat.h:83:19 */ + +type Off_t = X__off_t /* stat.h:88:18 */ + +type Uid_t = X__uid_t /* stat.h:93:18 */ + +// XXX We get miscellaneous namespace pollution with this. +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Suseconds_t = X__suseconds_t /* _timeval.h:37:23 */ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint32 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint32 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint32 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// These macros are shared between time.h and sys/time.h. + +// Note: The values shown below as a comment for the __POSIX_VISIBLE values are +// the ones FreeBSD traditionally used based on our reading of the POSIX +// standards. However, glibc uses 199309 for all of them, even those many were +// not defined there. To remain bug compatible with glibc means more software +// that relied on the glibc behavior will compile easily on FreeBSD. +// +// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl +// port until it can be updated properly. It incorrectly assumes that this was a +// standard value. It will be moved back to the __BSD_VISIBLE section once the +// issue is corrected. + +// FreeBSD-specific clocks. + +// Linux compatible names. + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:43:1 */ + +type Bintime = struct { + Fsec Time_t + Ffrac Uint64_t +} /* time.h:56:1 */ + +// Operations on timespecs + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:459:1 */ + +// Getkerninfo clock information structure +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fspare int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:467:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// Frequency of the clock ticks reported by clock(). + +// New in POSIX 1003.1b-1993. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +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 + Ftm_gmtoff int32 + Ftm_zone uintptr +} /* time.h:101:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011, 2012 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _time.h:36:25 */ + +type Stat = struct { + Fst_dev Dev_t + Fst_ino Ino_t + Fst_nlink Nlink_t + Fst_mode Mode_t + Fst_padding0 X__int16_t + Fst_uid Uid_t + Fst_gid Gid_t + Fst_padding1 X__int32_t + Fst_rdev Dev_t + Fst_atim_ext X__int32_t + Fst_atim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_mtim_ext X__int32_t + Fst_mtim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_ctim_ext X__int32_t + Fst_ctim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_btim_ext X__int32_t + Fst_birthtim struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fst_size Off_t + Fst_blocks Blkcnt_t + Fst_blksize Blksize_t + Fst_flags Fflags_t + Fst_gen X__uint64_t + Fst_spare [10]X__uint64_t +} /* stat.h:160:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go new file mode 100644 index 000000000..c748b3d1f --- /dev/null +++ b/vendor/modernc.org/libc/sys/stat/stat_openbsd_amd64.go @@ -0,0 +1,1092 @@ +// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_openbsd_amd64.go -pkgname stat', DO NOT EDIT. + +package stat + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ACCESSPERMS = 511 + ALLPERMS = 4095 + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + CLK_TCK = 100 + CLOCKS_PER_SEC = 100 + CLOCK_BOOTTIME = 6 + CLOCK_MONOTONIC = 3 + CLOCK_PROCESS_CPUTIME_ID = 2 + CLOCK_REALTIME = 0 + CLOCK_THREAD_CPUTIME_ID = 4 + CLOCK_UPTIME = 5 + DEFFILEMODE = 438 + DST_AUST = 2 + DST_CAN = 6 + DST_EET = 5 + DST_MET = 4 + DST_NONE = 0 + DST_USA = 1 + DST_WET = 3 + FD_SETSIZE = 1024 + ITIMER_PROF = 2 + ITIMER_REAL = 0 + ITIMER_VIRTUAL = 1 + LITTLE_ENDIAN = 1234 + NBBY = 8 + PDP_ENDIAN = 3412 + SF_APPEND = 0x00040000 + SF_ARCHIVED = 0x00010000 + SF_IMMUTABLE = 0x00020000 + SF_SETTABLE = 0xffff0000 + S_BLKSIZE = 512 + S_IEXEC = 64 + S_IFBLK = 0060000 + S_IFCHR = 0020000 + S_IFDIR = 0040000 + S_IFIFO = 0010000 + S_IFLNK = 0120000 + S_IFMT = 0170000 + S_IFREG = 0100000 + S_IFSOCK = 0140000 + S_IREAD = 256 + S_IRGRP = 0000040 + S_IROTH = 0000004 + S_IRUSR = 0000400 + S_IRWXG = 0000070 + S_IRWXO = 0000007 + S_IRWXU = 0000700 + S_ISGID = 0002000 + S_ISTXT = 0001000 + S_ISUID = 0004000 + S_ISVTX = 0001000 + S_IWGRP = 0000020 + S_IWOTH = 0000002 + S_IWRITE = 128 + S_IWUSR = 0000200 + S_IXGRP = 0000010 + S_IXOTH = 0000001 + S_IXUSR = 0000100 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + UF_APPEND = 0x00000004 + UF_IMMUTABLE = 0x00000002 + UF_NODUMP = 0x00000001 + UF_OPAQUE = 0x00000008 + UF_SETTABLE = 0x0000ffff + UTIME_NOW = -2 + UTIME_OMIT = -1 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SELECT_DEFINED_ = 0 + X_SIGSET_T_DEFINED_ = 0 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_STAT_H_ = 0 + X_SYS_TIME_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TIME_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIMEVAL_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: stat.h,v 1.28 2015/04/04 18:06:08 jca Exp $ +// $NetBSD: stat.h,v 1.20 1996/05/16 22:17:49 cgd Exp $ + +// - +// Copyright (c) 1982, 1986, 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)stat.h 8.9 (Berkeley) 8/17/94 + +// $OpenBSD: time.h,v 1.61 2021/06/19 13:49:39 cheloha Exp $ +// $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.2 (Berkeley) 7/10/94 + +// $OpenBSD: select.h,v 1.17 2016/09/12 19:41:20 guenther Exp $ + +// - +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)select.h 8.2 (Berkeley) 1/4/94 + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* select.h:41:1 */ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* select.h:49:1 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +// We don't want to pollute the namespace with select(2) internals. +// Non-underscore versions are exposed later #if __BSD_VISIBLE +type X__fd_mask = Uint32_t /* select.h:70:18 */ + +type Fd_set1 = struct{ Ffds_bits [32]X__fd_mask } /* select.h:74:9 */ + +type Fd_set = Fd_set1 /* select.h:76:3 */ + +type Sigset_t = uint32 /* select.h:122:22 */ + +type Timezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} /* time.h:72:1 */ + +// Operations on timevals. + +// Operations on timespecs. + +// Names of the interval timers, and structure +// defining a timer setting. + +type Itimerval = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } + Fit_value struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t + } +} /* time.h:148:1 */ + +// clock information structure for sysctl({CTL_KERN, KERN_CLOCKRATE}) +type Clockinfo = struct { + Fhz int32 + Ftick int32 + Fstathz int32 + Fprofhz int32 +} /* time.h:157:1 */ + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Per-process and per-thread clocks encode the PID or TID into the +// high bits, with the type in the bottom bits + +// Structure defined by POSIX 1003.1b to be like a itimerval, +// but with timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* _time.h:56:1 */ + +type Locale_t = uintptr /* time.h:107:14 */ + +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 + F__ccgo_pad1 [4]byte + Ftm_gmtoff int64 + Ftm_zone uintptr +} /* time.h:111:1 */ + +type Stat = struct { + Fst_mode Mode_t + Fst_dev Dev_t + Fst_ino Ino_t + Fst_nlink Nlink_t + Fst_uid Uid_t + Fst_gid Gid_t + Fst_rdev Dev_t + Fst_atim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_mtim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_ctim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fst_size Off_t + Fst_blocks Blkcnt_t + Fst_blksize Blksize_t + Fst_flags U_int32_t + Fst_gen U_int32_t + F__ccgo_pad1 [4]byte + F__st_birthtim struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* stat.h:45:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/stat/stat_windows_386.go b/vendor/modernc.org/libc/sys/stat/stat_windows_386.go index 46b091f73..c62921b4e 100644 --- a/vendor/modernc.org/libc/sys/stat/stat_windows_386.go +++ b/vendor/modernc.org/libc/sys/stat/stat_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT. +// Code generated by 'ccgo sys\stat\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\stat\stat_windows_386.go -pkgname stat', DO NOT EDIT. package stat @@ -33,7 +33,9 @@ const ( DUMMYUNIONNAME9 = 0 F_OK = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 R_OK = 4 @@ -87,7 +89,6 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DEV_T_DEFINED = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 @@ -96,8 +97,6 @@ const ( X_FILE_OFFSET_BITS_SET_OFFT = 0 X_FINDDATA_T_DEFINED = 0 X_FSIZE_T_DEFINED = 0 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -124,6 +123,7 @@ const ( X_PID_T_ = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIGSET_T_ = 0 @@ -199,11 +199,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -224,12 +219,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -270,28 +259,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -317,29 +304,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type X_fsize_t = uint32 /* io.h:29:25 */ type X_finddata32_t = struct { @@ -473,7 +460,7 @@ type Itimerspec = struct { type X_sigset_t = uint32 /* types.h:106:23 */ -type X_stat32 = struct { +type X_stat = struct { Fst_dev X_dev_t Fst_ino X_ino_t Fst_mode uint16 @@ -486,7 +473,7 @@ type X_stat32 = struct { Fst_atime X__time32_t Fst_mtime X__time32_t Fst_ctime X__time32_t -} /* _mingw_stat64.h:25:3 */ +} /* _mingw_stat64.h:28:3 */ type Stat = struct { Fst_dev X_dev_t @@ -501,7 +488,7 @@ type Stat = struct { Fst_atime Time_t Fst_mtime Time_t Fst_ctime Time_t -} /* _mingw_stat64.h:40:3 */ +} /* _mingw_stat64.h:43:3 */ type X_stati64 = struct { Fst_dev X_dev_t @@ -518,7 +505,7 @@ type X_stati64 = struct { Fst_mtime X__time32_t Fst_ctime X__time32_t F__ccgo_pad3 [4]byte -} /* _mingw_stat64.h:55:3 */ +} /* _mingw_stat64.h:58:3 */ type X_stat64i32 = struct { Fst_dev X_dev_t @@ -533,7 +520,7 @@ type X_stat64i32 = struct { Fst_atime X__time64_t Fst_mtime X__time64_t Fst_ctime X__time64_t -} /* _mingw_stat64.h:69:3 */ +} /* _mingw_stat64.h:72:3 */ type X_stat64 = struct { Fst_dev X_dev_t @@ -549,6 +536,6 @@ type X_stat64 = struct { Fst_atime X__time64_t Fst_mtime X__time64_t Fst_ctime X__time64_t -} /* _mingw_stat64.h:83:3 */ +} /* _mingw_stat64.h:86:3 */ var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go index 7d05a9e0a..b3e96e3d5 100644 --- a/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package types -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go index 96cf0022e..dfe6e426d 100644 --- a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package types -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/sys/types/capi_freebsd_386.go b/vendor/modernc.org/libc/sys/types/capi_freebsd_386.go new file mode 100644 index 000000000..e1a9f4751 --- /dev/null +++ b/vendor/modernc.org/libc/sys/types/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_freebsd_386.go -pkgname types', DO NOT EDIT. + +package types + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/types/capi_openbsd_amd64.go b/vendor/modernc.org/libc/sys/types/capi_openbsd_amd64.go new file mode 100644 index 000000000..325872022 --- /dev/null +++ b/vendor/modernc.org/libc/sys/types/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_openbsd_amd64.go -pkgname types', DO NOT EDIT. + +package types + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/sys/types/capi_windows_386.go b/vendor/modernc.org/libc/sys/types/capi_windows_386.go index d09a4ea4d..9b50442d7 100644 --- a/vendor/modernc.org/libc/sys/types/capi_windows_386.go +++ b/vendor/modernc.org/libc/sys/types/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT. +// Code generated by 'ccgo sys\types\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\types\types_windows_386.go -pkgname types', DO NOT EDIT. package types diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go index 0ba897784..c1949396d 100644 --- a/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go +++ b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go @@ -115,6 +115,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2008 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -279,6 +281,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -2846,15 +2855,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -3125,15 +3125,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go index cd35b2005..e15506dc7 100644 --- a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go +++ b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go @@ -130,7 +130,6 @@ const ( X_FILE_OFFSET_BITS = 64 X_FSBLKCNT_T = 0 X_FSFILCNT_T = 0 - X_GCC_WRAP_STDINT_H = 0 X_GID_T = 0 X_ID_T = 0 X_INO64_T = 0 @@ -139,7 +138,6 @@ const ( X_INT32_T = 0 X_INT64_T = 0 X_INT8_T = 0 - X_INTMAX_T = 0 X_INTPTR_T = 0 X_IN_ADDR_T = 0 X_IN_PORT_T = 0 @@ -170,7 +168,6 @@ const ( X_RSIZE_T = 0 X_SIZE_T = 0 X_SSIZE_T = 0 - X_STDINT_H_ = 0 X_SUSECONDS_T = 0 X_SYS_TYPES_H_ = 0 X_SYS__ENDIAN_H_ = 0 @@ -178,11 +175,6 @@ const ( X_SYS__TYPES_H_ = 0 X_TIME_T = 0 X_UID_T = 0 - X_UINT16_T = 0 - X_UINT32_T = 0 - X_UINT64_T = 0 - X_UINT8_T = 0 - X_UINTMAX_T = 0 X_UINTPTR_T = 0 X_USECONDS_T = 0 X_U_CHAR = 0 @@ -213,6 +205,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000-2008 Apple Inc. All rights reserved. // // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ @@ -377,6 +371,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1452,727 +1453,39 @@ type X__darwin_pthread_once_t = X_opaque_pthread_once_t /* _pthread_ type X__darwin_pthread_rwlock_t = X_opaque_pthread_rwlock_t /* _pthread_types.h:116:41 */ type X__darwin_pthread_rwlockattr_t = X_opaque_pthread_rwlockattr_t /* _pthread_types.h:117:45 */ type X__darwin_pthread_t = uintptr /* _pthread_types.h:118:34 */ +type Uint64_t = uint64 /* stdint.h:98:25 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. +type Int_least64_t = Int64_t /* stdint.h:110:25 */ +type Uint_least64_t = Uint64_t /* stdint.h:111:26 */ +type Int_fast64_t = Int64_t /* stdint.h:112:25 */ +type Uint_fast64_t = Uint64_t /* stdint.h:113:26 */ -// Copyright (c) 2000-2007 Apple Inc. All rights reserved. -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)endian.h 8.1 (Berkeley) 6/11/93 +type Uint32_t = uint32 /* stdint.h:172:25 */ -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +type Int_least32_t = Int32_t /* stdint.h:184:25 */ +type Uint_least32_t = Uint32_t /* stdint.h:185:26 */ +type Int_fast32_t = Int32_t /* stdint.h:186:25 */ +type Uint_fast32_t = Uint32_t /* stdint.h:187:26 */ +type Uint16_t = uint16 /* stdint.h:207:25 */ -// Define _NOQUAD if the compiler does NOT support 64-bit integers. -// #define _NOQUAD +type Int_least16_t = Int16_t /* stdint.h:215:25 */ +type Uint_least16_t = Uint16_t /* stdint.h:216:26 */ +type Int_fast16_t = Int16_t /* stdint.h:217:25 */ +type Uint_fast16_t = Uint16_t /* stdint.h:218:26 */ +type Uint8_t = uint8 /* stdint.h:226:24 */ -// Define the order of 32-bit words in 64-bit words. +type Int_least8_t = Int8_t /* stdint.h:232:24 */ +type Uint_least8_t = Uint8_t /* stdint.h:233:25 */ +type Int_fast8_t = Int8_t /* stdint.h:234:24 */ +type Uint_fast8_t = Uint8_t /* stdint.h:235:25 */ -// Definitions for byte order, according to byte significance from low -// address to high. +// prevent glibc sys/types.h from defining conflicting types -// Copyright (c) 2004, 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +// C99 7.18.1.4 Integer types capable of holding object pointers. -// Copyright (c) 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 1987, 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. - -// Copyright (c) 2000-2018 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright 1995 NeXT Computer, Inc. All rights reserved. -// Copyright (c) 1991, 1993 -// The Regents of the University of California. All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Berkeley Software Design, Inc. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. All advertising materials mentioning features or use of this software -// must display the following acknowledgement: -// This product includes software developed by the University of -// California, Berkeley and its contributors. -// 4. Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - -// Macros for network/external number representation conversion. - -// Copyright (c) 2006 Apple Computer, Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// This header is normally included from <libkern/OSByteOrder.h>. However, -// <sys/_endian.h> also includes this in the case of little-endian -// architectures, so that we can map OSByteOrder routines to the hton* and ntoh* -// macros. This results in the asymmetry below; we only include -// <libkern/arch/_OSByteOrder.h> for little-endian architectures. - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Macros for swapping constant values in the preprocessing stage. - -// Copyright (c) 1999-2007 Apple Inc. All rights reserved. - -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/stdint.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - -// Copyright (c) 2000-2010 Apple Inc. -// All rights reserved. - -// from ISO/IEC 988:1999 spec - -// 7.18.1.1 Exact-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint8_t = uint8 /* _uint8_t.h:31:23 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint16_t = uint16 /* _uint16_t.h:31:24 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint32_t = uint32 /* _uint32_t.h:31:22 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uint64_t = uint64 /* _uint64_t.h:31:28 */ - -// 7.18.1.2 Minimum-width integer types -type Int_least8_t = Int8_t /* stdint.h:38:26 */ -type Int_least16_t = Int16_t /* stdint.h:39:25 */ -type Int_least32_t = Int32_t /* stdint.h:40:25 */ -type Int_least64_t = Int64_t /* stdint.h:41:25 */ -type Uint_least8_t = Uint8_t /* stdint.h:42:25 */ -type Uint_least16_t = Uint16_t /* stdint.h:43:24 */ -type Uint_least32_t = Uint32_t /* stdint.h:44:24 */ -type Uint_least64_t = Uint64_t /* stdint.h:45:24 */ - -// 7.18.1.3 Fastest-width integer types -type Int_fast8_t = Int8_t /* stdint.h:49:27 */ -type Int_fast16_t = Int16_t /* stdint.h:50:26 */ -type Int_fast32_t = Int32_t /* stdint.h:51:26 */ -type Int_fast64_t = Int64_t /* stdint.h:52:26 */ -type Uint_fast8_t = Uint8_t /* stdint.h:53:26 */ -type Uint_fast16_t = Uint16_t /* stdint.h:54:25 */ -type Uint_fast32_t = Uint32_t /* stdint.h:55:25 */ -type Uint_fast64_t = Uint64_t /* stdint.h:56:25 */ - -// 7.18.1.4 Integer types capable of holding object pointers - -// Copyright (c) 2003-2007 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ -// Copyright (c) 2003-2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -// 7.18.1.5 Greatest-width integer types -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Intmax_t = int64 /* _intmax_t.h:32:25 */ -// Copyright (c) 2012 Apple Inc. All rights reserved. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_START@ -// -// This file contains Original Code and/or Modifications of Original Code -// as defined in and that are subject to the Apple Public Source License -// Version 2.0 (the 'License'). You may not use this file except in -// compliance with the License. The rights granted to you under the License -// may not be used to create, or enable the creation or redistribution of, -// unlawful or unlicensed copies of an Apple operating system, or to -// circumvent, violate, or enable the circumvention or violation of, any -// terms of an Apple operating system software license agreement. -// -// Please obtain a copy of the License at -// http://www.opensource.apple.com/apsl/ and read it before using this file. -// -// The Original Code and all software distributed under the License are -// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -// EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -// Please see the License for the specific language governing rights and -// limitations under the License. -// -// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - -type Uintmax_t = uint64 /* _uintmax_t.h:32:26 */ +// C99 7.18.1.5 Greatest-width integer types. +type Intmax_t = int64 /* stdint.h:262:26 */ +type Uintmax_t = uint64 /* stdint.h:263:26 */ // Functions for byte reversed loads. @@ -3635,15 +2948,6 @@ type Errno_t = int32 /* _errno_t.h:30:32 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -3937,15 +3241,6 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/sys/types/types_freebsd_386.go b/vendor/modernc.org/libc/sys/types/types_freebsd_386.go new file mode 100644 index 000000000..3d712f6f9 --- /dev/null +++ b/vendor/modernc.org/libc/sys/types/types_freebsd_386.go @@ -0,0 +1,1407 @@ +// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_freebsd_386.go -pkgname types', DO NOT EDIT. + +package types + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FD_SETSIZE = 1024 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_ILP32 = 1 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_USECONDS_T_DECLARED = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// Machine type dependent parameters. +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint32 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Blksize_t = X__blksize_t /* types.h:80:21 */ + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev + +type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type Gid_t = X__gid_t /* types.h:125:18 */ // group id + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Ino_t = X__ino_t /* types.h:145:18 */ // inode number + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Mode_t = X__mode_t /* types.h:160:18 */ // permissions + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count + +type Off_t = X__off_t /* types.h:175:18 */ // file offset + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed) + +type Time_t = X__time_t /* types.h:216:18 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Uid_t = X__uid_t /* types.h:233:18 */ // user id + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint32 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint32 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go b/vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go new file mode 100644 index 000000000..e42cd88d3 --- /dev/null +++ b/vendor/modernc.org/libc/sys/types/types_openbsd_amd64.go @@ -0,0 +1,652 @@ +// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_openbsd_amd64.go -pkgname types', DO NOT EDIT. + +package types + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/sys/types/types_windows_386.go b/vendor/modernc.org/libc/sys/types/types_windows_386.go index 25487bb49..37fddc7aa 100644 --- a/vendor/modernc.org/libc/sys/types/types_windows_386.go +++ b/vendor/modernc.org/libc/sys/types/types_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT. +// Code generated by 'ccgo sys\types\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\types\types_windows_386.go -pkgname types', DO NOT EDIT. package types @@ -32,7 +32,9 @@ const ( DUMMYUNIONNAME8 = 0 DUMMYUNIONNAME9 = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 UNALIGNED = 0 @@ -54,14 +56,11 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DEV_T_DEFINED = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 X_FILE_OFFSET_BITS_SET_OFFT = 0 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -82,6 +81,7 @@ const ( X_PID_T_ = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIGSET_T_ = 0 @@ -137,11 +137,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -162,12 +157,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -208,28 +197,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -255,29 +242,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type X_ino_t = uint16 /* types.h:43:24 */ type Ino_t = uint16 /* types.h:45:24 */ diff --git a/vendor/modernc.org/libc/termios/capi_darwin_amd64.go b/vendor/modernc.org/libc/termios/capi_darwin_amd64.go index 7215e0679..d69811899 100644 --- a/vendor/modernc.org/libc/termios/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/termios/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package termios -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/termios/capi_darwin_arm64.go b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go index 3e2e7800a..cc3e84f56 100644 --- a/vendor/modernc.org/libc/termios/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/termios/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package termios -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/termios/capi_freebsd_386.go b/vendor/modernc.org/libc/termios/capi_freebsd_386.go new file mode 100644 index 000000000..8bfc1af70 --- /dev/null +++ b/vendor/modernc.org/libc/termios/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo termios/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o termios/termios_freebsd_386.go -pkgname termios', DO NOT EDIT. + +package termios + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go b/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go new file mode 100644 index 000000000..537bac53b --- /dev/null +++ b/vendor/modernc.org/libc/termios/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo termios/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o termios/termios_openbsd_amd64.go -pkgname termios', DO NOT EDIT. + +package termios + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/termios/termios_darwin_amd64.go b/vendor/modernc.org/libc/termios/termios_darwin_amd64.go index 8df6e18a0..9172c98d0 100644 --- a/vendor/modernc.org/libc/termios/termios_darwin_amd64.go +++ b/vendor/modernc.org/libc/termios/termios_darwin_amd64.go @@ -243,6 +243,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -338,6 +340,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/termios/termios_darwin_arm64.go b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go index 2445b648c..25fbac4b2 100644 --- a/vendor/modernc.org/libc/termios/termios_darwin_arm64.go +++ b/vendor/modernc.org/libc/termios/termios_darwin_arm64.go @@ -245,6 +245,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -340,6 +342,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/termios/termios_freebsd_386.go b/vendor/modernc.org/libc/termios/termios_freebsd_386.go new file mode 100644 index 000000000..8211b2ad1 --- /dev/null +++ b/vendor/modernc.org/libc/termios/termios_freebsd_386.go @@ -0,0 +1,1002 @@ +// Code generated by 'ccgo termios/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o termios/termios_freebsd_386.go -pkgname termios', DO NOT EDIT. + +package termios + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ALTWERASE = 0x00000200 + B0 = 0 + B1000000 = 1000000 + B110 = 110 + B115200 = 115200 + B1200 = 1200 + B134 = 134 + B14400 = 14400 + B150 = 150 + B1500000 = 1500000 + B1800 = 1800 + B19200 = 19200 + B200 = 200 + B2000000 = 2000000 + B230400 = 230400 + B2400 = 2400 + B2500000 = 2500000 + B28800 = 28800 + B300 = 300 + B3000000 = 3000000 + B3500000 = 3500000 + B38400 = 38400 + B4000000 = 4000000 + B460800 = 460800 + B4800 = 4800 + B50 = 50 + B500000 = 500000 + B57600 = 57600 + B600 = 600 + B7200 = 7200 + B75 = 75 + B76800 = 76800 + B921600 = 921600 + B9600 = 9600 + BRKINT = 0x00000002 + CBRK = 255 + CCAR_OFLOW = 0x00100000 + CCTS_OFLOW = 0x00010000 + CDISCARD = 15 + CDSR_OFLOW = 0x00080000 + CDSUSP = 25 + CDTR_IFLOW = 0x00040000 + CEOF = 4 + CEOL = 0xff + CEOT = 4 + CERASE = 127 + CERASE2 = 8 + CFLUSH = 15 + CIGNORE = 0x00000001 + CINTR = 3 + CKILL = 21 + CLNEXT = 22 + CLOCAL = 0x00008000 + CMIN = 1 + CNO_RTSDTR = 0x00200000 + CQUIT = 28 + CREAD = 0x00000800 + CREPRINT = 18 + CRPRNT = 18 + CRTSCTS = 196608 + CRTS_IFLOW = 0x00020000 + CS5 = 0x00000000 + CS6 = 0x00000100 + CS7 = 0x00000200 + CS8 = 0x00000300 + CSIZE = 0x00000300 + CSTART = 17 + CSTATUS = 20 + CSTOP = 19 + CSTOPB = 0x00000400 + CSUSP = 26 + CTIME = 0 + CWERASE = 23 + ECHO = 0x00000008 + ECHOCTL = 0x00000040 + ECHOE = 0x00000002 + ECHOK = 0x00000004 + ECHOKE = 0x00000001 + ECHONL = 0x00000010 + ECHOPRT = 0x00000020 + EXTA = 19200 + EXTB = 38400 + EXTPROC = 0x00000800 + FLUSHO = 0x00800000 + H4DISC = 7 + HUPCL = 0x00004000 + ICANON = 0x00000100 + ICRNL = 0x00000100 + IEXTEN = 0x00000400 + IGNBRK = 0x00000001 + IGNCR = 0x00000080 + IGNPAR = 0x00000004 + IMAXBEL = 0x00002000 + INLCR = 0x00000040 + INPCK = 0x00000010 + IOCPARM_MASK = 8191 + IOCPARM_MAX = 8192 + IOCPARM_SHIFT = 13 + IOC_DIRMASK = 3758096384 + IOC_IN = 0x80000000 + IOC_INOUT = 3221225472 + IOC_OUT = 0x40000000 + IOC_VOID = 0x20000000 + ISIG = 0x00000080 + ISTRIP = 0x00000020 + IXANY = 0x00000800 + IXOFF = 0x00000400 + IXON = 0x00000200 + MDMBUF = 1048576 + NCCS = 20 + NETGRAPHDISC = 6 + NOFLSH = 0x80000000 + NOKERNINFO = 0x02000000 + OCRNL = 0x00000010 + ONLCR = 0x00000002 + ONLRET = 0x00000040 + ONOCR = 0x00000020 + ONOEOT = 0x00000008 + OPOST = 0x00000001 + OXTABS = 4 + PARENB = 0x00001000 + PARMRK = 0x00000008 + PARODD = 0x00002000 + PENDIN = 0x20000000 + PPPDISC = 5 + SLIPDISC = 4 + TAB0 = 0x00000000 + TAB3 = 0x00000004 + TABDLY = 0x00000004 + TCIFLUSH = 1 + TCIOFF = 3 + TCIOFLUSH = 3 + TCION = 4 + TCOFLUSH = 2 + TCOOFF = 1 + TCOON = 2 + TCSADRAIN = 1 + TCSAFLUSH = 2 + TCSANOW = 0 + TCSASOFT = 0x10 + TIOCM_CAR = 64 + TIOCM_CD = 64 + TIOCM_CTS = 0040 + TIOCM_DCD = 0100 + TIOCM_DSR = 0400 + TIOCM_DTR = 0002 + TIOCM_LE = 0001 + TIOCM_RI = 0200 + TIOCM_RNG = 128 + TIOCM_RTS = 0004 + TIOCM_SR = 0020 + TIOCM_ST = 0010 + TIOCPKT_DATA = 0x00 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x01 + TIOCPKT_FLUSHWRITE = 0x02 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x08 + TIOCPKT_STOP = 0x04 + TOSTOP = 0x00400000 + TTYDEF_CFLAG = 19200 + TTYDEF_IFLAG = 11010 + TTYDEF_LFLAG = 1483 + TTYDEF_LFLAG_ECHO = 1483 + TTYDEF_LFLAG_NOECHO = 1408 + TTYDEF_OFLAG = 3 + TTYDEF_SPEED = 9600 + TTYDISC = 0 + VDISCARD = 15 + VDSUSP = 11 + VEOF = 0 + VEOL = 1 + VEOL2 = 2 + VERASE = 3 + VERASE2 = 7 + VINTR = 8 + VKILL = 5 + VLNEXT = 14 + VMIN = 16 + VQUIT = 9 + VREPRINT = 6 + VSTART = 12 + VSTATUS = 18 + VSTOP = 13 + VSUSP = 10 + VTIME = 17 + VWERASE = 4 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PID_T_DECLARED = 0 + X_POSIX_VDISABLE = 0xff + X_SYS_CDEFS_H_ = 0 + X_SYS_IOCCOM_H_ = 0 + X_SYS_TTYCOM_H_ = 0 + X_SYS_TTYDEFAULTS_H_ = 0 + X_SYS__TERMIOS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_SYS__WINSIZE_H_ = 0 + X_TERMIOS_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1989, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)termios.h 8.3 (Berkeley) 3/28/94 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1989, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)termios.h 8.3 (Berkeley) 3/28/94 +// $FreeBSD$ + +// Special Control Characters +// +// Index into c_cc[] character array. +// +// Name Subscript Enabled by +// 7 ex-spare 1 +// 19 spare 2 + +// Input flags - software input processing + +// Output flags - software output processing + +// Control flags - hardware control of terminal + +// "Local" flags - dumping ground for other state +// +// Warning: some flags in this structure begin with +// the letter "I" and look like they belong in the +// input flag. + +// Standard speeds + +type Tcflag_t = uint32 /* _termios.h:224:22 */ +type Cc_t = uint8 /* _termios.h:225:23 */ +type Speed_t = uint32 /* _termios.h:226:22 */ + +type Termios = struct { + Fc_iflag Tcflag_t + Fc_oflag Tcflag_t + Fc_cflag Tcflag_t + Fc_lflag Tcflag_t + Fc_cc [20]Cc_t + Fc_ispeed Speed_t + Fc_ospeed Speed_t +} /* _termios.h:228:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1989, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ttycom.h 8.1 (Berkeley) 3/28/94 +// $FreeBSD$ + +// Window/terminal size structure. This information is stored by the kernel +// in order to provide a consistent interface, but is not used by the kernel. +type Winsize = struct { + Fws_row uint16 + Fws_col uint16 + Fws_xpixel uint16 + Fws_ypixel uint16 +} /* _winsize.h:42:1 */ + +type Pid_t = X__pid_t /* termios.h:46:18 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1989, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ttycom.h 8.1 (Berkeley) 3/28/94 +// $FreeBSD$ + +// Tty ioctl's except for those supported only for backwards compatibility +// with the old tty driver. + +// 0-2 compat +// 3-7 unused +// 8-10 compat +// 11-12 unused +// 17-18 compat +// 23-25 unused +// 29-85 unused +// 88 unused +// 89-91 conflicts: tun and tap +// 92-93 tun and tap +// 94-97 conflicts: tun and tap +// 100 unused +// 105 unused +// 116-117 compat +// 124-127 compat + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94 +// $FreeBSD$ + +// System wide defaults for terminal state. + +// Defaults on "first" open. + +// Control Character Defaults +// XXX: A lot of code uses lowercase characters, but control-character +// conversion is actually only valid when applied to uppercase +// characters. We just treat lowercase characters as if they were +// inserted as uppercase. +// compat + +// PROTECTED INCLUSION ENDS HERE + +// #define TTYDEFCHARS to include an array of default control characters. +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go b/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go new file mode 100644 index 000000000..e04529e4e --- /dev/null +++ b/vendor/modernc.org/libc/termios/termios_openbsd_amd64.go @@ -0,0 +1,789 @@ +// Code generated by 'ccgo termios/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o termios/termios_openbsd_amd64.go -pkgname termios', DO NOT EDIT. + +package termios + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + ALTWERASE = 0x00000200 + B0 = 0 + B110 = 110 + B115200 = 115200 + B1200 = 1200 + B134 = 134 + B14400 = 14400 + B150 = 150 + B1800 = 1800 + B19200 = 19200 + B200 = 200 + B230400 = 230400 + B2400 = 2400 + B28800 = 28800 + B300 = 300 + B38400 = 38400 + B4800 = 4800 + B50 = 50 + B57600 = 57600 + B600 = 600 + B7200 = 7200 + B75 = 75 + B76800 = 76800 + B9600 = 9600 + BRKINT = 0x00000002 + CCTS_OFLOW = 65536 + CDISCARD = 15 + CDSUSP = 25 + CEOF = 4 + CEOT = 4 + CERASE = 0177 + CFLUSH = 15 + CHWFLOW = 1114112 + CIGNORE = 0x00000001 + CINTR = 3 + CKILL = 21 + CLNEXT = 22 + CLOCAL = 0x00008000 + CMIN = 1 + CQUIT = 034 + CREAD = 0x00000800 + CREPRINT = 18 + CRPRNT = 18 + CRTSCTS = 0x00010000 + CRTS_IFLOW = 65536 + CS5 = 0x00000000 + CS6 = 0x00000100 + CS7 = 0x00000200 + CS8 = 0x00000300 + CSIZE = 0x00000300 + CSTART = 17 + CSTOP = 19 + CSTOPB = 0x00000400 + CSUSP = 26 + CTIME = 0 + CWERASE = 23 + ECHO = 0x00000008 + ECHOCTL = 0x00000040 + ECHOE = 0x00000002 + ECHOK = 0x00000004 + ECHOKE = 0x00000001 + ECHONL = 0x00000010 + ECHOPRT = 0x00000020 + ENDRUNDISC = 9 + EXTA = 19200 + EXTB = 38400 + EXTPROC = 0x00000800 + FLUSHO = 0x00800000 + HUPCL = 0x00004000 + ICANON = 0x00000100 + ICRNL = 0x00000100 + IEXTEN = 0x00000400 + IGNBRK = 0x00000001 + IGNCR = 0x00000080 + IGNPAR = 0x00000004 + IMAXBEL = 0x00002000 + INLCR = 0x00000040 + INPCK = 0x00000010 + IOCPARM_MASK = 0x1fff + ISIG = 0x00000080 + ISTRIP = 0x00000020 + IUCLC = 0x00001000 + IXANY = 0x00000800 + IXOFF = 0x00000400 + IXON = 0x00000200 + MDMBUF = 0x00100000 + MSTSDISC = 8 + NCCS = 20 + NMEADISC = 7 + NOFLSH = 0x80000000 + NOKERNINFO = 0x02000000 + OCRNL = 0x00000010 + OLCUC = 0x00000020 + ONLCR = 0x00000002 + ONLRET = 0x00000080 + ONOCR = 0x00000040 + ONOEOT = 0x00000008 + OPOST = 0x00000001 + OXTABS = 0x00000004 + PARENB = 0x00001000 + PARMRK = 0x00000008 + PARODD = 0x00002000 + PENDIN = 0x20000000 + PPPDISC = 5 + SLIPDISC = 4 + STRIPDISC = 6 + TABLDISC = 3 + TCIFLUSH = 1 + TCIOFF = 3 + TCIOFLUSH = 3 + TCION = 4 + TCOFLUSH = 2 + TCOOFF = 1 + TCOON = 2 + TCSADRAIN = 1 + TCSAFLUSH = 2 + TCSANOW = 0 + TCSASOFT = 0x10 + TIOCFLAG_CLOCAL = 0x02 + TIOCFLAG_CRTSCTS = 0x04 + TIOCFLAG_MDMBUF = 0x08 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x01 + TIOCM_CAR = 0100 + TIOCM_CD = 64 + TIOCM_CTS = 0040 + TIOCM_DSR = 0400 + TIOCM_DTR = 0002 + TIOCM_LE = 0001 + TIOCM_RI = 128 + TIOCM_RNG = 0200 + TIOCM_RTS = 0004 + TIOCM_SR = 0020 + TIOCM_ST = 0010 + TIOCPKT_DATA = 0x00 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x01 + TIOCPKT_FLUSHWRITE = 0x02 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x08 + TIOCPKT_STOP = 0x04 + TOSTOP = 0x00400000 + TTYDEF_CFLAG = 19200 + TTYDEF_IFLAG = 11010 + TTYDEF_LFLAG = 1483 + TTYDEF_OFLAG = 3 + TTYDEF_SPEED = 9600 + TTYDISC = 0 + VDISCARD = 15 + VDSUSP = 11 + VEOF = 0 + VEOL = 1 + VEOL2 = 2 + VERASE = 3 + VINTR = 8 + VKILL = 5 + VLNEXT = 14 + VMIN = 16 + VQUIT = 9 + VREPRINT = 6 + VSTART = 12 + VSTATUS = 18 + VSTOP = 13 + VSUSP = 10 + VTIME = 17 + VWERASE = 4 + XCASE = 0x01000000 + X_FILE_OFFSET_BITS = 64 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_PID_T_DEFINED_ = 0 + X_POSIX_VDISABLE = 255 + X_RET_PROTECTOR = 1 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_IOCCOM_H_ = 0 + X_SYS_TERMIOS_H_ = 0 + X_SYS_TTYCOM_H_ = 0 + X_SYS_TTYDEFAULTS_H_ = 0 + X_SYS__TYPES_H_ = 0 + Unix = 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 */ + +// $OpenBSD: termios.h,v 1.13 2016/09/20 21:10:22 fcambus Exp $ +// $NetBSD: termios.h,v 1.14 1996/04/09 20:55:41 cgd Exp $ + +// Copyright (c) 1988, 1989, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)termios.h 8.3 (Berkeley) 3/28/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// Special Control Characters +// +// Index into c_cc[] character array. +// +// Name Subscript Enabled by +// 7 spare 1 +// 19 spare 2 + +// Input flags - software input processing + +// Output flags - software output processing + +// Control flags - hardware control of terminal + +// "Local" flags - dumping ground for other state +// +// Warning: some flags in this structure begin with +// the letter "I" and look like they belong in the +// input flag. + +type Tcflag_t = uint32 /* termios.h:185:22 */ +type Cc_t = uint8 /* termios.h:186:23 */ +type Speed_t = uint32 /* termios.h:187:22 */ + +type Termios = struct { + Fc_iflag Tcflag_t + Fc_oflag Tcflag_t + Fc_cflag Tcflag_t + Fc_lflag Tcflag_t + Fc_cc [20]Cc_t + Fc_ispeed int32 + Fc_ospeed int32 +} /* termios.h:189:1 */ + +// Commands passed to tcsetattr() for setting the termios structure. + +// Standard speeds + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +type Pid_t = X__pid_t /* termios.h:255:18 */ + +// Include tty ioctl's that aren't just for backwards compatibility +// with the old tty driver. These ioctl definitions were previously +// in <sys/ioctl.h>. +// $OpenBSD: ttycom.h,v 1.17 2018/06/16 13:55:03 deraadt Exp $ +// $NetBSD: ttycom.h,v 1.4 1996/05/19 17:17:53 jonathan Exp $ + +// - +// Copyright (c) 1982, 1986, 1990, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ttycom.h 8.1 (Berkeley) 3/28/94 + +// $OpenBSD: ioccom.h,v 1.5 2013/03/22 21:22:05 deraadt Exp $ +// $NetBSD: ioccom.h,v 1.4 1994/10/30 21:49:56 cgd Exp $ + +// - +// Copyright (c) 1982, 1986, 1990, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ioccom.h 8.2 (Berkeley) 3/28/94 + +// Ioctl's have the command encoded in the lower word, and the size of +// any in or out parameters in the upper word. The high 3 bits of the +// upper word are used to encode the in/out status of the parameter. + +// no parameters +// copy parameters out +// copy parameters in +// copy parameters in and out +// mask for IN/OUT/VOID + +// this should be _IORW, but stdio got there first + +// Tty ioctl's. + +// Window/terminal size structure. This information is stored by the kernel +// in order to provide a consistent interface, but is not used by the kernel. +type Winsize = struct { + Fws_row uint16 + Fws_col uint16 + Fws_xpixel uint16 + Fws_ypixel uint16 +} /* ttycom.h:51:1 */ + +type Tstamps = struct { + Fts_set int32 + Fts_clr int32 +} /* ttycom.h:58:1 */ + +// 8-10 compat +// 15 unused +// 17-18 compat +// 127-124 compat +// 117-116 compat + +// Backwards compatibility + +// END OF PROTECTED INCLUDE. + +// $OpenBSD: ttydefaults.h,v 1.7 2019/03/12 11:01:25 nicm Exp $ +// $NetBSD: ttydefaults.h,v 1.8 1996/04/09 20:55:45 cgd Exp $ + +// - +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94 + +// System wide defaults for terminal state. + +// Defaults on "first" open. + +// Control Character Defaults +// compat + +// PROTECTED INCLUSION ENDS HERE + +// #define TTYDEFCHARS to include an array of default control characters. +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/time/capi_darwin_amd64.go b/vendor/modernc.org/libc/time/capi_darwin_amd64.go index 4ca486cce..ef5b65c2b 100644 --- a/vendor/modernc.org/libc/time/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/time/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package time -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/time/capi_darwin_arm64.go b/vendor/modernc.org/libc/time/capi_darwin_arm64.go index 87addbca6..fbd61d13b 100644 --- a/vendor/modernc.org/libc/time/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/time/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package time -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/time/capi_freebsd_386.go b/vendor/modernc.org/libc/time/capi_freebsd_386.go new file mode 100644 index 000000000..a4f75e8fc --- /dev/null +++ b/vendor/modernc.org/libc/time/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo time/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_freebsd_386.go -pkgname time', DO NOT EDIT. + +package time + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/time/capi_openbsd_amd64.go b/vendor/modernc.org/libc/time/capi_openbsd_amd64.go new file mode 100644 index 000000000..8b6f8157d --- /dev/null +++ b/vendor/modernc.org/libc/time/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo time/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_openbsd_amd64.go -pkgname time', DO NOT EDIT. + +package time + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/time/capi_windows_386.go b/vendor/modernc.org/libc/time/capi_windows_386.go index e46d8d233..b379fa17a 100644 --- a/vendor/modernc.org/libc/time/capi_windows_386.go +++ b/vendor/modernc.org/libc/time/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo time/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_windows_386.go -pkgname time', DO NOT EDIT. +// Code generated by 'ccgo time\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time\time_windows_386.go -pkgname time', DO NOT EDIT. package time diff --git a/vendor/modernc.org/libc/time/time_darwin_amd64.go b/vendor/modernc.org/libc/time/time_darwin_amd64.go index 889417c47..f11856c48 100644 --- a/vendor/modernc.org/libc/time/time_darwin_amd64.go +++ b/vendor/modernc.org/libc/time/time_darwin_amd64.go @@ -78,6 +78,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -257,6 +259,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. @@ -1044,15 +1053,6 @@ type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ // __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/time/time_darwin_arm64.go b/vendor/modernc.org/libc/time/time_darwin_arm64.go index 31886c4c0..eea0739c3 100644 --- a/vendor/modernc.org/libc/time/time_darwin_arm64.go +++ b/vendor/modernc.org/libc/time/time_darwin_arm64.go @@ -115,6 +115,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -294,6 +296,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // @@ -1090,15 +1099,6 @@ type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ // Set up standard Mac OS X versions -// DO NOT EDIT THIS FILE. -// -// It has been auto-edited by fixincludes from: -// -// "/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/AvailabilityInternal.h" -// -// This had to be done to correct non-standard usages in the -// original, manufacturer supplied header file. - // Copyright (c) 2007-2016 by Apple Inc.. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ diff --git a/vendor/modernc.org/libc/time/time_freebsd_386.go b/vendor/modernc.org/libc/time/time_freebsd_386.go new file mode 100644 index 000000000..450530642 --- /dev/null +++ b/vendor/modernc.org/libc/time/time_freebsd_386.go @@ -0,0 +1,927 @@ +// Code generated by 'ccgo time/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_freebsd_386.go -pkgname time', DO NOT EDIT. + +package time + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + CLK_TCK = 128 + CLOCKS_PER_SEC = 128 + CLOCK_BOOTTIME = 5 + CLOCK_MONOTONIC = 4 + CLOCK_MONOTONIC_COARSE = 12 + CLOCK_MONOTONIC_FAST = 12 + CLOCK_MONOTONIC_PRECISE = 11 + CLOCK_PROCESS_CPUTIME_ID = 15 + CLOCK_PROF = 2 + CLOCK_REALTIME = 0 + CLOCK_REALTIME_COARSE = 10 + CLOCK_REALTIME_FAST = 10 + CLOCK_REALTIME_PRECISE = 9 + CLOCK_SECOND = 13 + CLOCK_THREAD_CPUTIME_ID = 14 + CLOCK_UPTIME = 5 + CLOCK_UPTIME_FAST = 8 + CLOCK_UPTIME_PRECISE = 7 + CLOCK_VIRTUAL = 1 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_LOCALE_T_DEFINED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_PID_T_DECLARED = 0 + X_SIZE_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SYS__CLOCK_ID_H = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DECLARED = 0 + X_XLOCALE_LOCALE1_H = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2003 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.3 (Berkeley) 1/21/94 + +// These macros are shared between time.h and sys/time.h. + +// Note: The values shown below as a comment for the __POSIX_VISIBLE values are +// the ones FreeBSD traditionally used based on our reading of the POSIX +// standards. However, glibc uses 199309 for all of them, even those many were +// not defined there. To remain bug compatible with glibc means more software +// that relied on the glibc behavior will compile easily on FreeBSD. +// +// Also, CLOCK_UPTIME_FAST is improperly visible temporarily for the lang/pocl +// port until it can be updated properly. It incorrectly assumes that this was a +// standard value. It will be moved back to the __BSD_VISIBLE section once the +// issue is corrected. + +// FreeBSD-specific clocks. + +// Linux compatible names. + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +// Frequency of the clock ticks reported by clock(). + +type Clock_t = X__clock_t /* time.h:63:19 */ + +type Time_t = X__time_t /* time.h:68:18 */ + +// New in POSIX 1003.1b-1993. +type Clockid_t = X__clockid_t /* time.h:82:21 */ + +type Timer_t = X__timer_t /* time.h:87:19 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type Pid_t = X__pid_t /* time.h:96:18 */ + +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 + Ftm_gmtoff int32 + Ftm_zone uintptr +} /* time.h:101:1 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011, 2012 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _time.h:36:25 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/time/time_openbsd_amd64.go b/vendor/modernc.org/libc/time/time_openbsd_amd64.go new file mode 100644 index 000000000..702e02b40 --- /dev/null +++ b/vendor/modernc.org/libc/time/time_openbsd_amd64.go @@ -0,0 +1,527 @@ +// Code generated by 'ccgo time/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_openbsd_amd64.go -pkgname time', DO NOT EDIT. + +package time + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + CLK_TCK = 100 + CLOCKS_PER_SEC = 100 + CLOCK_BOOTTIME = 6 + CLOCK_MONOTONIC = 3 + CLOCK_PROCESS_CPUTIME_ID = 2 + CLOCK_REALTIME = 0 + CLOCK_THREAD_CPUTIME_ID = 4 + CLOCK_UPTIME = 5 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIME_UTC = 1 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_PID_T_DEFINED_ = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS__TIME_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIMESPEC_DECLARED = 0 + X_TIME_H_ = 0 + X_TIME_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: time.h,v 1.31 2018/10/30 16:28:42 guenther Exp $ +// $NetBSD: time.h,v 1.9 1994/10/26 00:56:35 cgd Exp $ + +// Copyright (c) 1989 The Regents of the University of California. +// All rights reserved. +// +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 5.12 (Berkeley) 3/9/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +type Clock_t = X__clock_t /* time.h:50:19 */ + +type Time_t = X__time_t /* time.h:55:18 */ + +// Frequency of the clock ticks reported by times(). Deprecated - use +// sysconf(_SC_CLK_TCK) instead. (Removed in 1003.1-2001.) + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* time.h:76:1 */ + +// $OpenBSD: _time.h,v 1.9 2017/12/18 05:51:53 cheloha Exp $ + +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +// Per-process and per-thread clocks encode the PID or TID into the +// high bits, with the type in the bottom bits + +// Structure defined by POSIX 1003.1b to be like a itimerval, +// but with timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* _time.h:56:1 */ + +type Clockid_t = X__clockid_t /* time.h:88:21 */ + +type Timer_t = X__timer_t /* time.h:93:19 */ + +type Pid_t = X__pid_t /* time.h:100:18 */ + +type Locale_t = uintptr /* time.h:107:14 */ + +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 + F__ccgo_pad1 [4]byte + Ftm_gmtoff int64 + Ftm_zone uintptr +} /* time.h:111:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/time/time_windows_386.go b/vendor/modernc.org/libc/time/time_windows_386.go index 8fa115a54..c947a3929 100644 --- a/vendor/modernc.org/libc/time/time_windows_386.go +++ b/vendor/modernc.org/libc/time/time_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo time/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_windows_386.go -pkgname time', DO NOT EDIT. +// Code generated by 'ccgo time\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time\time_windows_386.go -pkgname time', DO NOT EDIT. package time @@ -38,7 +38,9 @@ const ( DUMMYUNIONNAME8 = 0 DUMMYUNIONNAME9 = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 TIMER_ABSTIME = 1 @@ -64,12 +66,9 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -89,6 +88,7 @@ const ( X_POSIX_TIMERS = 200809 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIZE_T_DEFINED = 0 @@ -151,11 +151,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -176,12 +171,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -222,28 +211,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -269,29 +256,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type Clock_t = int32 /* time.h:60:16 */ @@ -307,9 +294,10 @@ type Tm = struct { Ftm_isdst int32 } /* time.h:97:3 */ -var Xdaylight int32 /* time.h:256:22: */ -var Xtimezone int32 /* time.h:257:23: */ -var Xtzname [2]uintptr /* time.h:258:23: */ +var Xdaylight int32 /* time.h:278:22: */ + +var Xtimezone int32 /* time.h:281:23: */ +var Xtzname [2]uintptr /* time.h:282:23: */ // * // This file has no copyright assigned and is placed in the Public Domain. @@ -324,7 +312,7 @@ type Timeval = struct { type Timezone = struct { Ftz_minuteswest int32 Ftz_dsttime int32 -} /* time.h:266:1 */ +} /* time.h:290:1 */ // Adding timespec definition. // * @@ -364,7 +352,7 @@ type X__timeb64 = struct { type Timespec = struct { Ftv_sec Time_t Ftv_nsec int32 -} /* timeb.h:91:1 */ +} /* timeb.h:90:1 */ type Itimerspec = struct { Fit_interval struct { @@ -375,7 +363,7 @@ type Itimerspec = struct { Ftv_sec Time_t Ftv_nsec int32 } -} /* timeb.h:96:1 */ +} /* timeb.h:95:1 */ // POSIX 2008 says clock_gettime and timespec are defined in time.h header, // but other systems - like Linux, Solaris, etc - tend to declare such diff --git a/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go b/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go index 045c6a831..f1a2922ac 100644 --- a/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/unistd/capi_darwin_amd64.go @@ -2,4 +2,10 @@ package unistd -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go index ec0a268a8..094f1592a 100644 --- a/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/unistd/capi_darwin_arm64.go @@ -2,4 +2,10 @@ package unistd -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set": {}, + "__darwin_check_fd_set_overflow": {}, + "__darwin_fd_clr": {}, + "__darwin_fd_isset": {}, + "__darwin_fd_set": {}, +} diff --git a/vendor/modernc.org/libc/unistd/capi_freebsd_386.go b/vendor/modernc.org/libc/unistd/capi_freebsd_386.go new file mode 100644 index 000000000..1202b7aaf --- /dev/null +++ b/vendor/modernc.org/libc/unistd/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo unistd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_freebsd_386.go -pkgname unistd', DO NOT EDIT. + +package unistd + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go b/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go new file mode 100644 index 000000000..06c819b49 --- /dev/null +++ b/vendor/modernc.org/libc/unistd/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo unistd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_openbsd_amd64.go -pkgname unistd', DO NOT EDIT. + +package unistd + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/unistd/capi_windows_386.go b/vendor/modernc.org/libc/unistd/capi_windows_386.go index 51753d901..119657c4e 100644 --- a/vendor/modernc.org/libc/unistd/capi_windows_386.go +++ b/vendor/modernc.org/libc/unistd/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo unistd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_windows_386.go -pkgname unistd', DO NOT EDIT. +// Code generated by 'ccgo unistd\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd\unistd_windows_386.go -pkgname unistd', DO NOT EDIT. package unistd diff --git a/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go b/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go index bd12870e2..cc2e8280a 100644 --- a/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go +++ b/vendor/modernc.org/libc/unistd/unistd_darwin_amd64.go @@ -399,6 +399,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -583,6 +585,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go index 8c8a1fe14..3bcfac135 100644 --- a/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go +++ b/vendor/modernc.org/libc/unistd/unistd_darwin_arm64.go @@ -436,6 +436,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -620,6 +622,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go b/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go new file mode 100644 index 000000000..685c7f638 --- /dev/null +++ b/vendor/modernc.org/libc/unistd/unistd_freebsd_386.go @@ -0,0 +1,1770 @@ +// Code generated by 'ccgo unistd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_freebsd_386.go -pkgname unistd', DO NOT EDIT. + +package unistd + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FD_SETSIZE = 1024 + F_LOCK = 1 + F_OK = 0 + F_TEST = 3 + F_TLOCK = 2 + F_ULOCK = 0 + LITTLE_ENDIAN = 1234 + L_INCR = 1 + L_SET = 0 + L_XTND = 2 + PDP_ENDIAN = 3412 + RFCENVG = 2048 + RFCFDG = 4096 + RFCNAMEG = 1024 + RFENVG = 2 + RFFDG = 4 + RFFLAGS = 2416930932 + RFHIGHPID = 262144 + RFKERNELONLY = 268828672 + RFLINUXTHPN = 65536 + RFMEM = 32 + RFNAMEG = 1 + RFNOTEG = 8 + RFNOWAIT = 64 + RFPPWAIT = 2147483648 + RFPROC = 16 + RFPROCDESC = 268435456 + RFSIGSHARE = 16384 + RFSPAWN = 2147483648 + RFSTOPPED = 131072 + RFTHREAD = 8192 + RFTSIGMASK = 0xFF + RFTSIGSHIFT = 20 + RFTSIGZMB = 524288 + R_OK = 0x04 + SEEK_CUR = 1 + SEEK_DATA = 3 + SEEK_END = 2 + SEEK_HOLE = 4 + SEEK_SET = 0 + STDERR_FILENO = 2 + STDIN_FILENO = 0 + STDOUT_FILENO = 1 + SWAPOFF_FORCE = 0x00000001 + W_OK = 0x02 + X_OK = 0x01 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_CS_PATH = 1 + X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2 + X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3 + X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4 + X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5 + X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6 + X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7 + X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8 + X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9 + X_CS_POSIX_V6_LP64_OFF64_LIBS = 10 + X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11 + X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12 + X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13 + X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_GETOPT_DECLARED = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_ILP32 = 1 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MKDTEMP_DECLARED = 0 + X_MKNOD_DECLARED = 0 + X_MKSTEMP_DECLARED = 0 + X_MKTEMP_DECLARED = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_OPTRESET_DECLARED = 0 + X_PC_ACL_EXTENDED = 59 + X_PC_ACL_NFS4 = 64 + X_PC_ACL_PATH_MAX = 60 + X_PC_ALLOC_SIZE_MIN = 10 + X_PC_ASYNC_IO = 53 + X_PC_CAP_PRESENT = 61 + X_PC_CHOWN_RESTRICTED = 7 + X_PC_FILESIZEBITS = 12 + X_PC_INF_PRESENT = 62 + X_PC_LINK_MAX = 1 + X_PC_MAC_PRESENT = 63 + X_PC_MAX_CANON = 2 + X_PC_MAX_INPUT = 3 + X_PC_MIN_HOLE_SIZE = 21 + X_PC_NAME_MAX = 4 + X_PC_NO_TRUNC = 8 + X_PC_PATH_MAX = 5 + X_PC_PIPE_BUF = 6 + X_PC_PRIO_IO = 54 + X_PC_REC_INCR_XFER_SIZE = 14 + X_PC_REC_MAX_XFER_SIZE = 15 + X_PC_REC_MIN_XFER_SIZE = 16 + X_PC_REC_XFER_ALIGN = 17 + X_PC_SYMLINK_MAX = 18 + X_PC_SYNC_IO = 55 + X_PC_VDISABLE = 9 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_POSIX2_CHAR_TERM = 1 + X_POSIX2_C_BIND = 200112 + X_POSIX2_C_DEV = -1 + X_POSIX2_FORT_DEV = -1 + X_POSIX2_FORT_RUN = 200112 + X_POSIX2_LOCALEDEF = -1 + X_POSIX2_PBS = -1 + X_POSIX2_PBS_ACCOUNTING = -1 + X_POSIX2_PBS_CHECKPOINT = -1 + X_POSIX2_PBS_LOCATE = -1 + X_POSIX2_PBS_MESSAGE = -1 + X_POSIX2_PBS_TRACK = -1 + X_POSIX2_SW_DEV = -1 + X_POSIX2_UPE = 200112 + X_POSIX2_VERSION = 199212 + X_POSIX_ADVISORY_INFO = 200112 + X_POSIX_ASYNCHRONOUS_IO = 200112 + X_POSIX_BARRIERS = 200112 + X_POSIX_CHOWN_RESTRICTED = 1 + X_POSIX_CLOCK_SELECTION = -1 + X_POSIX_CPUTIME = 200112 + X_POSIX_FSYNC = 200112 + X_POSIX_IPV6 = 0 + X_POSIX_JOB_CONTROL = 1 + X_POSIX_MAPPED_FILES = 200112 + X_POSIX_MEMLOCK = -1 + X_POSIX_MEMLOCK_RANGE = 200112 + X_POSIX_MEMORY_PROTECTION = 200112 + X_POSIX_MESSAGE_PASSING = 200112 + X_POSIX_MONOTONIC_CLOCK = 200112 + X_POSIX_NO_TRUNC = 1 + X_POSIX_PRIORITIZED_IO = -1 + X_POSIX_PRIORITY_SCHEDULING = 0 + X_POSIX_RAW_SOCKETS = 200112 + X_POSIX_READER_WRITER_LOCKS = 200112 + X_POSIX_REALTIME_SIGNALS = 200112 + X_POSIX_REGEXP = 1 + X_POSIX_SEMAPHORES = 200112 + X_POSIX_SHARED_MEMORY_OBJECTS = 200112 + X_POSIX_SHELL = 1 + X_POSIX_SPAWN = 200112 + X_POSIX_SPIN_LOCKS = 200112 + X_POSIX_SPORADIC_SERVER = -1 + X_POSIX_SYNCHRONIZED_IO = -1 + X_POSIX_THREADS = 200112 + X_POSIX_THREAD_ATTR_STACKADDR = 200112 + X_POSIX_THREAD_ATTR_STACKSIZE = 200112 + X_POSIX_THREAD_CPUTIME = 200112 + X_POSIX_THREAD_PRIORITY_SCHEDULING = 200112 + X_POSIX_THREAD_PRIO_INHERIT = 200112 + X_POSIX_THREAD_PRIO_PROTECT = 200112 + X_POSIX_THREAD_PROCESS_SHARED = 200112 + X_POSIX_THREAD_SAFE_FUNCTIONS = -1 + X_POSIX_THREAD_SPORADIC_SERVER = -1 + X_POSIX_TIMEOUTS = 200112 + X_POSIX_TIMERS = 200112 + X_POSIX_TRACE = -1 + X_POSIX_TRACE_EVENT_FILTER = -1 + X_POSIX_TRACE_INHERIT = -1 + X_POSIX_TRACE_LOG = -1 + X_POSIX_TYPED_MEMORY_OBJECTS = -1 + X_POSIX_VDISABLE = 0xff + X_POSIX_VERSION = 200112 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SC_2_CHAR_TERM = 20 + X_SC_2_C_BIND = 18 + X_SC_2_C_DEV = 19 + X_SC_2_FORT_DEV = 21 + X_SC_2_FORT_RUN = 22 + X_SC_2_LOCALEDEF = 23 + X_SC_2_PBS = 59 + X_SC_2_PBS_ACCOUNTING = 60 + X_SC_2_PBS_CHECKPOINT = 61 + X_SC_2_PBS_LOCATE = 62 + X_SC_2_PBS_MESSAGE = 63 + X_SC_2_PBS_TRACK = 64 + X_SC_2_SW_DEV = 24 + X_SC_2_UPE = 25 + X_SC_2_VERSION = 17 + X_SC_ADVISORY_INFO = 65 + X_SC_AIO_LISTIO_MAX = 42 + X_SC_AIO_MAX = 43 + X_SC_AIO_PRIO_DELTA_MAX = 44 + X_SC_ARG_MAX = 1 + X_SC_ASYNCHRONOUS_IO = 28 + X_SC_ATEXIT_MAX = 107 + X_SC_BARRIERS = 66 + X_SC_BC_BASE_MAX = 9 + X_SC_BC_DIM_MAX = 10 + X_SC_BC_SCALE_MAX = 11 + X_SC_BC_STRING_MAX = 12 + X_SC_CHILD_MAX = 2 + X_SC_CLK_TCK = 3 + X_SC_CLOCK_SELECTION = 67 + X_SC_COLL_WEIGHTS_MAX = 13 + X_SC_CPUSET_SIZE = 122 + X_SC_CPUTIME = 68 + X_SC_DELAYTIMER_MAX = 45 + X_SC_EXPR_NEST_MAX = 14 + X_SC_FILE_LOCKING = 69 + X_SC_FSYNC = 38 + X_SC_GETGR_R_SIZE_MAX = 70 + X_SC_GETPW_R_SIZE_MAX = 71 + X_SC_HOST_NAME_MAX = 72 + X_SC_IOV_MAX = 56 + X_SC_IPV6 = 118 + X_SC_JOB_CONTROL = 6 + X_SC_LINE_MAX = 15 + X_SC_LOGIN_NAME_MAX = 73 + X_SC_MAPPED_FILES = 29 + X_SC_MEMLOCK = 30 + X_SC_MEMLOCK_RANGE = 31 + X_SC_MEMORY_PROTECTION = 32 + X_SC_MESSAGE_PASSING = 33 + X_SC_MONOTONIC_CLOCK = 74 + X_SC_MQ_OPEN_MAX = 46 + X_SC_MQ_PRIO_MAX = 75 + X_SC_NGROUPS_MAX = 4 + X_SC_NPROCESSORS_CONF = 57 + X_SC_NPROCESSORS_ONLN = 58 + X_SC_OPEN_MAX = 5 + X_SC_PAGESIZE = 47 + X_SC_PAGE_SIZE = 47 + X_SC_PHYS_PAGES = 121 + X_SC_PRIORITIZED_IO = 34 + X_SC_PRIORITY_SCHEDULING = 35 + X_SC_RAW_SOCKETS = 119 + X_SC_READER_WRITER_LOCKS = 76 + X_SC_REALTIME_SIGNALS = 36 + X_SC_REGEXP = 77 + X_SC_RE_DUP_MAX = 16 + X_SC_RTSIG_MAX = 48 + X_SC_SAVED_IDS = 7 + X_SC_SEMAPHORES = 37 + X_SC_SEM_NSEMS_MAX = 49 + X_SC_SEM_VALUE_MAX = 50 + X_SC_SHARED_MEMORY_OBJECTS = 39 + X_SC_SHELL = 78 + X_SC_SIGQUEUE_MAX = 51 + X_SC_SPAWN = 79 + X_SC_SPIN_LOCKS = 80 + X_SC_SPORADIC_SERVER = 81 + X_SC_STREAM_MAX = 26 + X_SC_SYMLOOP_MAX = 120 + X_SC_SYNCHRONIZED_IO = 40 + X_SC_THREADS = 96 + X_SC_THREAD_ATTR_STACKADDR = 82 + X_SC_THREAD_ATTR_STACKSIZE = 83 + X_SC_THREAD_CPUTIME = 84 + X_SC_THREAD_DESTRUCTOR_ITERATIONS = 85 + X_SC_THREAD_KEYS_MAX = 86 + X_SC_THREAD_PRIORITY_SCHEDULING = 89 + X_SC_THREAD_PRIO_INHERIT = 87 + X_SC_THREAD_PRIO_PROTECT = 88 + X_SC_THREAD_PROCESS_SHARED = 90 + X_SC_THREAD_SAFE_FUNCTIONS = 91 + X_SC_THREAD_SPORADIC_SERVER = 92 + X_SC_THREAD_STACK_MIN = 93 + X_SC_THREAD_THREADS_MAX = 94 + X_SC_TIMEOUTS = 95 + X_SC_TIMERS = 41 + X_SC_TIMER_MAX = 52 + X_SC_TRACE = 97 + X_SC_TRACE_EVENT_FILTER = 98 + X_SC_TRACE_INHERIT = 99 + X_SC_TRACE_LOG = 100 + X_SC_TTY_NAME_MAX = 101 + X_SC_TYPED_MEMORY_OBJECTS = 102 + X_SC_TZNAME_MAX = 27 + X_SC_V6_ILP32_OFF32 = 103 + X_SC_V6_ILP32_OFFBIG = 104 + X_SC_V6_LP64_OFF64 = 105 + X_SC_V6_LPBIG_OFFBIG = 106 + X_SC_VERSION = 8 + X_SC_XOPEN_CRYPT = 108 + X_SC_XOPEN_ENH_I18N = 109 + X_SC_XOPEN_LEGACY = 110 + X_SC_XOPEN_REALTIME = 111 + X_SC_XOPEN_REALTIME_THREADS = 112 + X_SC_XOPEN_SHM = 113 + X_SC_XOPEN_STREAMS = 114 + X_SC_XOPEN_UNIX = 115 + X_SC_XOPEN_VERSION = 116 + X_SC_XOPEN_XCU_VERSION = 117 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SWAB_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UNISTD_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_UNISTD_H_ = 0 + X_USECONDS_T_DECLARED = 0 + X_V6_ILP32_OFF32 = -1 + X_V6_ILP32_OFFBIG = 0 + X_V6_LP64_OFF64 = 0 + X_V6_LPBIG_OFFBIG = -1 + X_XOPEN_CRYPT = -1 + X_XOPEN_ENH_I18N = -1 + X_XOPEN_LEGACY = -1 + X_XOPEN_REALTIME = -1 + X_XOPEN_REALTIME_THREADS = -1 + X_XOPEN_SHM = 1 + X_XOPEN_STREAMS = -1 + X_XOPEN_UNIX = -1 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)unistd.h 8.12 (Berkeley) 4/27/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Machine type dependent parameters. +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint32 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Blksize_t = X__blksize_t /* types.h:80:21 */ + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev + +type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type Gid_t = X__gid_t /* types.h:125:18 */ // group id + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Ino_t = X__ino_t /* types.h:145:18 */ // inode number + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Mode_t = X__mode_t /* types.h:160:18 */ // permissions + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count + +type Off_t = X__off_t /* types.h:175:18 */ // file offset + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed) + +type Time_t = X__time_t /* types.h:216:18 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Uid_t = X__uid_t /* types.h:233:18 */ // user id + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint32 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint32 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ // select(2) + +type Crypt_data = struct { + Finitialized int32 + F__buf [256]int8 +} /* unistd.h:489:1 */ + +// getopt(3) external variable + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go b/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go new file mode 100644 index 000000000..7a67d9dbe --- /dev/null +++ b/vendor/modernc.org/libc/unistd/unistd_openbsd_amd64.go @@ -0,0 +1,1094 @@ +// Code generated by 'ccgo unistd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_openbsd_amd64.go -pkgname unistd', DO NOT EDIT. + +package unistd + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + F_LOCK = 1 + F_OK = 0 + F_TEST = 3 + F_TLOCK = 2 + F_ULOCK = 0 + KBIND_BLOCK_MAX = 2 + KBIND_DATA_MAX = 24 + LITTLE_ENDIAN = 1234 + L_INCR = 1 + L_SET = 0 + L_XTND = 2 + PDP_ENDIAN = 3412 + R_OK = 0x04 + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + STDERR_FILENO = 2 + STDIN_FILENO = 0 + STDOUT_FILENO = 1 + W_OK = 0x02 + X_OK = 0x01 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_CS_PATH = 1 + X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2 + X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3 + X_CS_POSIX_V6_ILP32_OFF32_LIBS = 4 + X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5 + X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6 + X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7 + X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 8 + X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9 + X_CS_POSIX_V6_LP64_OFF64_LIBS = 10 + X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11 + X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12 + X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13 + X_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14 + X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 16 + X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 17 + X_CS_POSIX_V7_ILP32_OFF32_LIBS = 18 + X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 19 + X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 20 + X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 21 + X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 22 + X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 23 + X_CS_POSIX_V7_LP64_OFF64_LIBS = 24 + X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 25 + X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 26 + X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 27 + X_CS_POSIX_V7_THREADS_CFLAGS = 28 + X_CS_POSIX_V7_THREADS_LDFLAGS = 29 + X_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 30 + X_CS_V6_ENV = 15 + X_CS_V7_ENV = 31 + X_FILE_OFFSET_BITS = 64 + X_GETOPT_DEFINED_ = 0 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_INTPTR_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PC_2_SYMLINKS = 10 + X_PC_ALLOC_SIZE_MIN = 11 + X_PC_ASYNC_IO = 12 + X_PC_CHOWN_RESTRICTED = 7 + X_PC_FILESIZEBITS = 13 + X_PC_LINK_MAX = 1 + X_PC_MAX_CANON = 2 + X_PC_MAX_INPUT = 3 + X_PC_NAME_MAX = 4 + X_PC_NO_TRUNC = 8 + X_PC_PATH_MAX = 5 + X_PC_PIPE_BUF = 6 + X_PC_PRIO_IO = 14 + X_PC_REC_INCR_XFER_SIZE = 15 + X_PC_REC_MAX_XFER_SIZE = 16 + X_PC_REC_MIN_XFER_SIZE = 17 + X_PC_REC_XFER_ALIGN = 18 + X_PC_SYMLINK_MAX = 19 + X_PC_SYNC_IO = 20 + X_PC_TIMESTAMP_RESOLUTION = 21 + X_PC_VDISABLE = 9 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_POSIX2_CHAR_TERM = 1 + X_POSIX2_C_BIND = 200112 + X_POSIX2_C_DEV = -1 + X_POSIX2_FORT_DEV = -1 + X_POSIX2_FORT_RUN = -1 + X_POSIX2_LOCALEDEF = -1 + X_POSIX2_PBS = -1 + X_POSIX2_PBS_ACCOUNTING = -1 + X_POSIX2_PBS_CHECKPOINT = -1 + X_POSIX2_PBS_LOCATE = -1 + X_POSIX2_PBS_MESSAGE = -1 + X_POSIX2_PBS_TRACK = -1 + X_POSIX2_SW_DEV = 200112 + X_POSIX2_UPE = 200112 + X_POSIX2_VERSION = 200809 + X_POSIX_ADVISORY_INFO = -1 + X_POSIX_ASYNCHRONOUS_IO = -1 + X_POSIX_ASYNC_IO = -1 + X_POSIX_BARRIERS = 200112 + X_POSIX_CHOWN_RESTRICTED = 1 + X_POSIX_CLOCK_SELECTION = -1 + X_POSIX_CPUTIME = 200809 + X_POSIX_FSYNC = 200112 + X_POSIX_IPV6 = 0 + X_POSIX_JOB_CONTROL = 1 + X_POSIX_MAPPED_FILES = 200112 + X_POSIX_MEMLOCK = 200112 + X_POSIX_MEMLOCK_RANGE = 200112 + X_POSIX_MEMORY_PROTECTION = 200112 + X_POSIX_MESSAGE_PASSING = -1 + X_POSIX_MONOTONIC_CLOCK = 200112 + X_POSIX_NO_TRUNC = 1 + X_POSIX_PRIORITIZED_IO = -1 + X_POSIX_PRIORITY_SCHEDULING = -1 + X_POSIX_PRIO_IO = -1 + X_POSIX_RAW_SOCKETS = 200112 + X_POSIX_READER_WRITER_LOCKS = 200112 + X_POSIX_REALTIME_SIGNALS = -1 + X_POSIX_REGEXP = 1 + X_POSIX_SAVED_IDS = 1 + X_POSIX_SEMAPHORES = 200112 + X_POSIX_SHARED_MEMORY_OBJECTS = 200809 + X_POSIX_SHELL = 1 + X_POSIX_SPAWN = 200112 + X_POSIX_SPIN_LOCKS = 200112 + X_POSIX_SPORADIC_SERVER = -1 + X_POSIX_SYNCHRONIZED_IO = -1 + X_POSIX_SYNC_IO = -1 + X_POSIX_THREADS = 200112 + X_POSIX_THREAD_ATTR_STACKADDR = 200112 + X_POSIX_THREAD_ATTR_STACKSIZE = 200112 + X_POSIX_THREAD_CPUTIME = 200809 + X_POSIX_THREAD_PRIORITY_SCHEDULING = -1 + X_POSIX_THREAD_PRIO_INHERIT = -1 + X_POSIX_THREAD_PRIO_PROTECT = -1 + X_POSIX_THREAD_PROCESS_SHARED = -1 + X_POSIX_THREAD_ROBUST_PRIO_INHERIT = -1 + X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1 + X_POSIX_THREAD_SAFE_FUNCTIONS = 200112 + X_POSIX_THREAD_SPORADIC_SERVER = -1 + X_POSIX_TIMEOUTS = 200112 + X_POSIX_TIMERS = -1 + X_POSIX_TRACE = -1 + X_POSIX_TRACE_EVENT_FILTER = -1 + X_POSIX_TRACE_INHERIT = -1 + X_POSIX_TRACE_LOG = -1 + X_POSIX_TYPED_MEMORY_OBJECTS = -1 + X_POSIX_V6_ILP32_OFF32 = -1 + X_POSIX_V6_ILP32_OFFBIG = 0 + X_POSIX_V6_LP64_OFF64 = 0 + X_POSIX_V6_LPBIG_OFFBIG = 0 + X_POSIX_V7_ILP32_OFF32 = -1 + X_POSIX_V7_ILP32_OFFBIG = 0 + X_POSIX_V7_LP64_OFF64 = 0 + X_POSIX_V7_LPBIG_OFFBIG = 0 + X_POSIX_VDISABLE = 255 + X_POSIX_VERSION = 200809 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SC_2_CHAR_TERM = 20 + X_SC_2_C_BIND = 18 + X_SC_2_C_DEV = 19 + X_SC_2_FORT_DEV = 21 + X_SC_2_FORT_RUN = 22 + X_SC_2_LOCALEDEF = 23 + X_SC_2_PBS = 35 + X_SC_2_PBS_ACCOUNTING = 36 + X_SC_2_PBS_CHECKPOINT = 37 + X_SC_2_PBS_LOCATE = 38 + X_SC_2_PBS_MESSAGE = 39 + X_SC_2_PBS_TRACK = 40 + X_SC_2_SW_DEV = 24 + X_SC_2_UPE = 25 + X_SC_2_VERSION = 17 + X_SC_ADVISORY_INFO = 41 + X_SC_AIO_LISTIO_MAX = 42 + X_SC_AIO_MAX = 43 + X_SC_AIO_PRIO_DELTA_MAX = 44 + X_SC_ARG_MAX = 1 + X_SC_ASYNCHRONOUS_IO = 45 + X_SC_ATEXIT_MAX = 46 + X_SC_AVPHYS_PAGES = 501 + X_SC_BARRIERS = 47 + X_SC_BC_BASE_MAX = 9 + X_SC_BC_DIM_MAX = 10 + X_SC_BC_SCALE_MAX = 11 + X_SC_BC_STRING_MAX = 12 + X_SC_CHILD_MAX = 2 + X_SC_CLK_TCK = 3 + X_SC_CLOCK_SELECTION = 48 + X_SC_COLL_WEIGHTS_MAX = 13 + X_SC_CPUTIME = 49 + X_SC_DELAYTIMER_MAX = 50 + X_SC_EXPR_NEST_MAX = 14 + X_SC_FSYNC = 29 + X_SC_GETGR_R_SIZE_MAX = 100 + X_SC_GETPW_R_SIZE_MAX = 101 + X_SC_HOST_NAME_MAX = 33 + X_SC_IOV_MAX = 51 + X_SC_IPV6 = 52 + X_SC_JOB_CONTROL = 6 + X_SC_LINE_MAX = 15 + X_SC_LOGIN_NAME_MAX = 102 + X_SC_MAPPED_FILES = 53 + X_SC_MEMLOCK = 54 + X_SC_MEMLOCK_RANGE = 55 + X_SC_MEMORY_PROTECTION = 56 + X_SC_MESSAGE_PASSING = 57 + X_SC_MONOTONIC_CLOCK = 34 + X_SC_MQ_OPEN_MAX = 58 + X_SC_MQ_PRIO_MAX = 59 + X_SC_NGROUPS_MAX = 4 + X_SC_NPROCESSORS_CONF = 502 + X_SC_NPROCESSORS_ONLN = 503 + X_SC_OPEN_MAX = 5 + X_SC_PAGESIZE = 28 + X_SC_PAGE_SIZE = 28 + X_SC_PHYS_PAGES = 500 + X_SC_PRIORITIZED_IO = 60 + X_SC_PRIORITY_SCHEDULING = 61 + X_SC_RAW_SOCKETS = 62 + X_SC_READER_WRITER_LOCKS = 63 + X_SC_REALTIME_SIGNALS = 64 + X_SC_REGEXP = 65 + X_SC_RE_DUP_MAX = 16 + X_SC_RTSIG_MAX = 66 + X_SC_SAVED_IDS = 7 + X_SC_SEMAPHORES = 67 + X_SC_SEM_NSEMS_MAX = 31 + X_SC_SEM_VALUE_MAX = 32 + X_SC_SHARED_MEMORY_OBJECTS = 68 + X_SC_SHELL = 69 + X_SC_SIGQUEUE_MAX = 70 + X_SC_SPAWN = 71 + X_SC_SPIN_LOCKS = 72 + X_SC_SPORADIC_SERVER = 73 + X_SC_SS_REPL_MAX = 74 + X_SC_STREAM_MAX = 26 + X_SC_SYMLOOP_MAX = 76 + X_SC_SYNCHRONIZED_IO = 75 + X_SC_THREADS = 91 + X_SC_THREAD_ATTR_STACKADDR = 77 + X_SC_THREAD_ATTR_STACKSIZE = 78 + X_SC_THREAD_CPUTIME = 79 + X_SC_THREAD_DESTRUCTOR_ITERATIONS = 80 + X_SC_THREAD_KEYS_MAX = 81 + X_SC_THREAD_PRIORITY_SCHEDULING = 84 + X_SC_THREAD_PRIO_INHERIT = 82 + X_SC_THREAD_PRIO_PROTECT = 83 + X_SC_THREAD_PROCESS_SHARED = 85 + X_SC_THREAD_ROBUST_PRIO_INHERIT = 86 + X_SC_THREAD_ROBUST_PRIO_PROTECT = 87 + X_SC_THREAD_SAFE_FUNCTIONS = 103 + X_SC_THREAD_SPORADIC_SERVER = 88 + X_SC_THREAD_STACK_MIN = 89 + X_SC_THREAD_THREADS_MAX = 90 + X_SC_TIMEOUTS = 92 + X_SC_TIMERS = 94 + X_SC_TIMER_MAX = 93 + X_SC_TRACE = 95 + X_SC_TRACE_EVENT_FILTER = 96 + X_SC_TRACE_EVENT_NAME_MAX = 97 + X_SC_TRACE_INHERIT = 98 + X_SC_TRACE_LOG = 99 + X_SC_TRACE_NAME_MAX = 104 + X_SC_TRACE_SYS_MAX = 105 + X_SC_TRACE_USER_EVENT_MAX = 106 + X_SC_TTY_NAME_MAX = 107 + X_SC_TYPED_MEMORY_OBJECTS = 108 + X_SC_TZNAME_MAX = 27 + X_SC_V6_ILP32_OFF32 = 109 + X_SC_V6_ILP32_OFFBIG = 110 + X_SC_V6_LP64_OFF64 = 111 + X_SC_V6_LPBIG_OFFBIG = 112 + X_SC_V7_ILP32_OFF32 = 113 + X_SC_V7_ILP32_OFFBIG = 114 + X_SC_V7_LP64_OFF64 = 115 + X_SC_V7_LPBIG_OFFBIG = 116 + X_SC_VERSION = 8 + X_SC_XOPEN_CRYPT = 117 + X_SC_XOPEN_ENH_I18N = 118 + X_SC_XOPEN_LEGACY = 119 + X_SC_XOPEN_REALTIME = 120 + X_SC_XOPEN_REALTIME_THREADS = 121 + X_SC_XOPEN_SHM = 30 + X_SC_XOPEN_STREAMS = 122 + X_SC_XOPEN_UNIX = 123 + X_SC_XOPEN_UUCP = 124 + X_SC_XOPEN_VERSION = 125 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UNISTD_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + X_UNISTD_H_ = 0 + X_XOPEN_CRYPT = 1 + X_XOPEN_ENH_I18N = -1 + X_XOPEN_LEGACY = -1 + X_XOPEN_REALTIME = -1 + X_XOPEN_REALTIME_THREADS = -1 + X_XOPEN_SHM = 1 + X_XOPEN_STREAMS = -1 + X_XOPEN_UNIX = -1 + X_XOPEN_UUCP = -1 + Unix = 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 */ + +// $OpenBSD: unistd.h,v 1.106 2018/07/13 09:25:22 beck Exp $ +// $NetBSD: unistd.h,v 1.26.4.1 1996/05/28 02:31:51 mrg Exp $ + +// - +// Copyright (c) 1991 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)unistd.h 5.13 (Berkeley) 6/17/91 + +// $OpenBSD: _null.h,v 1.2 2016/09/09 22:07:58 millert Exp $ + +// Written by Todd C. Miller, September 9, 2016 +// Public domain. + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// $OpenBSD: unistd.h,v 1.31 2015/07/20 00:56:10 guenther Exp $ +// $NetBSD: unistd.h,v 1.10 1994/06/29 06:46:06 cgd Exp $ + +// Copyright (c) 1989, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)unistd.h 8.2 (Berkeley) 1/7/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// Define the POSIX.1 version we target for compliance. + +// access function + +// whence values for lseek(2) + +// old BSD whence values for lseek(2); renamed by POSIX 1003.1 + +// the parameters argument passed to the __tfork() syscall +type X__tfork = struct { + Ftf_tcb uintptr + Ftf_tid uintptr + Ftf_stack uintptr +} /* unistd.h:66:1 */ + +// the parameters argument for the kbind() syscall +type X__kbind = struct { + Fkb_addr uintptr + Fkb_size Size_t +} /* unistd.h:73:1 */ + +// the pathconf(2) variable values are part of the ABI + +// configurable pathname variables + +// POSIX options and option groups we unconditionally do or don't +// implement. Please keep this list in alphabetical order. +// +// Anything which is defined as zero below **must** have an +// implementation for the corresponding sysconf() which is able to +// determine conclusively whether or not the feature is supported. +// Anything which is defined as other than -1 below **must** have +// complete headers, types, and function declarations as specified by +// the POSIX standard; however, if the relevant sysconf() function +// returns -1, the functions may be stubbed out. + +// Define the POSIX.2 version we target for compliance. + +// the sysconf(3) variable values are part of the ABI + +// configurable system variables + +// configurable system strings + +type Intptr_t = X__intptr_t /* unistd.h:320:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/unistd/unistd_windows_386.go b/vendor/modernc.org/libc/unistd/unistd_windows_386.go index 86a9fd0d5..83efe51b8 100644 --- a/vendor/modernc.org/libc/unistd/unistd_windows_386.go +++ b/vendor/modernc.org/libc/unistd/unistd_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo unistd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_windows_386.go -pkgname unistd', DO NOT EDIT. +// Code generated by 'ccgo unistd\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd\unistd_windows_386.go -pkgname unistd', DO NOT EDIT. package unistd @@ -34,7 +34,9 @@ const ( FTRUNCATE_DEFINED = 0 F_OK = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 OLD_P_OVERLAY = 2 @@ -86,7 +88,6 @@ const ( X_CRT_SWAB_DEFINED = 0 X_CRT_SYSTEM_DEFINED = 0 X_CRT_TERMINATE_DEFINED = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_CRT_WSYSTEM_DEFINED = 0 X_DEV_T_DEFINED = 0 X_DLL = 0 @@ -97,8 +98,6 @@ const ( X_FILE_OFFSET_BITS_SET_OFFT = 0 X_FINDDATA_T_DEFINED = 0 X_FSIZE_T_DEFINED = 0 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CORECRT_STARTUP = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 @@ -131,6 +130,7 @@ const ( X_POSIX_SEMAPHORES = 200112 X_POSIX_SPIN_LOCKS = 200112 X_POSIX_THREADS = 200112 + X_POSIX_THREAD_SAFE_FUNCTIONS = 200112 X_POSIX_TIMEOUTS = 200112 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 @@ -139,6 +139,7 @@ const ( X_P_NOWAITO = 3 X_P_OVERLAY = 2 X_P_WAIT = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIGSET_T_ = 0 @@ -210,11 +211,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -235,12 +231,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -281,28 +271,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -328,29 +316,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type X_fsize_t = uint32 /* io.h:29:25 */ type X_finddata32_t = struct { @@ -499,11 +487,6 @@ type Itimerspec = struct { type X_sigset_t = uint32 /* types.h:106:23 */ -type X_beginthread_proc_type = uintptr /* process.h:32:16 */ -type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */ - -type X_tls_callback_type = uintptr /* process.h:61:16 */ - // // Copyright (c) 2011-2016 mingw-w64 project // @@ -621,6 +604,23 @@ type X_tls_callback_type = uintptr /* process.h:61:16 */ // // are present. +// _SC_THREAD_SAFE_FUNCTIONS +// Affected functions are +// +// readdir_r(), +// getgrgid_r(), +// getgrnam_r(), +// getpwnam_r(), +// getpwuid_r(), +// flockfile(), +// ftrylockfile(), +// funlockfile(), +// getc_unlocked(), +// getchar_unlocked(), +// putc_unlocked(), +// putchar_unlocked(), +// strerror_r(), + // _SC_TIMEOUTS // The functions // diff --git a/vendor/modernc.org/libc/utime/capi_darwin_amd64.go b/vendor/modernc.org/libc/utime/capi_darwin_amd64.go index f4971287d..0c7745161 100644 --- a/vendor/modernc.org/libc/utime/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/utime/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package utime -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/utime/capi_darwin_arm64.go b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go index c46b0510d..372f430dd 100644 --- a/vendor/modernc.org/libc/utime/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/utime/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package utime -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/utime/capi_freebsd_386.go b/vendor/modernc.org/libc/utime/capi_freebsd_386.go new file mode 100644 index 000000000..73ceebf9c --- /dev/null +++ b/vendor/modernc.org/libc/utime/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo utime/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_freebsd_386.go -pkgname utime', DO NOT EDIT. + +package utime + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go b/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go new file mode 100644 index 000000000..b27f5a5f8 --- /dev/null +++ b/vendor/modernc.org/libc/utime/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo utime/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_openbsd_amd64.go -pkgname utime', DO NOT EDIT. + +package utime + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/utime/capi_windows_386.go b/vendor/modernc.org/libc/utime/capi_windows_386.go index 6b156a0c3..82bb0f63b 100644 --- a/vendor/modernc.org/libc/utime/capi_windows_386.go +++ b/vendor/modernc.org/libc/utime/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo utime/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_windows_386.go -pkgname utime', DO NOT EDIT. +// Code generated by 'ccgo utime\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime\utime_windows_386.go -pkgname utime', DO NOT EDIT. package utime diff --git a/vendor/modernc.org/libc/utime/utime_darwin_amd64.go b/vendor/modernc.org/libc/utime/utime_darwin_amd64.go index 6a6367807..7c48b350c 100644 --- a/vendor/modernc.org/libc/utime/utime_darwin_amd64.go +++ b/vendor/modernc.org/libc/utime/utime_darwin_amd64.go @@ -63,6 +63,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -238,6 +240,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/utime/utime_darwin_arm64.go b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go index 59dba2287..e88bf53c0 100644 --- a/vendor/modernc.org/libc/utime/utime_darwin_arm64.go +++ b/vendor/modernc.org/libc/utime/utime_darwin_arm64.go @@ -66,6 +66,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Copyright (c) 2000 Apple Computer, Inc. All rights reserved. // // @APPLE_LICENSE_HEADER_START@ @@ -241,6 +243,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/utime/utime_freebsd_386.go b/vendor/modernc.org/libc/utime/utime_freebsd_386.go new file mode 100644 index 000000000..70f170250 --- /dev/null +++ b/vendor/modernc.org/libc/utime/utime_freebsd_386.go @@ -0,0 +1,598 @@ +// Code generated by 'ccgo utime/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_freebsd_386.go -pkgname utime', DO NOT EDIT. + +package utime + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIME_T_DECLARED = 0 + X_UTIME_H_ = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)utime.h 8.1 (Berkeley) 6/2/93 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ // compatibility w/GNU headers + +// When the following macro is defined, the system uses 64-bit inode numbers. +// Programs can use this to avoid including <sys/param.h>, with its associated +// namespace pollution. + +type Time_t = X__time_t /* utime.h:42:18 */ + +type Utimbuf = struct { + Factime Time_t + Fmodtime Time_t +} /* utime.h:46:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go b/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go new file mode 100644 index 000000000..abc6fbee8 --- /dev/null +++ b/vendor/modernc.org/libc/utime/utime_openbsd_amd64.go @@ -0,0 +1,425 @@ +// Code generated by 'ccgo utime/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_openbsd_amd64.go -pkgname utime', DO NOT EDIT. + +package utime + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + X_FILE_OFFSET_BITS = 64 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_RET_PROTECTOR = 1 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UTIME_H_ = 0 + Unix = 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 */ + +// $OpenBSD: utime.h,v 1.7 2013/04/02 05:16:14 guenther Exp $ +// $NetBSD: utime.h,v 1.3 1994/10/26 00:56:39 cgd Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)utime.h 5.4 (Berkeley) 4/3/91 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +type Time_t = X__time_t /* utime.h:43:18 */ + +type Utimbuf = struct { + Factime Time_t + Fmodtime Time_t +} /* utime.h:46:1 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/utime/utime_windows_386.go b/vendor/modernc.org/libc/utime/utime_windows_386.go index 4fb4cfc03..7716e26b0 100644 --- a/vendor/modernc.org/libc/utime/utime_windows_386.go +++ b/vendor/modernc.org/libc/utime/utime_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo utime/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_windows_386.go -pkgname utime', DO NOT EDIT. +// Code generated by 'ccgo utime\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime\utime_windows_386.go -pkgname utime', DO NOT EDIT. package utime @@ -32,7 +32,9 @@ const ( DUMMYUNIONNAME8 = 0 DUMMYUNIONNAME9 = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 UNALIGNED = 0 @@ -54,12 +56,9 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -74,6 +73,7 @@ const ( X_PGLOBAL = 0 X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIZE_T_DEFINED = 0 @@ -132,11 +132,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -157,12 +152,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -203,28 +192,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -250,29 +237,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type X_utimbuf = struct { Factime Time_t diff --git a/vendor/modernc.org/libc/uuid/capi_freebsd_386.go b/vendor/modernc.org/libc/uuid/capi_freebsd_386.go new file mode 100644 index 000000000..96303a7ba --- /dev/null +++ b/vendor/modernc.org/libc/uuid/capi_freebsd_386.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_freebsd_386.go -pkgname uuid', DO NOT EDIT. + +package uuid + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go new file mode 100644 index 000000000..6b43287b1 --- /dev/null +++ b/vendor/modernc.org/libc/uuid/capi_freebsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_freebsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go new file mode 100644 index 000000000..fdb93bc2c --- /dev/null +++ b/vendor/modernc.org/libc/uuid/capi_netbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_netbsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go b/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go new file mode 100644 index 000000000..9a605840f --- /dev/null +++ b/vendor/modernc.org/libc/uuid/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_openbsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go index caed84eea..d4db51146 100644 --- a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_amd64.go @@ -2,4 +2,6 @@ package uuid -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go index 3c9d01350..e8c583fdf 100644 --- a/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/uuid/uuid/capi_darwin_arm64.go @@ -2,4 +2,6 @@ package uuid -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, +} diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go index f89a2ba77..ac5acdd96 100644 --- a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go +++ b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_amd64.go @@ -51,6 +51,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Public include file for the UUID library // // Copyright (C) 1996, 1997, 1998 Theodore Ts'o. @@ -183,6 +185,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go index 595e17f29..9cf36a533 100644 --- a/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go +++ b/vendor/modernc.org/libc/uuid/uuid/uuid_darwin_arm64.go @@ -53,6 +53,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // Public include file for the UUID library // // Copyright (C) 1996, 1997, 1998 Theodore Ts'o. @@ -185,6 +187,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go b/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go new file mode 100644 index 000000000..1a8bcca44 --- /dev/null +++ b/vendor/modernc.org/libc/uuid/uuid_freebsd_386.go @@ -0,0 +1,1530 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_freebsd_386.go -pkgname uuid', DO NOT EDIT. + +package uuid + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FD_SETSIZE = 1024 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_ILP32 = 1 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UUID_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_USECONDS_T_DECLARED = 0 + X_UUID_H_ = 0 + X_UUID_NODE_LEN = 6 + I386 = 1 + Unix = 1 + Uuid_s_bad_version = 1 + Uuid_s_invalid_string_uuid = 2 + Uuid_s_no_memory = 3 + Uuid_s_ok = 0 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002,2005 Marcel Moolenaar +// Copyright (c) 2002 Hiten Mahesh Pandya +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// Machine type dependent parameters. +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ +type Pthread_once = struct { + Fstate int32 + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint32 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Blksize_t = X__blksize_t /* types.h:80:21 */ + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev + +type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type Gid_t = X__gid_t /* types.h:125:18 */ // group id + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Ino_t = X__ino_t /* types.h:145:18 */ // inode number + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Mode_t = X__mode_t /* types.h:160:18 */ // permissions + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count + +type Off_t = X__off_t /* types.h:175:18 */ // file offset + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed) + +type Time_t = X__time_t /* types.h:216:18 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Uid_t = X__uid_t /* types.h:233:18 */ // user id + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint32 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int32 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int32 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int32 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint32 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [32]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// Length of a node address (an IEEE 802 address). + +// See also: +// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt +// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm +// +// A DCE 1.1 compatible source representation of UUIDs. +type Uuid = struct { + Ftime_low Uint32_t + Ftime_mid Uint16_t + Ftime_hi_and_version Uint16_t + Fclock_seq_hi_and_reserved Uint8_t + Fclock_seq_low Uint8_t + Fnode [6]Uint8_t +} /* uuid.h:46:1 */ + +// XXX namespace pollution? +type Uuid_t = Uuid /* uuid.h:93:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go new file mode 100644 index 000000000..8bc76db12 --- /dev/null +++ b/vendor/modernc.org/libc/uuid/uuid_freebsd_amd64.go @@ -0,0 +1,1569 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_freebsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FD_SETSIZE = 1024 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + X_ACCMODE_T_DECLARED = 0 + X_BIG_ENDIAN = 4321 + X_BLKCNT_T_DECLARED = 0 + X_BLKSIZE_T_DECLARED = 0 + X_BYTE_ORDER = 1234 + X_CAP_IOCTL_T_DECLARED = 0 + X_CAP_RIGHTS_T_DECLARED = 0 + X_CLOCKID_T_DECLARED = 0 + X_CLOCK_T_DECLARED = 0 + X_DEV_T_DECLARED = 0 + X_FFLAGS_T_DECLARED = 0 + X_FILE_OFFSET_BITS = 64 + X_FSBLKCNT_T_DECLARED = 0 + X_FTRUNCATE_DECLARED = 0 + X_GID_T_DECLARED = 0 + X_ID_T_DECLARED = 0 + X_INO_T_DECLARED = 0 + X_INT16_T_DECLARED = 0 + X_INT32_T_DECLARED = 0 + X_INT64_T_DECLARED = 0 + X_INT8_T_DECLARED = 0 + X_INTMAX_T_DECLARED = 0 + X_INTPTR_T_DECLARED = 0 + X_IN_ADDR_T_DECLARED = 0 + X_IN_PORT_T_DECLARED = 0 + X_KEY_T_DECLARED = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_LSEEK_DECLARED = 0 + X_LWPID_T_DECLARED = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MMAP_DECLARED = 0 + X_MODE_T_DECLARED = 0 + X_MQD_T_DECLARED = 0 + X_NLINK_T_DECLARED = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_OFF64_T_DECLARED = 0 + X_OFF_T_DECLARED = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DECLARED = 0 + X_PTHREAD_T_DECLARED = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RLIM_T_DECLARED = 0 + X_SELECT_DECLARED = 0 + X_SIGSET_T_DECLARED = 0 + X_SIG_MAXSIG = 128 + X_SIG_WORDS = 4 + X_SIZE_T_DECLARED = 0 + X_SSIZE_T_DECLARED = 0 + X_SUSECONDS_T_DECLARED = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_SELECT_H_ = 0 + X_SYS_TIMESPEC_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UUID_H_ = 0 + X_SYS__PTHREADTYPES_H_ = 0 + X_SYS__SIGSET_H_ = 0 + X_SYS__STDINT_H_ = 0 + X_SYS__TIMESPEC_H_ = 0 + X_SYS__TIMEVAL_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DECLARED = 0 + X_TIME_T_DECLARED = 0 + X_TRUNCATE_DECLARED = 0 + X_UID_T_DECLARED = 0 + X_UINT16_T_DECLARED = 0 + X_UINT32_T_DECLARED = 0 + X_UINT64_T_DECLARED = 0 + X_UINT8_T_DECLARED = 0 + X_UINTMAX_T_DECLARED = 0 + X_UINTPTR_T_DECLARED = 0 + X_USECONDS_T_DECLARED = 0 + X_UUID_H_ = 0 + X_UUID_NODE_LEN = 6 + Unix = 1 + Uuid_s_bad_version = 1 + Uuid_s_invalid_string_uuid = 2 + Uuid_s_no_memory = 3 + Uuid_s_ok = 0 +) + +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 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002,2005 Marcel Moolenaar +// Copyright (c) 2002 Hiten Mahesh Pandya +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.6 (Berkeley) 2/19/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, i.e. by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Machine type dependent parameters. +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1987, 1991 Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 7.8 (Berkeley) 4/3/91 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Quads and longs are the same on the amd64. Ensure they stay in sync. + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ +type X__int64_t = int64 /* _types.h:62:16 */ +type X__uint64_t = uint64 /* _types.h:63:24 */ + +// Standard type definitions. +type X__clock_t = X__int32_t /* _types.h:75:19 */ // clock()... +type X__critical_t = X__int64_t /* _types.h:76:19 */ +type X__double_t = float64 /* _types.h:78:17 */ +type X__float_t = float32 /* _types.h:79:16 */ +type X__intfptr_t = X__int64_t /* _types.h:81:19 */ +type X__intptr_t = X__int64_t /* _types.h:82:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int64_t /* _types.h:103:19 */ // ptr1 - ptr2 +type X__register_t = X__int64_t /* _types.h:104:19 */ +type X__segsz_t = X__int64_t /* _types.h:105:19 */ // segment size (in pages) +type X__size_t = X__uint64_t /* _types.h:106:20 */ // sizeof() +type X__ssize_t = X__int64_t /* _types.h:107:19 */ // byte count or error +type X__time_t = X__int64_t /* _types.h:108:19 */ // time()... +type X__uintfptr_t = X__uint64_t /* _types.h:109:20 */ +type X__uintptr_t = X__uint64_t /* _types.h:110:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint64_t /* _types.h:131:20 */ +type X__vm_offset_t = X__uint64_t /* _types.h:132:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:133:20 */ +type X__vm_size_t = X__uint64_t /* _types.h:134:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int64 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int64 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ +type Pthread_once = struct { + Fstate int32 + F__ccgo_pad1 [4]byte + Fmutex Pthread_mutex_t +} /* _pthreadtypes.h:52:1 */ + +// Primitive system data type definitions required by P1003.1c. +// +// Note that P1003.1c specifies that there are no defined comparison +// or assignment operators for the types pthread_attr_t, pthread_cond_t, +// pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t. +type Pthread_t = uintptr /* _pthreadtypes.h:67:26 */ +type Pthread_attr_t = uintptr /* _pthreadtypes.h:70:30 */ +type Pthread_mutex_t = uintptr /* _pthreadtypes.h:71:31 */ +type Pthread_mutexattr_t = uintptr /* _pthreadtypes.h:72:35 */ +type Pthread_cond_t = uintptr /* _pthreadtypes.h:73:30 */ +type Pthread_condattr_t = uintptr /* _pthreadtypes.h:74:34 */ +type Pthread_key_t = int32 /* _pthreadtypes.h:75:20 */ +type Pthread_once_t = Pthread_once /* _pthreadtypes.h:76:30 */ +type Pthread_rwlock_t = uintptr /* _pthreadtypes.h:77:32 */ +type Pthread_rwlockattr_t = uintptr /* _pthreadtypes.h:78:35 */ +type Pthread_barrier_t = uintptr /* _pthreadtypes.h:79:33 */ +type Pthread_barrierattr_t = uintptr /* _pthreadtypes.h:80:36 */ +type Pthread_spinlock_t = uintptr /* _pthreadtypes.h:81:33 */ + +// Additional type definitions: +// +// Note that P1003.1c reserves the prefixes pthread_ and PTHREAD_ for +// use in header symbols. +type Pthread_addr_t = uintptr /* _pthreadtypes.h:89:14 */ +type Pthread_startroutine_t = uintptr /* _pthreadtypes.h:90:14 */ + +type U_char = uint8 /* types.h:52:23 */ +type U_short = uint16 /* types.h:53:24 */ +type U_int = uint32 /* types.h:54:22 */ +type U_long = uint64 /* types.h:55:23 */ +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility + +// XXX POSIX sized integrals that should appear only in <sys/stdint.h>. +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 David E. O'Brien <obrien@FreeBSD.org> +// Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Int8_t = X__int8_t /* _stdint.h:36:19 */ + +type Int16_t = X__int16_t /* _stdint.h:41:20 */ + +type Int32_t = X__int32_t /* _stdint.h:46:20 */ + +type Int64_t = X__int64_t /* _stdint.h:51:20 */ + +type Uint8_t = X__uint8_t /* _stdint.h:56:20 */ + +type Uint16_t = X__uint16_t /* _stdint.h:61:21 */ + +type Uint32_t = X__uint32_t /* _stdint.h:66:21 */ + +type Uint64_t = X__uint64_t /* _stdint.h:71:21 */ + +type Intptr_t = X__intptr_t /* _stdint.h:76:21 */ +type Uintptr_t = X__uintptr_t /* _stdint.h:80:22 */ +type Intmax_t = X__intmax_t /* _stdint.h:84:21 */ +type Uintmax_t = X__uintmax_t /* _stdint.h:88:22 */ + +type U_int8_t = X__uint8_t /* types.h:67:19 */ // unsigned integrals (deprecated) +type U_int16_t = X__uint16_t /* types.h:68:20 */ +type U_int32_t = X__uint32_t /* types.h:69:20 */ +type U_int64_t = X__uint64_t /* types.h:70:20 */ + +type U_quad_t = X__uint64_t /* types.h:72:20 */ // quads (deprecated) +type Quad_t = X__int64_t /* types.h:73:19 */ +type Qaddr_t = uintptr /* types.h:74:16 */ + +type Caddr_t = uintptr /* types.h:76:14 */ // core address +type C_caddr_t = uintptr /* types.h:77:20 */ // core address, pointer to const + +type Blksize_t = X__blksize_t /* types.h:80:21 */ + +type Cpuwhich_t = X__cpuwhich_t /* types.h:84:22 */ +type Cpulevel_t = X__cpulevel_t /* types.h:85:22 */ +type Cpusetid_t = X__cpusetid_t /* types.h:86:22 */ + +type Blkcnt_t = X__blkcnt_t /* types.h:89:20 */ + +type Clock_t = X__clock_t /* types.h:94:19 */ + +type Clockid_t = X__clockid_t /* types.h:99:21 */ + +type Critical_t = X__critical_t /* types.h:103:22 */ // Critical section value +type Daddr_t = X__daddr_t /* types.h:104:19 */ // disk address + +type Dev_t = X__dev_t /* types.h:107:18 */ // device number or struct cdev + +type Fflags_t = X__fflags_t /* types.h:112:20 */ // file flags + +type Fixpt_t = X__fixpt_t /* types.h:116:19 */ // fixed point number + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:119:22 */ +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:120:22 */ + +type Gid_t = X__gid_t /* types.h:125:18 */ // group id + +type In_addr_t = X__uint32_t /* types.h:130:20 */ // base type for internet address + +type In_port_t = X__uint16_t /* types.h:135:20 */ + +type Id_t = X__id_t /* types.h:140:17 */ // can hold a uid_t or pid_t + +type Ino_t = X__ino_t /* types.h:145:18 */ // inode number + +type Key_t = X__key_t /* types.h:150:18 */ // IPC key (for Sys V IPC) + +type Lwpid_t = X__lwpid_t /* types.h:155:19 */ // Thread ID (a.k.a. LWP) + +type Mode_t = X__mode_t /* types.h:160:18 */ // permissions + +type Accmode_t = X__accmode_t /* types.h:165:21 */ // access permissions + +type Nlink_t = X__nlink_t /* types.h:170:19 */ // link count + +type Off_t = X__off_t /* types.h:175:18 */ // file offset + +type Off64_t = X__off64_t /* types.h:180:19 */ // file offset (alias) + +type Pid_t = X__pid_t /* types.h:185:18 */ // process id + +type Register_t = X__register_t /* types.h:189:22 */ + +type Rlim_t = X__rlim_t /* types.h:192:18 */ // resource limit + +type Sbintime_t = X__int64_t /* types.h:196:19 */ + +type Segsz_t = X__segsz_t /* types.h:198:19 */ + +type Ssize_t = X__ssize_t /* types.h:206:19 */ + +type Suseconds_t = X__suseconds_t /* types.h:211:23 */ // microseconds (signed) + +type Time_t = X__time_t /* types.h:216:18 */ + +type Timer_t = X__timer_t /* types.h:221:19 */ + +type Mqd_t = X__mqd_t /* types.h:226:17 */ + +type U_register_t = X__u_register_t /* types.h:230:24 */ + +type Uid_t = X__uid_t /* types.h:233:18 */ // user id + +type Useconds_t = X__useconds_t /* types.h:238:22 */ // microseconds (unsigned) + +type Cap_ioctl_t = uint64 /* types.h:244:23 */ + +// Types suitable for exporting physical addresses, virtual addresses +// (pointers), and memory object sizes from the kernel independent of native +// word size. These should be used in place of vm_paddr_t, (u)intptr_t, and +// size_t in structs which contain such types that are shared with userspace. +type Kpaddr_t = X__uint64_t /* types.h:260:20 */ +type Kvaddr_t = X__uint64_t /* types.h:261:20 */ +type Ksize_t = X__uint64_t /* types.h:262:20 */ +type Kssize_t = X__int64_t /* types.h:263:19 */ + +type Vm_offset_t = X__vm_offset_t /* types.h:265:23 */ +type Vm_ooffset_t = X__uint64_t /* types.h:266:20 */ +type Vm_paddr_t = X__vm_paddr_t /* types.h:267:22 */ +type Vm_pindex_t = X__uint64_t /* types.h:268:20 */ +type Vm_size_t = X__vm_size_t /* types.h:269:21 */ + +type Rman_res_t = X__rman_res_t /* types.h:271:25 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset = struct{ F__bits [4]X__uint32_t } /* _sigset.h:53:9 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1989, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)signal.h 8.4 (Berkeley) 5/4/95 +// $FreeBSD$ + +// sigset_t macros. + +type X__sigset_t = X__sigset /* _sigset.h:55:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// Structure returned by gettimeofday(2) system call, and used in other calls. +type Timeval = struct { + Ftv_sec Time_t + Ftv_usec Suseconds_t +} /* _timeval.h:49:1 */ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1982, 1986, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)time.h 8.5 (Berkeley) 5/4/95 +// from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Timespec = struct { + Ftv_sec Time_t + Ftv_nsec int64 +} /* _timespec.h:46:1 */ + +// Structure defined by POSIX.1b to be like a itimerval, but with +// timespecs. Used in the timer_*() system calls. +type Itimerspec = struct { + Fit_interval struct { + Ftv_sec Time_t + Ftv_nsec int64 + } + Fit_value struct { + Ftv_sec Time_t + Ftv_nsec int64 + } +} /* timespec.h:60:1 */ + +type X__fd_mask = uint64 /* select.h:44:23 */ +type Fd_mask = X__fd_mask /* select.h:46:19 */ + +type Sigset_t = X__sigset_t /* select.h:51:20 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set1 = struct{ F__fds_bits [16]X__fd_mask } /* select.h:73:9 */ + +// Select uses bit masks of file descriptors in longs. These macros +// manipulate such bit fields (the filesystem macros use chars). +// FD_SETSIZE may be defined by the user, but the default here should +// be enough for most uses. + +type Fd_set = Fd_set1 /* select.h:75:3 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Length of a node address (an IEEE 802 address). + +// See also: +// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt +// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm +// +// A DCE 1.1 compatible source representation of UUIDs. +type Uuid = struct { + Ftime_low Uint32_t + Ftime_mid Uint16_t + Ftime_hi_and_version Uint16_t + Fclock_seq_hi_and_reserved Uint8_t + Fclock_seq_low Uint8_t + Fnode [6]Uint8_t +} /* uuid.h:46:1 */ + +// XXX namespace pollution? +type Uuid_t = Uuid /* uuid.h:93:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go new file mode 100644 index 000000000..f81267b7d --- /dev/null +++ b/vendor/modernc.org/libc/uuid/uuid_netbsd_amd64.go @@ -0,0 +1,1454 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_netbsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + FD_SETSIZE = 256 + INT16_MAX = 32767 + INT16_MIN = -32768 + INT32_MAX = 2147483647 + INT32_MIN = -2147483648 + INT64_MAX = 9223372036854775807 + INT64_MIN = -9223372036854775808 + INT8_MAX = 127 + INT8_MIN = -128 + INTMAX_MAX = 9223372036854775807 + INTMAX_MIN = -9223372036854775808 + INTPTR_MAX = 9223372036854775807 + INTPTR_MIN = -9223372036854775808 + INT_FAST16_MAX = 2147483647 + INT_FAST16_MIN = -2147483648 + INT_FAST32_MAX = 2147483647 + INT_FAST32_MIN = -2147483648 + INT_FAST64_MAX = 9223372036854775807 + INT_FAST64_MIN = -9223372036854775808 + INT_FAST8_MAX = 2147483647 + INT_FAST8_MIN = -2147483648 + INT_LEAST16_MAX = 32767 + INT_LEAST16_MIN = -32768 + INT_LEAST32_MAX = 2147483647 + INT_LEAST32_MIN = -2147483648 + INT_LEAST64_MAX = 9223372036854775807 + INT_LEAST64_MIN = -9223372036854775808 + INT_LEAST8_MAX = 127 + INT_LEAST8_MIN = -128 + LITTLE_ENDIAN = 1234 + NBBY = 8 + NFDBITS = 32 + NODEVMAJOR = -1 + PDP_ENDIAN = 3412 + PTRDIFF_MAX = 9223372036854775807 + PTRDIFF_MIN = -9223372036854775808 + SIG_ATOMIC_MAX = 2147483647 + SIG_ATOMIC_MIN = -2147483648 + SIZE_MAX = 18446744073709551615 + UINT16_MAX = 65535 + UINT32_MAX = 4294967295 + UINT64_MAX = 18446744073709551615 + UINT8_MAX = 255 + UINTMAX_MAX = 18446744073709551615 + UINTPTR_MAX = 18446744073709551615 + UINT_FAST16_MAX = 4294967295 + UINT_FAST32_MAX = 4294967295 + UINT_FAST64_MAX = 18446744073709551615 + UINT_FAST8_MAX = 4294967295 + UINT_LEAST16_MAX = 65535 + UINT_LEAST32_MAX = 4294967295 + UINT_LEAST64_MAX = 18446744073709551615 + UINT_LEAST8_MAX = 255 + WCHAR_MAX = 0x7fffffff + WCHAR_MIN = -2147483648 + WINT_MAX = 0x7fffffff + WINT_MIN = -2147483648 + X_AMD64_BYTE_SWAP_H_ = 0 + X_AMD64_INT_CONST_H_ = 0 + X_AMD64_INT_LIMITS_H_ = 0 + X_AMD64_INT_MWGWTYPES_H_ = 0 + X_AMD64_INT_TYPES_H_ = 0 + X_AMD64_WCHAR_LIMITS_H_ = 0 + X_BIG_ENDIAN = 4321 + X_BSD_INT16_T_ = 0 + X_BSD_INT32_T_ = 0 + X_BSD_INT64_T_ = 0 + X_BSD_INT8_T_ = 0 + X_BSD_INTPTR_T_ = 0 + X_BSD_UINT16_T_ = 0 + X_BSD_UINT32_T_ = 0 + X_BSD_UINT64_T_ = 0 + X_BSD_UINT8_T_ = 0 + X_BSD_UINTPTR_T_ = 0 + X_BYTE_ORDER = 1234 + X_FILE_OFFSET_BITS = 64 + X_LIB_PTHREAD_TYPES_H = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_NETBSD_SOURCE = 1 + X_PDP_ENDIAN = 3412 + X_PT_BARRIERATTR_DEAD = 0xDEAD0808 + X_PT_BARRIERATTR_MAGIC = 0x88880808 + X_PT_BARRIER_DEAD = 0xDEAD0008 + X_PT_BARRIER_MAGIC = 0x88880008 + X_PT_CONDATTR_DEAD = 0xDEAD0006 + X_PT_CONDATTR_MAGIC = 0x66660006 + X_PT_COND_DEAD = 0xDEAD0005 + X_PT_COND_MAGIC = 0x55550005 + X_PT_MUTEXATTR_DEAD = 0xDEAD0004 + X_PT_MUTEXATTR_MAGIC = 0x44440004 + X_PT_MUTEX_DEAD = 0xDEAD0003 + X_PT_MUTEX_MAGIC = 0x33330003 + X_PT_RWLOCKATTR_DEAD = 0xDEAD0909 + X_PT_RWLOCKATTR_MAGIC = 0x99990909 + X_PT_RWLOCK_DEAD = 0xDEAD0009 + X_PT_RWLOCK_MAGIC = 0x99990009 + X_PT_SPINLOCK_DEAD = 0xDEAD0007 + X_PT_SPINLOCK_MAGIC = 0x77770007 + X_PT_SPINLOCK_PSHARED = 0x00000001 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_SIZE_T = 0 + X_SYS_ANSI_H_ = 0 + X_SYS_BSWAP_H_ = 0 + X_SYS_CDEFS_ELF_H_ = 0 + X_SYS_CDEFS_H_ = 0 + X_SYS_COMMON_ANSI_H_ = 0 + X_SYS_COMMON_INT_LIMITS_H_ = 0 + X_SYS_COMMON_INT_MWGWTYPES_H_ = 0 + X_SYS_COMMON_INT_TYPES_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_FD_SET_H_ = 0 + X_SYS_STDINT_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UUID_H_ = 0 + X_UUID_H_ = 0 + X_UUID_NODE_LEN = 6 + X_UUID_STR_LEN = 38 + X_X86_64_BSWAP_H_ = 0 + X_X86_64_CDEFS_H_ = 0 + X_X86_64_TYPES_H_ = 0 + Uuid_s_bad_version = 1 + Uuid_s_invalid_string_uuid = 2 + Uuid_s_no_memory = 3 + Uuid_s_ok = 0 +) + +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 */ + +// return true if value 'a' fits in type 't' + +// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998. +// Public domain. +// +// NOTE: Do not protect this header against multiple inclusion. Doing +// so can have subtle side-effects due to header file inclusion order +// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead, +// protect each CPP macro that we want to supply. + +// Feature-test macros are defined by several standards, and allow an +// application to specify what symbols they want the system headers to +// expose, and hence what standard they want them to conform to. +// There are two classes of feature-test macros. The first class +// specify complete standards, and if one of these is defined, header +// files will try to conform to the relevant standard. They are: +// +// ANSI macros: +// _ANSI_SOURCE ANSI C89 +// +// POSIX macros: +// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?) +// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990 +// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992 +// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001 +// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008 +// +// X/Open macros: +// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2 +// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions +// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5 +// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2 +// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option +// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option +// +// NetBSD macros: +// _NETBSD_SOURCE == 1 Make all NetBSD features available. +// +// If more than one of these "major" feature-test macros is defined, +// then the set of facilities provided (and namespace used) is the +// union of that specified by the relevant standards, and in case of +// conflict, the earlier standard in the above list has precedence (so +// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version +// of rename() that's used is the POSIX one). If none of the "major" +// feature-test macros is defined, _NETBSD_SOURCE is assumed. +// +// There are also "minor" feature-test macros, which enable extra +// functionality in addition to some base standard. They should be +// defined along with one of the "major" macros. The "minor" macros +// are: +// +// _REENTRANT +// _ISOC99_SOURCE +// _ISOC11_SOURCE +// _LARGEFILE_SOURCE Large File Support +// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html> + +// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 7.5 (Berkeley) 3/9/91 + +// $NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 2014 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Joerg Sonnenberger. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types + +type X__int8_t = int8 /* common_int_types.h:45:27 */ +type X__uint8_t = uint8 /* common_int_types.h:46:27 */ +type X__int16_t = int16 /* common_int_types.h:47:27 */ +type X__uint16_t = uint16 /* common_int_types.h:48:27 */ +type X__int32_t = int32 /* common_int_types.h:49:27 */ +type X__uint32_t = uint32 /* common_int_types.h:50:27 */ +type X__int64_t = int64 /* common_int_types.h:51:27 */ +type X__uint64_t = uint64 /* common_int_types.h:52:27 */ + +// 7.18.1.4 Integer types capable of holding object pointers + +type X__intptr_t = int64 /* common_int_types.h:58:27 */ +type X__uintptr_t = uint64 /* common_int_types.h:59:26 */ + +type X__register_t = int64 /* types.h:68:19 */ +type X__cpu_simple_lock_nv_t = uint8 /* types.h:69:24 */ + +// __cpu_simple_lock_t used to be a full word. + +// The amd64 does not have strict alignment requirements. + +// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $ + +// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $ + +// - +// Copyright (c) 2014 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Matt Thomas of 3am Software Foundry. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $ + +// * Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 7.5 (Berkeley) 3/9/91 + +// Types which are fundamental to the implementation and may appear in +// more than one standard header are defined here. Standard headers +// then use: +// #ifdef _BSD_SIZE_T_ +// typedef _BSD_SIZE_T_ size_t; +// #undef _BSD_SIZE_T_ +// #endif + +// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 7.5 (Berkeley) 3/9/91 + +// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $ + +// - +// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Jun-ichiro itojun Hagino and by Klaus Klein. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $ + +// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $ + +// - +// Copyright (c) 2014 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Matt Thomas of 3am Software Foundry. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +type X__caddr_t = uintptr /* ansi.h:37:14 */ // core address +type X__gid_t = X__uint32_t /* ansi.h:38:20 */ // group id +type X__in_addr_t = X__uint32_t /* ansi.h:39:20 */ // IP(v4) address +type X__in_port_t = X__uint16_t /* ansi.h:40:20 */ // "Internet" port number +type X__mode_t = X__uint32_t /* ansi.h:41:20 */ // file permissions +type X__off_t = X__int64_t /* ansi.h:42:19 */ // file offset +type X__pid_t = X__int32_t /* ansi.h:43:19 */ // process id +type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family +type X__socklen_t = uint32 /* ansi.h:45:22 */ // socket-related datum length +type X__uid_t = X__uint32_t /* ansi.h:46:20 */ // user id +type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs) +type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */ +type X__wctrans_t = uintptr /* ansi.h:51:32 */ +type X__wctype_t = uintptr /* ansi.h:54:31 */ + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__mbstateL X__int64_t + F__ccgo_pad1 [120]byte +} /* ansi.h:63:3 */ + +type X__va_list = X__builtin_va_list /* ansi.h:72:27 */ + +type Int8_t = X__int8_t /* types.h:54:18 */ + +type Uint8_t = X__uint8_t /* types.h:59:19 */ + +type Int16_t = X__int16_t /* types.h:64:19 */ + +type Uint16_t = X__uint16_t /* types.h:69:20 */ + +type Int32_t = X__int32_t /* types.h:74:19 */ + +type Uint32_t = X__uint32_t /* types.h:79:20 */ + +type Int64_t = X__int64_t /* types.h:84:19 */ + +type Uint64_t = X__uint64_t /* types.h:89:20 */ + +type U_int8_t = Uint8_t /* types.h:93:18 */ +type U_int16_t = Uint16_t /* types.h:94:18 */ +type U_int32_t = Uint32_t /* types.h:95:18 */ +type U_int64_t = Uint64_t /* types.h:96:18 */ + +// $NetBSD: endian.h,v 1.1 2003/04/26 18:39:40 fvdl Exp $ + +// $NetBSD: endian.h,v 1.30 2016/02/27 21:37:35 christos Exp $ + +// Copyright (c) 1987, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)endian.h 8.1 (Berkeley) 6/11/93 + +// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998. +// Public domain. +// +// NOTE: Do not protect this header against multiple inclusion. Doing +// so can have subtle side-effects due to header file inclusion order +// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead, +// protect each CPP macro that we want to supply. + +// Feature-test macros are defined by several standards, and allow an +// application to specify what symbols they want the system headers to +// expose, and hence what standard they want them to conform to. +// There are two classes of feature-test macros. The first class +// specify complete standards, and if one of these is defined, header +// files will try to conform to the relevant standard. They are: +// +// ANSI macros: +// _ANSI_SOURCE ANSI C89 +// +// POSIX macros: +// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?) +// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990 +// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992 +// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001 +// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008 +// +// X/Open macros: +// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2 +// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions +// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5 +// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2 +// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option +// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option +// +// NetBSD macros: +// _NETBSD_SOURCE == 1 Make all NetBSD features available. +// +// If more than one of these "major" feature-test macros is defined, +// then the set of facilities provided (and namespace used) is the +// union of that specified by the relevant standards, and in case of +// conflict, the earlier standard in the above list has precedence (so +// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version +// of rename() that's used is the POSIX one). If none of the "major" +// feature-test macros is defined, _NETBSD_SOURCE is assumed. +// +// There are also "minor" feature-test macros, which enable extra +// functionality in addition to some base standard. They should be +// defined along with one of the "major" macros. The "minor" macros +// are: +// +// _REENTRANT +// _ISOC99_SOURCE +// _ISOC11_SOURCE +// _LARGEFILE_SOURCE Large File Support +// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html> + +// Definitions for byte order, according to byte significance from low +// address to high. + +// C-family endian-ness definitions + +// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $ + +// - +// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Jun-ichiro itojun Hagino and by Klaus Klein. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $ + +// * Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// $NetBSD: types.h,v 1.102 2018/11/06 16:26:44 maya Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993, 1994 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +type In_addr_t = X__in_addr_t /* endian.h:58:21 */ + +type In_port_t = X__in_port_t /* endian.h:63:21 */ + +// $NetBSD: bswap.h,v 1.19 2015/03/12 15:28:16 christos Exp $ + +// Written by Manuel Bouyer. Public domain + +// $NetBSD: stdint.h,v 1.8 2018/11/06 16:26:44 maya Exp $ + +// - +// Copyright (c) 2001, 2004 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Klaus Klein. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $ + +// * Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 7.5 (Berkeley) 3/9/91 + +type Intptr_t = X__intptr_t /* stdint.h:79:20 */ + +type Uintptr_t = X__uintptr_t /* stdint.h:84:21 */ + +// $NetBSD: int_mwgwtypes.h,v 1.8 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 2001 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Klaus Klein. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// $NetBSD: common_int_mwgwtypes.h,v 1.1 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 2014 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Joerg Sonnenberger. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// 7.18.1 Integer types + +// 7.18.1.2 Minimum-width integer types + +type Int_least8_t = int8 /* common_int_mwgwtypes.h:45:32 */ +type Uint_least8_t = uint8 /* common_int_mwgwtypes.h:46:32 */ +type Int_least16_t = int16 /* common_int_mwgwtypes.h:47:32 */ +type Uint_least16_t = uint16 /* common_int_mwgwtypes.h:48:32 */ +type Int_least32_t = int32 /* common_int_mwgwtypes.h:49:32 */ +type Uint_least32_t = uint32 /* common_int_mwgwtypes.h:50:32 */ +type Int_least64_t = int64 /* common_int_mwgwtypes.h:51:32 */ +type Uint_least64_t = uint64 /* common_int_mwgwtypes.h:52:32 */ + +// 7.18.1.3 Fastest minimum-width integer types +type Int_fast8_t = int32 /* common_int_mwgwtypes.h:55:32 */ +type Uint_fast8_t = uint32 /* common_int_mwgwtypes.h:56:32 */ +type Int_fast16_t = int32 /* common_int_mwgwtypes.h:57:32 */ +type Uint_fast16_t = uint32 /* common_int_mwgwtypes.h:58:32 */ +type Int_fast32_t = int32 /* common_int_mwgwtypes.h:59:32 */ +type Uint_fast32_t = uint32 /* common_int_mwgwtypes.h:60:32 */ +type Int_fast64_t = int64 /* common_int_mwgwtypes.h:61:32 */ +type Uint_fast64_t = uint64 /* common_int_mwgwtypes.h:62:32 */ + +// 7.18.1.5 Greatest-width integer types + +type Intmax_t = int64 /* common_int_mwgwtypes.h:66:33 */ +type Uintmax_t = uint64 /* common_int_mwgwtypes.h:67:32 */ + +type U_char = uint8 /* types.h:101:23 */ +type U_short = uint16 /* types.h:102:24 */ +type U_int = uint32 /* types.h:103:22 */ +type U_long = uint64 /* types.h:104:23 */ + +type Unchar = uint8 /* types.h:106:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:107:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:108:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:109:23 */ // Sys V compatibility + +type U_quad_t = Uint64_t /* types.h:112:18 */ // quads +type Quad_t = Int64_t /* types.h:113:18 */ +type Qaddr_t = uintptr /* types.h:114:16 */ + +// The types longlong_t and u_longlong_t exist for use with the +// Sun-derived XDR routines involving these types, and their usage +// in other contexts is discouraged. Further note that these types +// may not be equivalent to "long long" and "unsigned long long", +// they are only guaranteed to be signed and unsigned 64-bit types +// respectively. Portable programs that need 64-bit types should use +// the C99 types int64_t and uint64_t instead. + +type Longlong_t = Int64_t /* types.h:126:18 */ // for XDR +type U_longlong_t = Uint64_t /* types.h:127:18 */ // for XDR + +type Blkcnt_t = Int64_t /* types.h:129:18 */ // fs block count +type Blksize_t = Int32_t /* types.h:130:18 */ // fs optimal block size + +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:133:22 */ // fs block count (statvfs) + +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:138:22 */ // fs file count + +// We don't and shouldn't use caddr_t in the kernel anymore +type Caddr_t = X__caddr_t /* types.h:145:19 */ // core address + +type Daddr_t = Int64_t /* types.h:154:18 */ // disk address + +type Dev_t = Uint64_t /* types.h:157:18 */ // device number +type Fixpt_t = Uint32_t /* types.h:158:18 */ // fixed point number + +type Gid_t = X__gid_t /* types.h:161:18 */ // group id + +type Id_t = Uint32_t /* types.h:165:18 */ // group id, process id or user id +type Ino_t = Uint64_t /* types.h:166:18 */ // inode number +type Key_t = int64 /* types.h:167:15 */ // IPC key (for Sys V IPC) + +type Mode_t = X__mode_t /* types.h:170:18 */ // permissions + +type Nlink_t = Uint32_t /* types.h:174:18 */ // link count + +type Off_t = X__off_t /* types.h:177:18 */ // file offset + +type Pid_t = X__pid_t /* types.h:182:18 */ // process id +type Lwpid_t = Int32_t /* types.h:185:18 */ // LWP id +type Rlim_t = Uint64_t /* types.h:186:18 */ // resource limit +type Segsz_t = Int32_t /* types.h:187:18 */ // segment size +type Swblk_t = Int32_t /* types.h:188:18 */ // swap offset + +type Uid_t = X__uid_t /* types.h:191:18 */ // user id + +type Mqd_t = int32 /* types.h:195:14 */ + +type Cpuid_t = uint64 /* types.h:197:23 */ + +type Psetid_t = int32 /* types.h:199:14 */ + +type X__cpu_simple_lock_t = X__cpu_simple_lock_nv_t /* types.h:201:41 */ + +// Major, minor numbers, dev_t's. +type X__devmajor_t = Int32_t /* types.h:255:17 */ +type X__devminor_t = Int32_t /* types.h:255:31 */ + +type Clock_t = uint32 /* types.h:268:24 */ + +type Ssize_t = int64 /* types.h:284:24 */ + +type Time_t = X__int64_t /* types.h:289:23 */ + +type Clockid_t = int32 /* types.h:294:26 */ + +type Timer_t = int32 /* types.h:299:24 */ + +type Suseconds_t = int32 /* types.h:304:27 */ + +type Useconds_t = uint32 /* types.h:309:26 */ + +// $NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $ + +// - +// Copyright (c) 1992, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $ + +// * Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998. +// Public domain. +// +// NOTE: Do not protect this header against multiple inclusion. Doing +// so can have subtle side-effects due to header file inclusion order +// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead, +// protect each CPP macro that we want to supply. + +// Feature-test macros are defined by several standards, and allow an +// application to specify what symbols they want the system headers to +// expose, and hence what standard they want them to conform to. +// There are two classes of feature-test macros. The first class +// specify complete standards, and if one of these is defined, header +// files will try to conform to the relevant standard. They are: +// +// ANSI macros: +// _ANSI_SOURCE ANSI C89 +// +// POSIX macros: +// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?) +// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990 +// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992 +// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001 +// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008 +// +// X/Open macros: +// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2 +// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions +// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5 +// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2 +// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option +// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option +// +// NetBSD macros: +// _NETBSD_SOURCE == 1 Make all NetBSD features available. +// +// If more than one of these "major" feature-test macros is defined, +// then the set of facilities provided (and namespace used) is the +// union of that specified by the relevant standards, and in case of +// conflict, the earlier standard in the above list has precedence (so +// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version +// of rename() that's used is the POSIX one). If none of the "major" +// feature-test macros is defined, _NETBSD_SOURCE is assumed. +// +// There are also "minor" feature-test macros, which enable extra +// functionality in addition to some base standard. They should be +// defined along with one of the "major" macros. The "minor" macros +// are: +// +// _REENTRANT +// _ISOC99_SOURCE +// _ISOC11_SOURCE +// _LARGEFILE_SOURCE Large File Support +// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html> + +// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $ + +// - +// Copyright (c) 1990 The Regents of the University of California. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// from: @(#)types.h 7.5 (Berkeley) 3/9/91 + +// Implementation dependent defines, hidden from user space. +// POSIX does not specify them. + +type X__fd_mask = X__uint32_t /* fd_set.h:46:20 */ + +// 32 = 2 ^ 5 + +// Select uses bit fields of file descriptors. These macros manipulate +// such bit fields. Note: FD_SETSIZE may be defined by the user. + +type Fd_set1 = struct{ Ffds_bits [8]X__fd_mask } /* fd_set.h:66:9 */ + +// 32 = 2 ^ 5 + +// Select uses bit fields of file descriptors. These macros manipulate +// such bit fields. Note: FD_SETSIZE may be defined by the user. + +type Fd_set = Fd_set1 /* fd_set.h:68:3 */ + +// Expose our internals if we are not required to hide them. + +type Kauth_cred_t = uintptr /* types.h:318:27 */ + +type Pri_t = int32 /* types.h:320:13 */ + +// $NetBSD: pthread_types.h,v 1.23 2017/09/09 23:21:45 kamil Exp $ + +// - +// Copyright (c) 2001, 2008 The NetBSD Foundation, Inc. +// All rights reserved. +// +// This code is derived from software contributed to The NetBSD Foundation +// by Nathan J. Williams. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// We use the "pthread_spin_t" name internally; "pthread_spinlock_t" is the +// POSIX spinlock object. +// +// C++ expects to be using PTHREAD_FOO_INITIALIZER as a member initializer. +// This does not work for volatile types. Since C++ does not touch the guts +// of those types, we do not include volatile in the C++ definitions. +type Pthread_spin_t = X__cpu_simple_lock_t /* pthread_types.h:43:29 */ +type X__pthread_spin_t = Pthread_spin_t /* pthread_types.h:48:24 */ + +// Copied from PTQ_HEAD in pthread_queue.h + +type Pthread_queue_struct_t = struct { + Fptqh_first uintptr + Fptqh_last uintptr +} /* pthread_types.h:61:1 */ + +type Pthread_queue_t = Pthread_queue_struct_t /* pthread_types.h:62:39 */ +type X__pthread_attr_st = struct { + Fpta_magic uint32 + Fpta_flags int32 + Fpta_private uintptr +} /* pthread_types.h:65:1 */ + +type X__pthread_mutex_st = struct { + Fptm_magic uint32 + Fptm_errorcheck X__pthread_spin_t + Fptm_pad1 [3]Uint8_t + F__8 struct{ Fptm_ceiling uint8 } + Fptm_pad2 [3]Uint8_t + F__ccgo_pad1 [4]byte + Fptm_owner Pthread_t + Fptm_waiters uintptr + Fptm_recursed uint32 + F__ccgo_pad2 [4]byte + Fptm_spare2 uintptr +} /* pthread_types.h:66:1 */ + +type X__pthread_mutexattr_st = struct { + Fptma_magic uint32 + F__ccgo_pad1 [4]byte + Fptma_private uintptr +} /* pthread_types.h:67:1 */ + +type X__pthread_cond_st = struct { + Fptc_magic uint32 + Fptc_lock X__pthread_spin_t + F__ccgo_pad1 [3]byte + Fptc_waiters Pthread_queue_t + Fptc_mutex uintptr + Fptc_private uintptr +} /* pthread_types.h:68:1 */ + +type X__pthread_condattr_st = struct { + Fptca_magic uint32 + F__ccgo_pad1 [4]byte + Fptca_private uintptr +} /* pthread_types.h:69:1 */ + +type X__pthread_rwlock_st = struct { + Fptr_magic uint32 + Fptr_interlock X__pthread_spin_t + F__ccgo_pad1 [3]byte + Fptr_rblocked Pthread_queue_t + Fptr_wblocked Pthread_queue_t + Fptr_nreaders uint32 + F__ccgo_pad2 [4]byte + Fptr_owner Pthread_t + Fptr_private uintptr +} /* pthread_types.h:71:1 */ + +type X__pthread_rwlockattr_st = struct { + Fptra_magic uint32 + F__ccgo_pad1 [4]byte + Fptra_private uintptr +} /* pthread_types.h:72:1 */ + +type X__pthread_barrier_st = struct { + Fptb_magic uint32 + Fptb_lock Pthread_spin_t + F__ccgo_pad1 [3]byte + Fptb_waiters Pthread_queue_t + Fptb_initcount uint32 + Fptb_curcount uint32 + Fptb_generation uint32 + F__ccgo_pad2 [4]byte + Fptb_private uintptr +} /* pthread_types.h:73:1 */ + +type X__pthread_barrierattr_st = struct { + Fptba_magic uint32 + F__ccgo_pad1 [4]byte + Fptba_private uintptr +} /* pthread_types.h:74:1 */ + +type Pthread_t = uintptr /* pthread_types.h:76:29 */ +type Pthread_attr_t = X__pthread_attr_st /* pthread_types.h:77:34 */ +type Pthread_mutex_t = X__pthread_mutex_st /* pthread_types.h:78:35 */ +type Pthread_mutexattr_t = X__pthread_mutexattr_st /* pthread_types.h:79:39 */ +type Pthread_cond_t = X__pthread_cond_st /* pthread_types.h:80:34 */ +type Pthread_condattr_t = X__pthread_condattr_st /* pthread_types.h:81:38 */ +type X__pthread_once_st = struct { + Fpto_mutex Pthread_mutex_t + Fpto_done int32 + F__ccgo_pad1 [4]byte +} /* pthread_types.h:82:9 */ + +type Pthread_once_t = X__pthread_once_st /* pthread_types.h:82:34 */ +type X__pthread_spinlock_st = struct { + Fpts_magic uint32 + Fpts_spin X__pthread_spin_t + F__ccgo_pad1 [3]byte + Fpts_flags int32 +} /* pthread_types.h:83:9 */ + +type Pthread_spinlock_t = X__pthread_spinlock_st /* pthread_types.h:83:38 */ +type Pthread_rwlock_t = X__pthread_rwlock_st /* pthread_types.h:84:36 */ +type Pthread_rwlockattr_t = X__pthread_rwlockattr_st /* pthread_types.h:85:40 */ +type Pthread_barrier_t = X__pthread_barrier_st /* pthread_types.h:86:37 */ +type Pthread_barrierattr_t = X__pthread_barrierattr_st /* pthread_types.h:87:41 */ +type Pthread_key_t = int32 /* pthread_types.h:88:13 */ + +// $NetBSD: uuid.h,v 1.6 2014/10/04 11:15:44 riastradh Exp $ + +// Copyright (c) 2002 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD: /repoman/r/ncvs/src/sys/sys/uuid.h,v 1.3 2003/05/31 16:47:07 phk Exp $ + +// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $ + +// * Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + +// Length of a node address (an IEEE 802 address). + +// Length of a printed UUID. + +// See also: +// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt +// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm +// +// A DCE 1.1 compatible source representation of UUIDs. +type Uuid = struct { + Ftime_low Uint32_t + Ftime_mid Uint16_t + Ftime_hi_and_version Uint16_t + Fclock_seq_hi_and_reserved Uint8_t + Fclock_seq_low Uint8_t + Fnode [6]Uint8_t +} /* uuid.h:49:1 */ + +type Uuid_t = Uuid /* uuid.h:73:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go b/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go new file mode 100644 index 000000000..67c3d6ad9 --- /dev/null +++ b/vendor/modernc.org/libc/uuid/uuid_openbsd_amd64.go @@ -0,0 +1,741 @@ +// Code generated by 'ccgo uuid/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid_openbsd_amd64.go -pkgname uuid', DO NOT EDIT. + +package uuid + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + BIG_ENDIAN = 4321 + BYTE_ORDER = 1234 + LITTLE_ENDIAN = 1234 + PDP_ENDIAN = 3412 + UUID_BUF_LEN = 38 + UUID_STR_LEN = 36 + X_BIG_ENDIAN = 4321 + X_BYTE_ORDER = 1234 + X_CLOCKID_T_DEFINED_ = 0 + X_CLOCK_T_DEFINED_ = 0 + X_FILE_OFFSET_BITS = 64 + X_INT16_T_DEFINED_ = 0 + X_INT32_T_DEFINED_ = 0 + X_INT64_T_DEFINED_ = 0 + X_INT8_T_DEFINED_ = 0 + X_LITTLE_ENDIAN = 1234 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE_ENDIAN_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_OFF_T_DEFINED_ = 0 + X_PDP_ENDIAN = 3412 + X_PID_T_DEFINED_ = 0 + X_QUAD_HIGHWORD = 1 + X_QUAD_LOWWORD = 0 + X_RET_PROTECTOR = 1 + X_SIZE_T_DEFINED_ = 0 + X_SSIZE_T_DEFINED_ = 0 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_SYS_ENDIAN_H_ = 0 + X_SYS_TYPES_H_ = 0 + X_SYS_UUID_H_ = 0 + X_SYS__ENDIAN_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_TIMER_T_DEFINED_ = 0 + X_TIME_T_DEFINED_ = 0 + X_UINT16_T_DEFINED_ = 0 + X_UINT32_T_DEFINED_ = 0 + X_UINT64_T_DEFINED_ = 0 + X_UINT8_T_DEFINED_ = 0 + X_UUID_BUF_LEN = 38 + X_UUID_H_ = 0 + X_UUID_NODE_LEN = 6 + Unix = 1 + Uuid_s_bad_version = 1 + Uuid_s_invalid_string_uuid = 2 + Uuid_s_no_memory = 3 + Uuid_s_ok = 0 +) + +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 */ + +// $OpenBSD: uuid.h,v 1.1 2014/08/31 09:36:36 miod Exp $ +// $NetBSD: uuid.h,v 1.2 2008/04/23 07:52:32 plunky Exp $ + +// Copyright (c) 2002 Marcel Moolenaar +// Copyright (c) 2002 Hiten Mahesh Pandya +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD: src/include/uuid.h,v 1.2 2002/11/05 10:55:16 jmallett Exp $ + +// $OpenBSD: types.h,v 1.48 2019/02/09 04:54:11 guenther Exp $ +// $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ + +// - +// Copyright (c) 1982, 1986, 1991, 1993 +// The Regents of the University of California. All rights reserved. +// (c) UNIX System Laboratories, Inc. +// All or some portions of this file are derived from material licensed +// to the University of California by American Telephone and Telegraph +// Co. or Unix System Laboratories, Inc. and are reproduced herein with +// the permission of UNIX System Laboratories, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.4 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Public definitions for little- and big-endian systems. +// This file should be included as <endian.h> in userspace and as +// <sys/endian.h> in the kernel. +// +// System headers that need endian information but that can't or don't +// want to export the public names here should include <sys/_endian.h> +// and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ + +// - +// Copyright (c) 1997 Niklas Hallqvist. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Internal endianness macros. This pulls in <machine/endian.h> to +// get the correct setting direction for the platform and sets internal +// ('__' prefix) macros appropriately. + +// $OpenBSD: _types.h,v 1.9 2014/08/22 23:05:15 krw Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O +type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers +type X__cpuid_t = uint64 /* _types.h:43:23 */ // CPU id +type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number +type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number +type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count +type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count +type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id +type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid +type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address +type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type +type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number +type X__key_t = int64 /* _types.h:53:15 */ // IPC key (for Sys V IPC) +type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions +type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count +type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id +type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit +type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type +type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size +type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls +type X__suseconds_t = int64 /* _types.h:62:15 */ // microseconds (signed) +type X__swblk_t = X__int32_t /* _types.h:63:19 */ // swap offset +type X__time_t = X__int64_t /* _types.h:64:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:65:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:66:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:67:20 */ // microseconds + +// mbstate_t is an opaque object to keep conversion state, during multibyte +// stream conversions. The content must not be referenced by user programs. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint64 + F__mbstate8 [128]int8 +} /* _types.h:76:3 */ + +// Tell sys/endian.h we have MD variants of the swap macros. + +// Note that these macros evaluate their arguments several times. + +// Public names + +// These are specified to be function-like macros to match the spec + +// POSIX names + +// original BSD names + +// these were exposed here before + +// ancient stuff + +type U_char = uint8 /* types.h:51:23 */ +type U_short = uint16 /* types.h:52:24 */ +type U_int = uint32 /* types.h:53:22 */ +type U_long = uint64 /* types.h:54:23 */ + +type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility +type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility +type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility +type Ulong = uint64 /* types.h:59:23 */ // Sys V compatibility + +type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id +type Register_t = X__register_t /* types.h:62:22 */ // register-sized type + +// XXX The exact-width bit types should only be exposed if __BSD_VISIBLE +// but the rest of the includes are not ready for that yet. + +type Int8_t = X__int8_t /* types.h:75:19 */ + +type Uint8_t = X__uint8_t /* types.h:80:20 */ + +type Int16_t = X__int16_t /* types.h:85:20 */ + +type Uint16_t = X__uint16_t /* types.h:90:21 */ + +type Int32_t = X__int32_t /* types.h:95:20 */ + +type Uint32_t = X__uint32_t /* types.h:100:21 */ + +type Int64_t = X__int64_t /* types.h:105:20 */ + +type Uint64_t = X__uint64_t /* types.h:110:21 */ + +// BSD-style unsigned bits types +type U_int8_t = X__uint8_t /* types.h:114:19 */ +type U_int16_t = X__uint16_t /* types.h:115:20 */ +type U_int32_t = X__uint32_t /* types.h:116:20 */ +type U_int64_t = X__uint64_t /* types.h:117:20 */ + +// quads, deprecated in favor of 64 bit int types +type Quad_t = X__int64_t /* types.h:120:19 */ +type U_quad_t = X__uint64_t /* types.h:121:20 */ + +// VM system types +type Vaddr_t = X__vaddr_t /* types.h:125:19 */ +type Paddr_t = X__paddr_t /* types.h:126:19 */ +type Vsize_t = X__vsize_t /* types.h:127:19 */ +type Psize_t = X__psize_t /* types.h:128:19 */ + +// Standard system types +type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file +type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O +type Caddr_t = uintptr /* types.h:134:14 */ // core address +type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address +type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address +type Dev_t = X__dev_t /* types.h:137:18 */ // device number +type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number +type Gid_t = X__gid_t /* types.h:139:18 */ // group id +type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid +type Ino_t = X__ino_t /* types.h:141:18 */ // inode number +type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) +type Mode_t = X__mode_t /* types.h:143:18 */ // permissions +type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count +type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit +type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size +type Swblk_t = X__swblk_t /* types.h:147:19 */ // swap offset +type Uid_t = X__uid_t /* types.h:148:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:149:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:150:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:151:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:152:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:159:19 */ + +type Clockid_t = X__clockid_t /* types.h:164:21 */ + +type Pid_t = X__pid_t /* types.h:169:18 */ + +type Ssize_t = X__ssize_t /* types.h:179:19 */ + +type Time_t = X__time_t /* types.h:184:18 */ + +type Timer_t = X__timer_t /* types.h:189:19 */ + +type Off_t = X__off_t /* types.h:194:18 */ + +// Major, minor numbers, dev_t's. + +// $OpenBSD: uuid.h,v 1.3 2014/08/31 09:36:39 miod Exp $ +// $NetBSD: uuid.h,v 1.5 2008/11/18 14:01:03 joerg Exp $ + +// Copyright (c) 2002 Marcel Moolenaar +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// $FreeBSD: /repoman/r/ncvs/src/sys/sys/uuid.h,v 1.3 2003/05/31 16:47:07 phk Exp $ + +// Length of a node address (an IEEE 802 address). + +// Length of a printed UUID. + +// See also: +// http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt +// http://www.opengroup.org/onlinepubs/009629399/apdxa.htm +// +// A DCE 1.1 compatible source representation of UUIDs. +type Uuid = struct { + Ftime_low Uint32_t + Ftime_mid Uint16_t + Ftime_hi_and_version Uint16_t + Fclock_seq_hi_and_reserved Uint8_t + Fclock_seq_low Uint8_t + Fnode [6]Uint8_t +} /* uuid.h:48:1 */ + +type Uuid_t = Uuid /* uuid.h:71:21 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go b/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go index d21ebcb75..d128ab89d 100644 --- a/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go +++ b/vendor/modernc.org/libc/wctype/capi_darwin_amd64.go @@ -2,4 +2,54 @@ package wctype -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, + "__isctype": {}, + "__istype": {}, + "__wcwidth": {}, + "digittoint": {}, + "isalnum": {}, + "isalpha": {}, + "isascii": {}, + "isblank": {}, + "iscntrl": {}, + "isdigit": {}, + "isgraph": {}, + "ishexnumber": {}, + "isideogram": {}, + "islower": {}, + "isnumber": {}, + "isphonogram": {}, + "isprint": {}, + "ispunct": {}, + "isrune": {}, + "isspace": {}, + "isspecial": {}, + "isupper": {}, + "iswalnum": {}, + "iswalpha": {}, + "iswascii": {}, + "iswblank": {}, + "iswcntrl": {}, + "iswctype": {}, + "iswdigit": {}, + "iswgraph": {}, + "iswhexnumber": {}, + "iswideogram": {}, + "iswlower": {}, + "iswnumber": {}, + "iswphonogram": {}, + "iswprint": {}, + "iswpunct": {}, + "iswrune": {}, + "iswspace": {}, + "iswspecial": {}, + "iswupper": {}, + "iswxdigit": {}, + "isxdigit": {}, + "toascii": {}, + "tolower": {}, + "toupper": {}, + "towlower": {}, + "towupper": {}, +} diff --git a/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go index e79c076d8..888527396 100644 --- a/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go +++ b/vendor/modernc.org/libc/wctype/capi_darwin_arm64.go @@ -2,4 +2,54 @@ package wctype -var CAPI = map[string]struct{}{} +var CAPI = map[string]struct{}{ + "__darwin_check_fd_set_overflow": {}, + "__isctype": {}, + "__istype": {}, + "__wcwidth": {}, + "digittoint": {}, + "isalnum": {}, + "isalpha": {}, + "isascii": {}, + "isblank": {}, + "iscntrl": {}, + "isdigit": {}, + "isgraph": {}, + "ishexnumber": {}, + "isideogram": {}, + "islower": {}, + "isnumber": {}, + "isphonogram": {}, + "isprint": {}, + "ispunct": {}, + "isrune": {}, + "isspace": {}, + "isspecial": {}, + "isupper": {}, + "iswalnum": {}, + "iswalpha": {}, + "iswascii": {}, + "iswblank": {}, + "iswcntrl": {}, + "iswctype": {}, + "iswdigit": {}, + "iswgraph": {}, + "iswhexnumber": {}, + "iswideogram": {}, + "iswlower": {}, + "iswnumber": {}, + "iswphonogram": {}, + "iswprint": {}, + "iswpunct": {}, + "iswrune": {}, + "iswspace": {}, + "iswspecial": {}, + "iswupper": {}, + "iswxdigit": {}, + "isxdigit": {}, + "toascii": {}, + "tolower": {}, + "toupper": {}, + "towlower": {}, + "towupper": {}, +} diff --git a/vendor/modernc.org/libc/wctype/capi_freebsd_386.go b/vendor/modernc.org/libc/wctype/capi_freebsd_386.go new file mode 100644 index 000000000..e972516d8 --- /dev/null +++ b/vendor/modernc.org/libc/wctype/capi_freebsd_386.go @@ -0,0 +1,29 @@ +// Code generated by 'ccgo wctype/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_freebsd_386.go -pkgname wctype', DO NOT EDIT. + +package wctype + +var CAPI = map[string]struct{}{ + "__istype_l": {}, + "__maskrune_l": {}, + "__wcwidth_l": {}, + "iswalnum_l": {}, + "iswalpha_l": {}, + "iswblank_l": {}, + "iswcntrl_l": {}, + "iswdigit_l": {}, + "iswgraph_l": {}, + "iswhexnumber_l": {}, + "iswideogram_l": {}, + "iswlower_l": {}, + "iswnumber_l": {}, + "iswphonogram_l": {}, + "iswprint_l": {}, + "iswpunct_l": {}, + "iswrune_l": {}, + "iswspace_l": {}, + "iswspecial_l": {}, + "iswupper_l": {}, + "iswxdigit_l": {}, + "towlower_l": {}, + "towupper_l": {}, +} diff --git a/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go b/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go new file mode 100644 index 000000000..174ee1133 --- /dev/null +++ b/vendor/modernc.org/libc/wctype/capi_openbsd_amd64.go @@ -0,0 +1,5 @@ +// Code generated by 'ccgo wctype/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_openbsd_amd64.go -pkgname wctype', DO NOT EDIT. + +package wctype + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/wctype/capi_windows_386.go b/vendor/modernc.org/libc/wctype/capi_windows_386.go index a522b1900..2f09890d1 100644 --- a/vendor/modernc.org/libc/wctype/capi_windows_386.go +++ b/vendor/modernc.org/libc/wctype/capi_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo wctype/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_windows_386.go -pkgname wctype', DO NOT EDIT. +// Code generated by 'ccgo wctype\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype\wctype_windows_386.go -pkgname wctype', DO NOT EDIT. package wctype diff --git a/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go b/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go index 718b10f8c..19ee06d99 100644 --- a/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go +++ b/vendor/modernc.org/libc/wctype/wctype_darwin_amd64.go @@ -82,6 +82,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c)1999 Citrus Project, // All rights reserved. @@ -185,6 +187,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __unused denotes variables and functions that may not be used, preventing // the compiler from warning about it if not used. diff --git a/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go index 8ed193feb..715e12e63 100644 --- a/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go +++ b/vendor/modernc.org/libc/wctype/wctype_darwin_arm64.go @@ -84,6 +84,8 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ +var X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + // - // Copyright (c)1999 Citrus Project, // All rights reserved. @@ -187,6 +189,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // in between its arguments. __CONCAT can also concatenate double-quoted // strings produced by the __STRING macro, but this only works with ANSI C. +// In non-ANSI C environments, new programs will want ANSI-only C keywords +// deleted from the program and old programs will want them left alone. +// When using a compiler other than gcc, programs using the ANSI C keywords +// const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. +// When using "gcc -traditional", we assume that this is the intent; if +// __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + // __pure2 can be used for functions that are only a function of their scalar // arguments (meaning they can't dereference pointers). // diff --git a/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go b/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go new file mode 100644 index 000000000..899bfbc4b --- /dev/null +++ b/vendor/modernc.org/libc/wctype/wctype_freebsd_386.go @@ -0,0 +1,787 @@ +// Code generated by 'ccgo wctype/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_freebsd_386.go -pkgname wctype', DO NOT EDIT. + +package wctype + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + X_CACHED_RUNES = 256 + X_CRMASK = -256 + X_CTYPE_A = 0x00000100 + X_CTYPE_B = 0x00020000 + X_CTYPE_C = 0x00000200 + X_CTYPE_D = 0x00000400 + X_CTYPE_G = 0x00000800 + X_CTYPE_I = 0x00080000 + X_CTYPE_L = 0x00001000 + X_CTYPE_N = 0x00400000 + X_CTYPE_P = 0x00002000 + X_CTYPE_Q = 0x00200000 + X_CTYPE_R = 0x00040000 + X_CTYPE_S = 0x00004000 + X_CTYPE_SW0 = 0x20000000 + X_CTYPE_SW1 = 0x40000000 + X_CTYPE_SW2 = 0x80000000 + X_CTYPE_SW3 = 0xc0000000 + X_CTYPE_SWM = 0xe0000000 + X_CTYPE_SWS = 30 + X_CTYPE_T = 0x00100000 + X_CTYPE_U = 0x00008000 + X_CTYPE_X = 0x00010000 + X_FILE_OFFSET_BITS = 64 + X_ILP32 = 1 + X_LOCALE_T_DEFINED = 0 + X_MACHINE__LIMITS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_Nonnull = 0 + X_Null_unspecified = 0 + X_Nullable = 0 + X_RUNETYPE_H_ = 0 + X_RUNE_MAGIC_1 = "RuneMagi" + X_SYS_CDEFS_H_ = 0 + X_SYS__TYPES_H_ = 0 + X_WCTRANS_T = 0 + X_WCTYPE_H_ = 0 + X_WCTYPE_T = 0 + X_WINT_T_DECLARED = 0 + X_XLOCALE_RUN_FUNCTIONS_DEFINED = 1 + X_XLOCALE_WCTYPE_H = 0 + I386 = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = int32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause +// +// Copyright (c)1999 Citrus Project, +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp +// $NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $ +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// Testing against Clang-specific extensions. + +// This code has been put in place to help reduce the addition of +// compiler specific defines in FreeBSD code. It helps to aid in +// having a compiler-agnostic source tree. + +// Compiler memory barriers, specific to gcc and clang. + +// XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky to use if it must work in non-ANSI +// mode -- there must be no spaces between its arguments, and for nested +// __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also +// concatenate double-quoted strings produced by the __STRING macro, but +// this only works with ANSI C. +// +// __XSTRING is like __STRING, but it expands any macros in its argument +// first. It is only available with ANSI C. + +// Compiler-dependent macros to help declare dead (non-returning) and +// pure (no side effects) functions, and unused variables. They are +// null except for versions of gcc that are known to support the features +// properly (old versions of gcc-2 supported the dead and pure features +// in a different (wrong) way). If we do not provide an implementation +// for a given compiler, let the compile fail if it is told to use +// a feature that we cannot live without. + +// Keywords added in C11. + +// Emulation of C11 _Generic(). Unlike the previously defined C11 +// keywords, it is not possible to implement this using exactly the same +// syntax. Therefore implement something similar under the name +// __generic(). Unlike _Generic(), this macro can only distinguish +// between a single type, so it requires nested invocations to +// distinguish multiple cases. + +// C99 Static array indices in function parameter declarations. Syntax such as: +// void bar(int myArray[static 10]); +// is allowed in C99 but not in C++. Define __min_size appropriately so +// headers using it can be compiled in either language. Use like this: +// void bar(int myArray[__min_size(10)]); + +// XXX: should use `#if __STDC_VERSION__ < 199901'. + +// C++11 exposes a load of C99 stuff + +// GCC 2.95 provides `__restrict' as an extension to C90 to support the +// C99-specific `restrict' type qualifier. We happen to use `__restrict' as +// a way to define the `restrict' type qualifier without disturbing older +// software that is unaware of C99 keywords. + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h> +// require it. + +// Given the pointer x to the member m of the struct s, return +// a pointer to the containing structure. When using GCC, we first +// assign pointer x to a local variable, to check that its type is +// compatible with member m. + +// Compiler-dependent macros to declare that functions take printf-like +// or scanf-like arguments. They are null except for versions of gcc +// that are known to support the features properly (old versions of gcc-2 +// didn't permit keeping the keywords out of the application namespace). + +// Compiler-dependent macros that rely on FreeBSD-specific extensions. + +// Embed the rcs id of a source file in the resulting library. Note that in +// more recent ELF binutils, we use .ident allowing the ID to be stripped. +// Usage: +// __FBSDID("$FreeBSD$"); + +// - +// The following definitions are an extension of the behavior originally +// implemented in <sys/_posix.h>, but with a different level of granularity. +// POSIX.1 requires that the macros we test be defined before any standard +// header file is included. +// +// Here's a quick run-down of the versions: +// defined(_POSIX_SOURCE) 1003.1-1988 +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option +// _POSIX_C_SOURCE == 199309 1003.1b-1993 +// _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1: 1996 +// _POSIX_C_SOURCE == 200112 1003.1-2001 +// _POSIX_C_SOURCE == 200809 1003.1-2008 +// +// In addition, the X/Open Portability Guide, which is now the Single UNIX +// Specification, defines a feature-test macro which indicates the version of +// that specification, and which subsumes _POSIX_C_SOURCE. +// +// Our macros begin with two underscores to avoid namespace screwage. + +// Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. + +// Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. + +// Deal with various X/Open Portability Guides and Single UNIX Spec. + +// Deal with all versions of POSIX. The ordering relative to the tests above is +// important. +// - +// Deal with _ANSI_SOURCE: +// If it is defined, and no other compilation environment is explicitly +// requested, then define our internal feature-test macros to zero. This +// makes no difference to the preprocessor (undefined symbols in preprocessing +// expressions are defined to have value zero), but makes it more convenient for +// a test program to print out the values. +// +// If a program mistakenly defines _ANSI_SOURCE and some other macro such as +// _POSIX_C_SOURCE, we will assume that it wants the broader compilation +// environment (and in fact we will never get here). + +// User override __EXT1_VISIBLE + +// Old versions of GCC use non-standard ARM arch symbols; acle-compat.h +// translates them to __ARM_ARCH and the modern feature symbols defined by ARM. + +// Nullability qualifiers: currently only supported by Clang. + +// Type Safety Checking +// +// Clang provides additional attributes to enable checking type safety +// properties that cannot be enforced by the C type system. + +// Lock annotations. +// +// Clang provides support for doing basic thread-safety tests at +// compile-time, by marking which locks will/should be held when +// entering/leaving a functions. +// +// Furthermore, it is also possible to annotate variables and structure +// members to enforce that they are only accessed when certain locks are +// held. + +// Structure implements a lock. + +// Function acquires an exclusive or shared lock. + +// Function attempts to acquire an exclusive or shared lock. + +// Function releases a lock. + +// Function asserts that an exclusive or shared lock is held. + +// Function requires that an exclusive or shared lock is or is not held. + +// Function should not be analyzed. + +// Function or variable should not be sanitized, e.g., by AddressSanitizer. +// GCC has the nosanitize attribute, but as a function attribute only, and +// warns on use as a variable attribute. + +// Guard variables and structure members by lock. + +// Alignment builtins for better type checking and improved code generation. +// Provide fallback versions for other compilers (GCC/Clang < 10): + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-4-Clause +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All advertising materials mentioning features or use of this software +// must display the following acknowledgement: +// This product includes software developed by the University of +// California, Berkeley and its contributors. +// 4. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 +// From: @(#)types.h 8.3 (Berkeley) 1/5/94 +// $FreeBSD$ + +// - +// This file is in the public domain. +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1988, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)limits.h 8.3 (Berkeley) 1/4/94 +// $FreeBSD$ + +// According to ANSI (section 2.2.4.2), the values below must be usable by +// #if preprocessing directives. Additionally, the expression must have the +// same type as would an expression that is an object of the corresponding +// type converted according to the integral promotions. The subtraction for +// INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an +// unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + +// max value for an unsigned long long + +// Minimum signal stack size. + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:55:22 */ +type X__uint8_t = uint8 /* _types.h:56:24 */ +type X__int16_t = int16 /* _types.h:57:17 */ +type X__uint16_t = uint16 /* _types.h:58:25 */ +type X__int32_t = int32 /* _types.h:59:15 */ +type X__uint32_t = uint32 /* _types.h:60:23 */ + +type X__int64_t = int64 /* _types.h:66:20 */ + +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// Standard type definitions. +type X__clock_t = uint32 /* _types.h:84:23 */ +type X__critical_t = X__int32_t /* _types.h:85:19 */ +type X__double_t = float64 /* _types.h:87:21 */ +type X__float_t = float64 /* _types.h:88:21 */ +type X__intfptr_t = X__int32_t /* _types.h:90:19 */ +type X__intptr_t = X__int32_t /* _types.h:91:19 */ +type X__intmax_t = X__int64_t /* _types.h:93:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:94:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:95:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:96:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:97:19 */ +type X__int_least8_t = X__int8_t /* _types.h:98:18 */ +type X__int_least16_t = X__int16_t /* _types.h:99:19 */ +type X__int_least32_t = X__int32_t /* _types.h:100:19 */ +type X__int_least64_t = X__int64_t /* _types.h:101:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:112:19 */ +type X__register_t = X__int32_t /* _types.h:113:19 */ +type X__segsz_t = X__int32_t /* _types.h:114:19 */ +type X__size_t = X__uint32_t /* _types.h:115:20 */ +type X__ssize_t = X__int32_t /* _types.h:116:19 */ +type X__time_t = X__int32_t /* _types.h:117:19 */ +type X__uintfptr_t = X__uint32_t /* _types.h:118:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:119:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:121:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:122:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:123:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:124:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:125:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:126:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:127:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:128:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:129:20 */ +type X__u_register_t = X__uint32_t /* _types.h:136:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:137:20 */ +type X__vm_paddr_t = X__uint64_t /* _types.h:138:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:139:20 */ +type X___wchar_t = int32 /* _types.h:141:14 */ + +// Standard type definitions. +type X__blksize_t = X__int32_t /* _types.h:40:19 */ // file block size +type X__blkcnt_t = X__int64_t /* _types.h:41:19 */ // file block count +type X__clockid_t = X__int32_t /* _types.h:42:19 */ // clock_gettime()... +type X__fflags_t = X__uint32_t /* _types.h:43:20 */ // file flags +type X__fsblkcnt_t = X__uint64_t /* _types.h:44:20 */ +type X__fsfilcnt_t = X__uint64_t /* _types.h:45:20 */ +type X__gid_t = X__uint32_t /* _types.h:46:20 */ +type X__id_t = X__int64_t /* _types.h:47:19 */ // can hold a gid_t, pid_t, or uid_t +type X__ino_t = X__uint64_t /* _types.h:48:20 */ // inode number +type X__key_t = int32 /* _types.h:49:15 */ // IPC key (for Sys V IPC) +type X__lwpid_t = X__int32_t /* _types.h:50:19 */ // Thread ID (a.k.a. LWP) +type X__mode_t = X__uint16_t /* _types.h:51:20 */ // permissions +type X__accmode_t = int32 /* _types.h:52:14 */ // access permissions +type X__nl_item = int32 /* _types.h:53:14 */ +type X__nlink_t = X__uint64_t /* _types.h:54:20 */ // link count +type X__off_t = X__int64_t /* _types.h:55:19 */ // file offset +type X__off64_t = X__int64_t /* _types.h:56:19 */ // file offset (alias) +type X__pid_t = X__int32_t /* _types.h:57:19 */ // process [group] +type X__rlim_t = X__int64_t /* _types.h:58:19 */ // resource limit - intentionally +// signed, because of legacy code +// that uses -1 for RLIM_INFINITY +type X__sa_family_t = X__uint8_t /* _types.h:61:19 */ +type X__socklen_t = X__uint32_t /* _types.h:62:20 */ +type X__suseconds_t = int32 /* _types.h:63:15 */ // microseconds (signed) +type X__timer_t = uintptr /* _types.h:64:24 */ // timer_gettime()... +type X__mqd_t = uintptr /* _types.h:65:21 */ // mq_open()... +type X__uid_t = X__uint32_t /* _types.h:66:20 */ +type X__useconds_t = uint32 /* _types.h:67:22 */ // microseconds (unsigned) +type X__cpuwhich_t = int32 /* _types.h:68:14 */ // which parameter for cpuset. +type X__cpulevel_t = int32 /* _types.h:69:14 */ // level parameter for cpuset. +type X__cpusetid_t = int32 /* _types.h:70:14 */ // cpuset identifier. +type X__daddr_t = X__int64_t /* _types.h:71:19 */ // bwrite(3), FIOBMAP2, etc + +// Unusual type definitions. +// rune_t is declared to be an ``int'' instead of the more natural +// ``unsigned long'' or ``long''. Two things are happening here. It is not +// unsigned so that EOF (-1) can be naturally assigned to it and used. Also, +// it looks like 10646 will be a 31 bit standard. This means that if your +// ints cannot hold 32 bits, you will be in trouble. The reason an int was +// chosen over a long is that the is*() and to*() routines take ints (says +// ANSI C), but they use __ct_rune_t instead of int. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wint_t and +// rune_t must be the same type. Also, wint_t should be able to hold all +// members of the largest character set plus one extra value (WEOF), and +// must be at least 16 bits. +type X__ct_rune_t = int32 /* _types.h:91:14 */ // arg type for ctype funcs +type X__rune_t = X__ct_rune_t /* _types.h:92:21 */ // rune_t (see above) +type X__wint_t = X__ct_rune_t /* _types.h:93:21 */ // wint_t (see above) + +// Clang already provides these types as built-ins, but only in C++ mode. +type X__char16_t = X__uint_least16_t /* _types.h:97:26 */ +type X__char32_t = X__uint_least32_t /* _types.h:98:26 */ +// In C++11, char16_t and char32_t are built-in types. + +type X__max_align_t = struct { + F__max_align1 int64 + F__max_align2 float64 +} /* _types.h:111:3 */ + +type X__dev_t = X__uint64_t /* _types.h:113:20 */ // device number + +type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number + +// mbstate_t is an opaque object to keep conversion state during multibyte +// stream conversions. +type X__mbstate_t = struct { + F__ccgo_pad1 [0]uint32 + F__mbstate8 [128]int8 +} /* _types.h:124:3 */ + +type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */ + +// Types for varargs. These are all provided by builtin types these +// days, so centralize their definition. +type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc +type X__gnuc_va_list = X__va_list /* _types.h:140:20 */ + +// Use inline functions if we are allowed to and the compiler supports them. + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Paul Borman at Krystal Technologies. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)runetype.h 8.1 (Berkeley) 6/2/93 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.8 (Berkeley) 1/9/95 +// $FreeBSD$ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +// The lower 8 bits of runetype[] contain the digit value of the rune. +type X_RuneEntry = struct { + F__min X__rune_t + F__max X__rune_t + F__map X__rune_t + F__types uintptr +} /* runetype.h:55:3 */ + +type X_RuneRange = struct { + F__nranges int32 + F__ranges uintptr +} /* runetype.h:60:3 */ + +type X_RuneLocale = struct { + F__magic [8]int8 + F__encoding [32]int8 + F__sgetrune uintptr + F__sputrune uintptr + F__invalid_rune X__rune_t + F__runetype [256]uint32 + F__maplower [256]X__rune_t + F__mapupper [256]X__rune_t + F__runetype_ext X_RuneRange + F__maplower_ext X_RuneRange + F__mapupper_ext X_RuneRange + F__variable uintptr + F__variable_len int32 +} /* runetype.h:85:3 */ + +type Wctrans_t = int32 /* wctype.h:42:13 */ + +type Wctype_t = uint32 /* wctype.h:47:23 */ + +type Wint_t = X__wint_t /* wctype.h:52:18 */ + +// - +// SPDX-License-Identifier: BSD-2-Clause-FreeBSD +// +// Copyright (c) 2011 The FreeBSD Foundation +// All rights reserved. +// +// This software was developed by David Chisnall under sponsorship from +// the FreeBSD Foundation. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// $FreeBSD$ + +type Locale_t = uintptr /* _ctype.h:46:25 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go b/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go new file mode 100644 index 000000000..b2f4300b8 --- /dev/null +++ b/vendor/modernc.org/libc/wctype/wctype_openbsd_amd64.go @@ -0,0 +1,356 @@ +// Code generated by 'ccgo wctype/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_openbsd_amd64.go -pkgname wctype', DO NOT EDIT. + +package wctype + +import ( + "math" + "reflect" + "sync/atomic" + "unsafe" +) + +var _ = math.Pi +var _ reflect.Kind +var _ atomic.Value +var _ unsafe.Pointer + +const ( + X_FILE_OFFSET_BITS = 64 + X_LOCALE_T_DEFINED_ = 0 + X_LP64 = 1 + X_MACHINE_CDEFS_H_ = 0 + X_MACHINE__TYPES_H_ = 0 + X_MAX_PAGE_SHIFT = 12 + X_RET_PROTECTOR = 1 + X_STACKALIGNBYTES = 15 + X_SYS_CDEFS_H_ = 0 + X_WCTRANS_T_DEFINED_ = 0 + X_WCTYPE_H_ = 0 + X_WCTYPE_T_DEFINED_ = 0 + X_WINT_T_DEFINED_ = 0 + Unix = 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 */ + +// $OpenBSD: wctype.h,v 1.6 2017/09/05 03:16:13 schwarze Exp $ +// $NetBSD: wctype.h,v 1.5 2003/03/02 22:18:11 tshiozak Exp $ + +// - +// Copyright (c)1999 Citrus Project, +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp + +// $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ +// $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ + +// Copyright (c) 1991, 1993 +// The Regents of the University of California. All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Berkeley Software Design, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)cdefs.h 8.7 (Berkeley) 1/21/94 + +// $OpenBSD: cdefs.h,v 1.3 2013/03/28 17:30:45 martynas Exp $ + +// Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. +// Public domain. + +// Macro to test if we're using a specific version of gcc or later. + +// The __CONCAT macro is used to concatenate parts of symbol names, e.g. +// with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. +// The __CONCAT macro is a bit tricky -- make sure you don't put spaces +// in between its arguments. Do not use __CONCAT on double-quoted strings, +// such as those from the __STRING macro: to concatenate strings just put +// them next to each other. + +// GCC1 and some versions of GCC2 declare dead (non-returning) and +// pure (no side effects) functions using "volatile" and "const"; +// unfortunately, these then cause warnings under "-ansi -pedantic". +// GCC >= 2.5 uses the __attribute__((attrs)) style. All of these +// work for GNU C++ (modulo a slight glitch in the C++ grammar in +// the distribution version of 2.5.5). + +// __returns_twice makes the compiler not assume the function +// only returns once. This affects registerisation of variables: +// even local variables need to be in memory across such a call. +// Example: setjmp() + +// __only_inline makes the compiler only use this function definition +// for inlining; references that can't be inlined will be left as +// external references instead of generating a local copy. The +// matching library should include a simple extern definition for +// the function to handle those references. c.f. ctype.h + +// GNU C version 2.96 adds explicit branch prediction so that +// the CPU back-end can hint the processor and also so that +// code blocks can be reordered such that the predicted path +// sees a more linear flow, thus improving cache behavior, etc. +// +// The following two macros provide us with a way to utilize this +// compiler feature. Use __predict_true() if you expect the expression +// to evaluate to true, and __predict_false() if you expect the +// expression to evaluate to false. +// +// A few notes about usage: +// +// * Generally, __predict_false() error condition checks (unless +// you have some _strong_ reason to do otherwise, in which case +// document it), and/or __predict_true() `no-error' condition +// checks, assuming you want to optimize for the no-error case. +// +// * Other than that, if you don't know the likelihood of a test +// succeeding from empirical or other `hard' evidence, don't +// make predictions. +// +// * These are meant to be used in places that are run `a lot'. +// It is wasteful to make predictions in code that is run +// seldomly (e.g. at subsystem initialization time) as the +// basic block reordering that this affects can often generate +// larger code. + +// Delete pseudo-keywords wherever they are not available or needed. + +// The __packed macro indicates that a variable or structure members +// should have the smallest possible alignment, despite any host CPU +// alignment requirements. +// +// The __aligned(x) macro specifies the minimum alignment of a +// variable or structure. +// +// These macros together are useful for describing the layout and +// alignment of messages exchanged with hardware or other systems. + +// "The nice thing about standards is that there are so many to choose from." +// There are a number of "feature test macros" specified by (different) +// standards that determine which interfaces and types the header files +// should expose. +// +// Because of inconsistencies in these macros, we define our own +// set in the private name space that end in _VISIBLE. These are +// always defined and so headers can test their values easily. +// Things can get tricky when multiple feature macros are defined. +// We try to take the union of all the features requested. +// +// The following macros are guaranteed to have a value after cdefs.h +// has been included: +// __POSIX_VISIBLE +// __XPG_VISIBLE +// __ISO_C_VISIBLE +// __BSD_VISIBLE + +// X/Open Portability Guides and Single Unix Specifications. +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE == 500 XPG5 +// _XOPEN_SOURCE == 520 XPG5v2 +// _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI +// _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI +// +// The XPG spec implies a specific value for _POSIX_C_SOURCE. + +// POSIX macros, these checks must follow the XOPEN ones above. +// +// _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) +// _POSIX_C_SOURCE == 1 1003.1-1990 +// _POSIX_C_SOURCE == 2 1003.2-1992 +// _POSIX_C_SOURCE == 199309L 1003.1b-1993 +// _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, +// and the omnibus ISO/IEC 9945-1:1996 +// _POSIX_C_SOURCE == 200112L 1003.1-2001 +// _POSIX_C_SOURCE == 200809L 1003.1-2008 +// +// The POSIX spec implies a specific value for __ISO_C_VISIBLE, though +// this may be overridden by the _ISOC99_SOURCE macro later. + +// _ANSI_SOURCE means to expose ANSI C89 interfaces only. +// If the user defines it in addition to one of the POSIX or XOPEN +// macros, assume the POSIX/XOPEN macro(s) should take precedence. + +// _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus +// override any of the other macros since they are non-exclusive. + +// Finally deal with BSD-specific interfaces that are not covered +// by any standards. We expose these when none of the POSIX or XPG +// macros is defined or if the user explicitly asks for them. + +// Default values. + +// $OpenBSD: _types.h,v 1.17 2018/03/05 01:15:25 deraadt Exp $ + +// - +// Copyright (c) 1990, 1993 +// The Regents of the University of California. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// @(#)types.h 8.3 (Berkeley) 1/5/94 +// @(#)ansi.h 8.2 (Berkeley) 1/4/94 + +// _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned +// value for all data types (int, long, ...). The result is an +// unsigned long and must be cast to any desired pointer type. +// +// _ALIGNED_POINTER is a boolean macro that checks whether an address +// is valid to fetch data elements of type t from on this architecture. +// This does not reflect the optimal alignment, just the possibility +// (within reasonable limits). + +// 7.18.1.1 Exact-width integer types +type X__int8_t = int8 /* _types.h:61:22 */ +type X__uint8_t = uint8 /* _types.h:62:24 */ +type X__int16_t = int16 /* _types.h:63:17 */ +type X__uint16_t = uint16 /* _types.h:64:25 */ +type X__int32_t = int32 /* _types.h:65:15 */ +type X__uint32_t = uint32 /* _types.h:66:23 */ +type X__int64_t = int64 /* _types.h:67:20 */ +type X__uint64_t = uint64 /* _types.h:68:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:71:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ +type X__int_least16_t = X__int16_t /* _types.h:73:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ +type X__int_least32_t = X__int32_t /* _types.h:75:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ +type X__int_least64_t = X__int64_t /* _types.h:77:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:103:16 */ +type X__uintptr_t = uint64 /* _types.h:104:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:107:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ + +// Register size +type X__register_t = int64 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:114:24 */ +type X__paddr_t = uint64 /* _types.h:115:24 */ +type X__vsize_t = uint64 /* _types.h:116:24 */ +type X__psize_t = uint64 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:18 */ +type X__float_t = float32 /* _types.h:121:17 */ +type X__ptrdiff_t = int64 /* _types.h:122:16 */ +type X__size_t = uint64 /* _types.h:123:24 */ +type X__ssize_t = int64 /* _types.h:124:16 */ +type X__va_list = X__builtin_va_list /* _types.h:126:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:133:15 */ +type X__wint_t = int32 /* _types.h:135:15 */ +type X__rune_t = int32 /* _types.h:136:15 */ +type X__wctrans_t = uintptr /* _types.h:137:14 */ +type X__wctype_t = uintptr /* _types.h:138:14 */ + +type Wint_t = X__wint_t /* wctype.h:40:21 */ + +type Wctrans_t = X__wctrans_t /* wctype.h:45:21 */ + +type Wctype_t = X__wctype_t /* wctype.h:50:20 */ + +type Locale_t = uintptr /* wctype.h:60:14 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/wctype/wctype_windows_386.go b/vendor/modernc.org/libc/wctype/wctype_windows_386.go index 56f1502a8..2bc052df8 100644 --- a/vendor/modernc.org/libc/wctype/wctype_windows_386.go +++ b/vendor/modernc.org/libc/wctype/wctype_windows_386.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo wctype/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_windows_386.go -pkgname wctype', DO NOT EDIT. +// Code generated by 'ccgo wctype\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype\wctype_windows_386.go -pkgname wctype', DO NOT EDIT. package wctype @@ -32,7 +32,9 @@ const ( DUMMYUNIONNAME8 = 0 DUMMYUNIONNAME9 = 0 MINGW_DDK_H = 0 + MINGW_DDRAW_VERSION = 7 MINGW_HAS_DDK_H = 1 + MINGW_HAS_DDRAW_H = 1 MINGW_HAS_SECURE_API = 1 MINGW_SDK_INIT = 0 UNALIGNED = 0 @@ -58,15 +60,12 @@ const ( X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 - X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 X_CRT_WCTYPEDATA_DEFINED = 0 X_DIGIT = 0x4 X_DLL = 0 X_ERRCODE_DEFINED = 0 X_FILE_OFFSET_BITS = 64 X_HEX = 0x80 - X_ILP32 = 1 - X_INC_CORECRT = 0 X_INC_CRTDEFS = 0 X_INC_CRTDEFS_MACRO = 0 X_INC_MINGW_SECAPI = 0 @@ -84,6 +83,7 @@ const ( X_PTRDIFF_T_ = 0 X_PTRDIFF_T_DEFINED = 0 X_PUNCT = 0x10 + X_REENTRANT = 1 X_RSIZE_T_DEFINED = 0 X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD X_SIZE_T_DEFINED = 0 @@ -141,11 +141,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// * -// This file has no copyright assigned and is placed in the Public Domain. -// This file is part of the mingw-w64 runtime package. -// No warranty is given; refer to the file DISCLAIMER.PD within this package. - // This macro holds an monotonic increasing value, which indicates // a specific fix/patch is present on trunk. This value isn't related to // minor/major version-macros. It is increased on demand, if a big @@ -166,12 +161,6 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // MinGW-w64 has some additional C99 printf/scanf feature support. // So we add some helper macros to ease recognition of them. -// If _FORTIFY_SOURCE is enabled, some inline functions may use -// __builtin_va_arg_pack(). GCC may report an error if the address -// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case. - -// Enable workaround for ABI incompatibility on affected platforms - // * // This file has no copyright assigned and is placed in the Public Domain. // This file is part of the mingw-w64 runtime package. @@ -212,28 +201,26 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */ // This file is part of the mingw-w64 runtime package. // No warranty is given; refer to the file DISCLAIMER.PD within this package. -// for backward compatibility - type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ -type Ssize_t = int32 /* corecrt.h:52:13 */ +type Ssize_t = int32 /* crtdefs.h:47:13 */ -type Rsize_t = Size_t /* corecrt.h:57:16 */ +type Rsize_t = Size_t /* crtdefs.h:52:16 */ -type Intptr_t = int32 /* corecrt.h:69:13 */ +type Intptr_t = int32 /* crtdefs.h:64:13 */ -type Uintptr_t = uint32 /* corecrt.h:82:22 */ +type Uintptr_t = uint32 /* crtdefs.h:77:22 */ -type Wint_t = uint16 /* corecrt.h:111:24 */ -type Wctype_t = uint16 /* corecrt.h:112:24 */ +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ -type Errno_t = int32 /* corecrt.h:118:13 */ +type Errno_t = int32 /* crtdefs.h:113:13 */ -type X__time32_t = int32 /* corecrt.h:123:14 */ +type X__time32_t = int32 /* crtdefs.h:118:14 */ -type X__time64_t = int64 /* corecrt.h:128:35 */ +type X__time64_t = int64 /* crtdefs.h:123:35 */ -type Time_t = X__time32_t /* corecrt.h:141:20 */ +type Time_t = X__time32_t /* crtdefs.h:136:20 */ type Threadlocaleinfostruct = struct { Frefcount int32 @@ -259,29 +246,29 @@ type Threadlocaleinfostruct = struct { Fpclmap uintptr Fpcumap uintptr Flc_time_curr uintptr -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ -type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ type Localeinfo_struct = struct { Flocinfo Pthreadlocinfo Fmbcinfo Pthreadmbcinfo -} /* corecrt.h:441:9 */ +} /* crtdefs.h:428:9 */ -type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ -type X_locale_t = uintptr /* corecrt.h:444:19 */ +type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */ +type X_locale_t = uintptr /* crtdefs.h:431:19 */ type TagLC_ID = struct { FwLanguage uint16 FwCountry uint16 FwCodePage uint16 -} /* corecrt.h:435:1 */ +} /* crtdefs.h:422:1 */ -type LC_ID = TagLC_ID /* corecrt.h:452:3 */ -type LPLC_ID = uintptr /* corecrt.h:452:9 */ +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ -type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ +type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */ type Wctrans_t = Wchar_t /* wctype.h:174:19 */ |
