diff options
author | Emile <git@emile.space> | 2024-08-16 19:50:26 +0200 |
---|---|---|
committer | Emile <git@emile.space> | 2024-08-16 19:50:26 +0200 |
commit | 1a57267a17c2fc17fb6e104846fabc3e363c326c (patch) | |
tree | 1e574e3a80622086dc3c81ff9cba65ef7049b1a9 /vendor/modernc.org/libc/stdio |
initial commit
Diffstat (limited to 'vendor/modernc.org/libc/stdio')
48 files changed, 16988 insertions, 0 deletions
diff --git a/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go new file mode 100644 index 0000000..3782209 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_darwin_amd64.go @@ -0,0 +1,7 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_darwin_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +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 new file mode 100644 index 0000000..fdc60c5 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_darwin_arm64.go @@ -0,0 +1,7 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_darwin_arm64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +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 0000000..1e381eb --- /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 -ignore-unsupported-alignment -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_freebsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_freebsd_amd64.go new file mode 100644 index 0000000..f6b25b1 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_freebsd_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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_freebsd_arm.go b/vendor/modernc.org/libc/stdio/capi_freebsd_arm.go new file mode 100644 index 0000000..29dc462 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_freebsd_arm.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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_arm.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_freebsd_arm64.go b/vendor/modernc.org/libc/stdio/capi_freebsd_arm64.go new file mode 100644 index 0000000..f6b25b1 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_freebsd_arm64.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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_illumos_amd64.go b/vendor/modernc.org/libc/stdio/capi_illumos_amd64.go new file mode 100644 index 0000000..1246ca7 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_illumos_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 -ignore-unsupported-alignment -o stdio/stdio_illumos_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_386.go b/vendor/modernc.org/libc/stdio/capi_linux_386.go new file mode 100644 index 0000000..e00b4c1 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_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_linux_386.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_amd64.go b/vendor/modernc.org/libc/stdio/capi_linux_amd64.go new file mode 100644 index 0000000..e327db4 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_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 -ignore-unsupported-alignment -o stdio/stdio_linux_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_arm.go b/vendor/modernc.org/libc/stdio/capi_linux_arm.go new file mode 100644 index 0000000..91c7b0c --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_arm.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_linux_arm.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_arm64.go b/vendor/modernc.org/libc/stdio/capi_linux_arm64.go new file mode 100644 index 0000000..9a47692 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_arm64.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_linux_arm64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_loong64.go b/vendor/modernc.org/libc/stdio/capi_linux_loong64.go new file mode 100644 index 0000000..48233d3 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_loong64.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 -ignore-unsupported-alignment -o stdio/stdio_linux_loong64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_mips64le.go b/vendor/modernc.org/libc/stdio/capi_linux_mips64le.go new file mode 100644 index 0000000..e327db4 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_mips64le.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 -ignore-unsupported-alignment -o stdio/stdio_linux_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_ppc64le.go b/vendor/modernc.org/libc/stdio/capi_linux_ppc64le.go new file mode 100644 index 0000000..49301bc --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_ppc64le.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 -ignore-unsupported-alignment -o stdio/stdio_linux_ppc64le.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_riscv64.go b/vendor/modernc.org/libc/stdio/capi_linux_riscv64.go new file mode 100644 index 0000000..fbb39ed --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_riscv64.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_linux_riscv64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_linux_s390x.go b/vendor/modernc.org/libc/stdio/capi_linux_s390x.go new file mode 100644 index 0000000..43f05d4 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_linux_s390x.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_linux_s390x.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go b/vendor/modernc.org/libc/stdio/capi_netbsd_amd64.go new file mode 100644 index 0000000..fd3ef97 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_netbsd_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 -ignore-unsupported-alignment -o stdio/stdio_netbsd_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_netbsd_arm.go b/vendor/modernc.org/libc/stdio/capi_netbsd_arm.go new file mode 100644 index 0000000..5221f64 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_netbsd_arm.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 -ignore-unsupported-alignment -o stdio/stdio_netbsd_arm.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_openbsd_386.go b/vendor/modernc.org/libc/stdio/capi_openbsd_386.go new file mode 100644 index 0000000..67c14eb --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_openbsd_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 -ignore-unsupported-alignment -o stdio/stdio_openbsd_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 0000000..3c095e7 --- /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 -ignore-unsupported-alignment -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_openbsd_arm64.go b/vendor/modernc.org/libc/stdio/capi_openbsd_arm64.go new file mode 100644 index 0000000..e077230 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_openbsd_arm64.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 -ignore-unsupported-alignment -o stdio/stdio_openbsd_arm64.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 new file mode 100644 index 0000000..48013d5 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_windows_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 -ignore-unsupported-alignment -o stdio/stdio_windows_386.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_windows_amd64.go b/vendor/modernc.org/libc/stdio/capi_windows_amd64.go new file mode 100644 index 0000000..f066e77 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_windows_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_windows_amd64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/capi_windows_arm64.go b/vendor/modernc.org/libc/stdio/capi_windows_arm64.go new file mode 100644 index 0000000..d8977aa --- /dev/null +++ b/vendor/modernc.org/libc/stdio/capi_windows_arm64.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_windows_arm64.go -pkgname stdio', DO NOT EDIT. + +package stdio + +var CAPI = map[string]struct{}{} diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go new file mode 100644 index 0000000..129bf98 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_darwin_amd64.go @@ -0,0 +1,1929 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_darwin_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 ( + BUFSIZ = 1024 // stdio.h:103:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 1024 // stdio.h:108:1: + FOPEN_MAX = 20 // stdio.h:107:1: + L_ctermid = 1024 // stdio.h:202:1: + L_tmpnam = 1024 // stdio.h:114:1: + P_tmpdir = "/var/tmp/" // stdio.h:112:1: + RENAME_EXCL = 0x00000004 // stdio.h:45:1: + RENAME_SECLUDE = 0x00000001 // stdio.h:43:1: + RENAME_SWAP = 0x00000002 // stdio.h:44:1: + SEEK_CUR = 1 // stdio.h:121:1: + SEEK_END = 2 // stdio.h:124:1: + SEEK_SET = 0 // stdio.h:118:1: + TMP_MAX = 308915776 // stdio.h:115:1: + X_BSD_I386__TYPES_H_ = 0 // _types.h:29:1: + X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1: + X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1: + X_CDEFS_H_ = 0 // cdefs.h:68:1: + X_CTERMID_H_ = 0 // _ctermid.h:25:1: + X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:745:1: + X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:771:1: + X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:779:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FORTIFY_SOURCE = 2 // _types.h:65:1: + X_FSTDIO = 0 // _stdio.h:83:1: + X_INT16_T = 0 // _int16_t.h:29:1: + X_INT32_T = 0 // _int32_t.h:29:1: + X_INT64_T = 0 // _int64_t.h:29:1: + X_INT8_T = 0 // _int8_t.h:29:1: + X_INTPTR_T = 0 // _intptr_t.h:29:1: + X_IOFBF = 0 // stdio.h:99:1: + X_IOLBF = 1 // stdio.h:100:1: + X_IONBF = 2 // stdio.h:101:1: + X_LP64 = 1 // <predefined>:1:1: + X_MACHTYPES_H_ = 0 // types.h:67:1: + X_Nonnull = 0 // cdefs.h:243:1: + X_Null_unspecified = 0 // cdefs.h:246:1: + X_Nullable = 0 // cdefs.h:240:1: + X_OFF_T = 0 // _off_t.h:29:1: + X_SECURE__COMMON_H_ = 0 // _common.h:25:1: + X_SECURE__STDIO_H_ = 0 // _stdio.h:29:1: + X_SIZE_T = 0 // _size_t.h:29:1: + X_SSIZE_T = 0 // _ssize_t.h:29:1: + X_STDIO_H_ = 0 // stdio.h:62:1: + X_SYS_STDIO_H_ = 0 // stdio.h:30:1: + X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1: + X_SYS__TYPES_H_ = 0 // _types.h:30:1: + X_UINTPTR_T = 0 // _uintptr_t.h:29:1: + X_USE_FORTIFY_LEVEL = 2 // _common.h:30:1: + X_U_INT16_T = 0 // _u_int16_t.h:29:1: + X_U_INT32_T = 0 // _u_int32_t.h:29:1: + X_U_INT64_T = 0 // _u_int64_t.h:29:1: + X_U_INT8_T = 0 // _u_int8_t.h:29:1: + X_VA_LIST_T = 0 // _va_list.h:30: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 X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + +// Copyright (c) 2000, 2005, 2007, 2009, 2010 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@ +// - +// 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. 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. +// +// @(#)stdio.h 8.5 (Berkeley) 4/29/95 + +// Copyright (c) 2000, 2005, 2007, 2009, 2010 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@ +// - +// 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. 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. +// +// @(#)stdio.h 8.5 (Berkeley) 4/29/95 + +// Common header for stdio.h and xlocale/_stdio.h + +// 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 + +// 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. + +// 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. + +// __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. + +// __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 of variable. + +// 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 +// #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit) + +// 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) 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 + +// 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) 2004, 2008, 2009 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@ + +// 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) 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 + +// 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) 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@ + +// This header file contains integer types. It's intended to also contain +// flotaing point and other arithmetic types, as needed, later. + +type X__int8_t = int8 /* _types.h:37:33 */ +type X__uint8_t = uint8 /* _types.h:41:33 */ +type X__int16_t = int16 /* _types.h:42:33 */ +type X__uint16_t = uint16 /* _types.h:43:33 */ +type X__int32_t = int32 /* _types.h:44:33 */ +type X__uint32_t = uint32 /* _types.h:45:33 */ +type X__int64_t = int64 /* _types.h:46:33 */ +type X__uint64_t = uint64 /* _types.h:47:33 */ + +type X__darwin_intptr_t = int64 /* _types.h:49:33 */ +type X__darwin_natural_t = uint32 /* _types.h:50:33 */ + +// The rune type below 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 __darwin_ct_rune_t instead of int. By changing it +// here, you lose a bit of ANSI conformance, but your programs will still +// work. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and +// rune_t must be the same type. Also wint_t must be no narrower than +// wchar_t, and should also be able to hold all members of the largest +// character set plus one extra value (WEOF). wint_t must be at least 16 bits. + +type X__darwin_ct_rune_t = int32 /* _types.h:70:33 */ // ct_rune_t + +// 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:79:3 */ + +type X__darwin_mbstate_t = X__mbstate_t /* _types.h:81:33 */ // mbstate_t + +type X__darwin_ptrdiff_t = int64 /* _types.h:84:33 */ // ptr1 - ptr2 + +type X__darwin_size_t = uint64 /* _types.h:92:33 */ // sizeof() + +type X__darwin_va_list = X__builtin_va_list /* _types.h:98:33 */ // va_list + +type X__darwin_wchar_t = int32 /* _types.h:104:33 */ // wchar_t + +type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:109:33 */ // rune_t + +type X__darwin_wint_t = int32 /* _types.h:112:33 */ // wint_t + +type X__darwin_clock_t = uint64 /* _types.h:117:33 */ // clock() +type X__darwin_socklen_t = X__uint32_t /* _types.h:118:33 */ // socklen_t (duh) +type X__darwin_ssize_t = int64 /* _types.h:119:33 */ // byte count or error +type X__darwin_time_t = int64 /* _types.h:120: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_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@ +// +// 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 + +// 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-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 X__darwin_nl_item = int32 /* _types.h:40:14 */ +type X__darwin_wctrans_t = int32 /* _types.h:41:14 */ +type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ + +// DO NOT REMOVE THIS COMMENT: fixincludes needs to see: +// __gnuc_va_list and include <stdarg.h> +// 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) 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-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 + +// 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 + +// 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@ +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. +// +// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int32_t = int32 /* _int32_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 Int64_t = int64 /* _int64_t.h:30:33 */ + +// 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. +// +// 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 U_int8_t = uint8 /* _u_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 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. +// +// 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 U_int32_t = uint32 /* _u_int32_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 U_int64_t = uint64 /* _u_int64_t.h:30:33 */ + +type Register_t = Int64_t /* types.h:87: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@ +// 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 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@ +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 */ +type User_size_t = U_int64_t /* types.h:98:33 */ +type User_ssize_t = Int64_t /* types.h:99:33 */ +type User_long_t = Int64_t /* types.h:100:33 */ +type User_ulong_t = U_int64_t /* types.h:101:33 */ +type User_time_t = Int64_t /* types.h:102:33 */ +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 Va_list = X__darwin_va_list /* _va_list.h:32:26 */ + +type Fpos_t = X__darwin_off_t /* _stdio.h:81:25 */ + +// 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:92: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. +// +// NB: see WARNING above before changing the layout of this structure! +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_ub struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte + } + F_extra 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:126: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. +// +// NB: see WARNING above before changing the layout of this structure! +type FILE = X__sFILE /* _stdio.h:157:3 */ + +// Additional functionality provided by: +// POSIX.1-2001 +// ISO C99 + +// 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-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 Off_t = X__darwin_off_t /* _off_t.h:31:33 */ + +// Additional functionality provided by: +// POSIX.1-2008 + +// 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 Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go new file mode 100644 index 0000000..f0896f0 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_darwin_arm64.go @@ -0,0 +1,1944 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_darwin_arm64.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 // stdio.h:103:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 1024 // stdio.h:108:1: + FOPEN_MAX = 20 // stdio.h:107:1: + L_ctermid = 1024 // stdio.h:202:1: + L_tmpnam = 1024 // stdio.h:114:1: + MAC_OS_VERSION_11_0 = 110000 // AvailabilityVersions.h:238:1: + MAC_OS_VERSION_12_0 = 120000 // AvailabilityVersions.h:239:1: + MAC_OS_X_VERSION_10_0 = 1000 // AvailabilityVersions.h:206:1: + MAC_OS_X_VERSION_10_1 = 1010 // AvailabilityVersions.h:207:1: + MAC_OS_X_VERSION_10_10 = 101000 // AvailabilityVersions.h:216:1: + MAC_OS_X_VERSION_10_10_2 = 101002 // AvailabilityVersions.h:217:1: + MAC_OS_X_VERSION_10_10_3 = 101003 // AvailabilityVersions.h:218:1: + MAC_OS_X_VERSION_10_11 = 101100 // AvailabilityVersions.h:219:1: + MAC_OS_X_VERSION_10_11_2 = 101102 // AvailabilityVersions.h:220:1: + MAC_OS_X_VERSION_10_11_3 = 101103 // AvailabilityVersions.h:221:1: + MAC_OS_X_VERSION_10_11_4 = 101104 // AvailabilityVersions.h:222:1: + MAC_OS_X_VERSION_10_12 = 101200 // AvailabilityVersions.h:223:1: + MAC_OS_X_VERSION_10_12_1 = 101201 // AvailabilityVersions.h:224:1: + MAC_OS_X_VERSION_10_12_2 = 101202 // AvailabilityVersions.h:225:1: + MAC_OS_X_VERSION_10_12_4 = 101204 // AvailabilityVersions.h:226:1: + MAC_OS_X_VERSION_10_13 = 101300 // AvailabilityVersions.h:227:1: + MAC_OS_X_VERSION_10_13_1 = 101301 // AvailabilityVersions.h:228:1: + MAC_OS_X_VERSION_10_13_2 = 101302 // AvailabilityVersions.h:229:1: + MAC_OS_X_VERSION_10_13_4 = 101304 // AvailabilityVersions.h:230:1: + MAC_OS_X_VERSION_10_14 = 101400 // AvailabilityVersions.h:231:1: + MAC_OS_X_VERSION_10_14_1 = 101401 // AvailabilityVersions.h:232:1: + MAC_OS_X_VERSION_10_14_4 = 101404 // AvailabilityVersions.h:233:1: + MAC_OS_X_VERSION_10_14_6 = 101406 // AvailabilityVersions.h:234:1: + MAC_OS_X_VERSION_10_15 = 101500 // AvailabilityVersions.h:235:1: + MAC_OS_X_VERSION_10_15_1 = 101501 // AvailabilityVersions.h:236:1: + MAC_OS_X_VERSION_10_16 = 101600 // AvailabilityVersions.h:237:1: + MAC_OS_X_VERSION_10_2 = 1020 // AvailabilityVersions.h:208:1: + MAC_OS_X_VERSION_10_3 = 1030 // AvailabilityVersions.h:209:1: + MAC_OS_X_VERSION_10_4 = 1040 // AvailabilityVersions.h:210:1: + MAC_OS_X_VERSION_10_5 = 1050 // AvailabilityVersions.h:211:1: + MAC_OS_X_VERSION_10_6 = 1060 // AvailabilityVersions.h:212:1: + MAC_OS_X_VERSION_10_7 = 1070 // AvailabilityVersions.h:213:1: + MAC_OS_X_VERSION_10_8 = 1080 // AvailabilityVersions.h:214:1: + MAC_OS_X_VERSION_10_9 = 1090 // AvailabilityVersions.h:215:1: + P_tmpdir = "/var/tmp/" // stdio.h:112:1: + RENAME_EXCL = 0x00000004 // stdio.h:37:1: + RENAME_NOFOLLOW_ANY = 0x00000010 // stdio.h:39:1: + RENAME_RESERVED1 = 0x00000008 // stdio.h:38:1: + RENAME_SECLUDE = 0x00000001 // stdio.h:35:1: + RENAME_SWAP = 0x00000002 // stdio.h:36:1: + SEEK_CUR = 1 // stdio.h:121:1: + SEEK_END = 2 // stdio.h:124:1: + SEEK_SET = 0 // stdio.h:118:1: + TMP_MAX = 308915776 // stdio.h:115:1: + X_ARM_MACHTYPES_H_ = 0 // types.h:43:1: + X_BSD_ARM__TYPES_H_ = 0 // _types.h:5:1: + X_BSD_MACHINE_TYPES_H_ = 0 // types.h:32:1: + X_BSD_MACHINE__TYPES_H_ = 0 // _types.h:29:1: + X_CDEFS_H_ = 0 // cdefs.h:68:1: + X_CTERMID_H_ = 0 // _ctermid.h:25:1: + X_DARWIN_FEATURE_64_BIT_INODE = 1 // cdefs.h:774:1: + X_DARWIN_FEATURE_ONLY_64_BIT_INODE = 1 // cdefs.h:784:1: + X_DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1 // cdefs.h:800:1: + X_DARWIN_FEATURE_ONLY_VERS_1050 = 1 // cdefs.h:792:1: + X_DARWIN_FEATURE_UNIX_CONFORMANCE = 3 // cdefs.h:808:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FORTIFY_SOURCE = 2 // _types.h:65:1: + X_FSTDIO = 0 // _stdio.h:83:1: + X_INT16_T = 0 // _int16_t.h:29:1: + X_INT32_T = 0 // _int32_t.h:29:1: + X_INT64_T = 0 // _int64_t.h:29:1: + X_INT8_T = 0 // _int8_t.h:29:1: + X_INTPTR_T = 0 // _intptr_t.h:29:1: + X_IOFBF = 0 // stdio.h:99:1: + X_IOLBF = 1 // stdio.h:100:1: + X_IONBF = 2 // stdio.h:101:1: + X_LP64 = 1 // <predefined>:1:1: + X_MACHTYPES_H_ = 0 // types.h:44:1: + X_Nonnull = 0 // cdefs.h:268:1: + X_Null_unspecified = 0 // cdefs.h:271:1: + X_Nullable = 0 // cdefs.h:265:1: + X_OFF_T = 0 // _off_t.h:29:1: + X_SECURE__COMMON_H_ = 0 // _common.h:25:1: + X_SECURE__STDIO_H_ = 0 // _stdio.h:29:1: + X_SIZE_T = 0 // _size_t.h:29:1: + X_SSIZE_T = 0 // _ssize_t.h:29:1: + X_STDIO_H_ = 0 // stdio.h:62:1: + X_SYS_STDIO_H_ = 0 // stdio.h:30:1: + X_SYS__PTHREAD_TYPES_H_ = 0 // _pthread_types.h:30:1: + X_SYS__TYPES_H_ = 0 // _types.h:30:1: + X_UINTPTR_T = 0 // _uintptr_t.h:29:1: + X_USE_FORTIFY_LEVEL = 2 // _common.h:30:1: + X_U_INT16_T = 0 // _u_int16_t.h:29:1: + X_U_INT32_T = 0 // _u_int32_t.h:29:1: + X_U_INT64_T = 0 // _u_int64_t.h:29:1: + X_U_INT8_T = 0 // _u_int8_t.h:29:1: + X_VA_LIST_T = 0 // _va_list.h:30: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 X__darwin_check_fd_set_overflow uintptr /* <builtin>:146:5: */ + +// Copyright (c) 2000, 2005, 2007, 2009, 2010 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@ +// - +// 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. 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. +// +// @(#)stdio.h 8.5 (Berkeley) 4/29/95 + +// Copyright (c) 2000, 2005, 2007, 2009, 2010 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@ +// - +// 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. 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. +// +// @(#)stdio.h 8.5 (Berkeley) 4/29/95 + +// Common header for stdio.h and xlocale/_stdio.h + +// 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 + +// 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. + +// 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). +// +// __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. + +// We intentionally define to nothing pointer attributes which do not have an +// impact on the ABI. __indexable and __bidi_indexable are not defined because +// of the ABI incompatibility that makes the diagnostic preferable. + +// Similarly, we intentionally define to nothing the +// __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable +// macros because they do not lead to an ABI incompatibility. However, we do not +// define the indexable and unsafe_indexable ones because the diagnostic is +// better than the silent ABI break. + +// __unsafe_forge intrinsics are defined as regular C casts. + +// decay operates normally; attribute is meaningless without pointer checks. + +// 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) 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 + +// 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) 2004, 2008, 2009 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@ + +// 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) 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 + +// 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) 2000-2007 Apple Inc. All rights reserved. + +// This header file contains integer types. It's intended to also contain +// flotaing point and other arithmetic types, as needed, later. + +type X__int8_t = int8 /* _types.h:15:33 */ +type X__uint8_t = uint8 /* _types.h:19:33 */ +type X__int16_t = int16 /* _types.h:20:33 */ +type X__uint16_t = uint16 /* _types.h:21:33 */ +type X__int32_t = int32 /* _types.h:22:33 */ +type X__uint32_t = uint32 /* _types.h:23:33 */ +type X__int64_t = int64 /* _types.h:24:33 */ +type X__uint64_t = uint64 /* _types.h:25:33 */ + +type X__darwin_intptr_t = int64 /* _types.h:27:33 */ +type X__darwin_natural_t = uint32 /* _types.h:28:33 */ + +// The rune type below 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 __darwin_ct_rune_t instead of int. By changing it +// here, you lose a bit of ANSI conformance, but your programs will still +// work. +// +// NOTE: rune_t is not covered by ANSI nor other standards, and should not +// be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and +// rune_t must be the same type. Also wint_t must be no narrower than +// wchar_t, and should also be able to hold all members of the largest +// character set plus one extra value (WEOF). wint_t must be at least 16 bits. + +type X__darwin_ct_rune_t = int32 /* _types.h:48:33 */ // ct_rune_t + +// 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:57:3 */ + +type X__darwin_mbstate_t = X__mbstate_t /* _types.h:59:33 */ // mbstate_t + +type X__darwin_ptrdiff_t = int64 /* _types.h:62:33 */ // ptr1 - ptr2 + +type X__darwin_size_t = uint64 /* _types.h:70:33 */ // sizeof() + +type X__darwin_va_list = X__builtin_va_list /* _types.h:76:33 */ // va_list + +type X__darwin_wchar_t = int32 /* _types.h:82:33 */ // wchar_t + +type X__darwin_rune_t = X__darwin_wchar_t /* _types.h:87:33 */ // rune_t + +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_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@ +// +// 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 + +// 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-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 X__darwin_nl_item = int32 /* _types.h:40:14 */ +type X__darwin_wctrans_t = int32 /* _types.h:41:14 */ +type X__darwin_wctype_t = X__uint32_t /* _types.h:43:20 */ + +// DO NOT REMOVE THIS COMMENT: fixincludes needs to see: +// __gnuc_va_list and include <stdarg.h> +// 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) 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-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 + +// Copyright (c) 2000-2007 Apple Inc. All rights reserved. +// 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 + +// 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@ +type Int8_t = int8 /* _int8_t.h:30:31 */ +// 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. +// +// @APPLE_OSREFERENCE_LICENSE_HEADER_END@ +type Int32_t = int32 /* _int32_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 Int64_t = int64 /* _int64_t.h:30:33 */ + +// 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. +// +// 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 U_int8_t = uint8 /* _u_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 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. +// +// 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 U_int32_t = uint32 /* _u_int32_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 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. +// +// @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 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@ + +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 */ + +type Va_list = X__darwin_va_list /* _va_list.h:32:26 */ + +type Fpos_t = X__darwin_off_t /* _stdio.h:81:25 */ + +// 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:92: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. +// +// NB: see WARNING above before changing the layout of this structure! +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_ub struct { + F_base uintptr + F_size int32 + F__ccgo_pad1 [4]byte + } + F_extra 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:126: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. +// +// NB: see WARNING above before changing the layout of this structure! +type FILE = X__sFILE /* _stdio.h:157:3 */ + +// Additional functionality provided by: +// POSIX.1-2001 +// ISO C99 + +// 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-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 Off_t = X__darwin_off_t /* _off_t.h:31:33 */ + +// Additional functionality provided by: +// POSIX.1-2008 + +// 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 Ssize_t = X__darwin_ssize_t /* _ssize_t.h:31:33 */ + +var _ int8 /* gen.c:2:13: */ 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 0000000..1a99d39 --- /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 -ignore-unsupported-alignment -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 // stdio.h:209:1: + EOF = -1 // stdio.h:210:1: + FILENAME_MAX = 1024 // stdio.h:221:1: + FOPEN_MAX = 20 // stdio.h:219:1: + L_ctermid = 1024 // stdio.h:319:1: + L_cuserid = 17 // stdio.h:315:1: + L_tmpnam = 1024 // stdio.h:227:1: + P_tmpdir = "/tmp/" // stdio.h:225:1: + SEEK_CUR = 1 // stdio.h:234:1: + SEEK_END = 2 // stdio.h:237:1: + SEEK_SET = 0 // stdio.h:231:1: + TMP_MAX = 308915776 // stdio.h:228:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:82:1: + X_FTRUNCATE_DECLARED = 0 // stdio.h:435:1: + X_ILP32 = 1 // <predefined>:1:1: + X_IOFBF = 0 // stdio.h:205:1: + X_IOLBF = 1 // stdio.h:206:1: + X_IONBF = 2 // stdio.h:207:1: + X_LSEEK_DECLARED = 0 // stdio.h:439:1: + X_MACHINE__LIMITS_H_ = 0 // _limits.h:36:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:42:1: + X_MMAP_DECLARED = 0 // stdio.h:443:1: + X_Nonnull = 0 // cdefs.h:790:1: + X_Null_unspecified = 0 // cdefs.h:792:1: + X_Nullable = 0 // cdefs.h:791:1: + X_OFF64_T_DECLARED = 0 // stdio.h:71:1: + X_OFF_T_DECLARED = 0 // stdio.h:61:1: + X_RSIZE_T_DEFINED = 0 // stdio.h:55:1: + X_SIZE_T_DECLARED = 0 // stdio.h:51:1: + X_SSIZE_T_DECLARED = 0 // stdio.h:65:1: + X_STDFILE_DECLARED = 0 // stdio.h:164:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_STDSTREAM_DECLARED = 0 // stdio.h:173:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS__TYPES_H_ = 0 // _types.h:32:1: + X_TRUNCATE_DECLARED = 0 // stdio.h:447:1: + X_VA_LIST_DECLARED = 0 // stdio.h:78:1: + I386 = 1 // <predefined>:335:1: + Unix = 1 // <predefined>:336: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_freebsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go new file mode 100644 index 0000000..b51156e --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_amd64.go @@ -0,0 +1,762 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_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 ( + BUFSIZ = 1024 // stdio.h:209:1: + EOF = -1 // stdio.h:210:1: + FILENAME_MAX = 1024 // stdio.h:221:1: + FOPEN_MAX = 20 // stdio.h:219:1: + L_ctermid = 1024 // stdio.h:319:1: + L_cuserid = 17 // stdio.h:315:1: + L_tmpnam = 1024 // stdio.h:227:1: + P_tmpdir = "/tmp/" // stdio.h:225:1: + SEEK_CUR = 1 // stdio.h:234:1: + SEEK_END = 2 // stdio.h:237:1: + SEEK_SET = 0 // stdio.h:231:1: + TMP_MAX = 308915776 // stdio.h:228:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:82:1: + X_FTRUNCATE_DECLARED = 0 // stdio.h:435:1: + X_IOFBF = 0 // stdio.h:205:1: + X_IOLBF = 1 // stdio.h:206:1: + X_IONBF = 2 // stdio.h:207:1: + X_LP64 = 1 // <predefined>:1:1: + X_LSEEK_DECLARED = 0 // stdio.h:439:1: + X_MACHINE__LIMITS_H_ = 0 // _limits.h:36:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:42:1: + X_MMAP_DECLARED = 0 // stdio.h:443:1: + X_Nonnull = 0 // cdefs.h:790:1: + X_Null_unspecified = 0 // cdefs.h:792:1: + X_Nullable = 0 // cdefs.h:791:1: + X_OFF64_T_DECLARED = 0 // stdio.h:71:1: + X_OFF_T_DECLARED = 0 // stdio.h:61:1: + X_RSIZE_T_DEFINED = 0 // stdio.h:55:1: + X_SIZE_T_DECLARED = 0 // stdio.h:51:1: + X_SSIZE_T_DECLARED = 0 // stdio.h:65:1: + X_STDFILE_DECLARED = 0 // stdio.h:164:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_STDSTREAM_DECLARED = 0 // stdio.h:173:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS__TYPES_H_ = 0 // _types.h:32:1: + X_TRUNCATE_DECLARED = 0 // stdio.h:447:1: + X_VA_LIST_DECLARED = 0 // stdio.h:78:1: + Unix = 1 // <predefined>:340: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 */ + +// - +// 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 + +// 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 */ // 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 + F__ccgo_pad1 [4]byte +} /* 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__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_ub 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 + F_fl_mutex uintptr + F_fl_owner uintptr + F_fl_count int32 + F_orientation int32 + F_mbstate X__mbstate_t + F_flags2 int32 + F__ccgo_pad4 [4]byte +} /* 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_freebsd_arm.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_arm.go new file mode 100644 index 0000000..b9e8810 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_arm.go @@ -0,0 +1,696 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_arm.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 // stdio.h:209:1: + EOF = -1 // stdio.h:210:1: + FILENAME_MAX = 1024 // stdio.h:221:1: + FOPEN_MAX = 20 // stdio.h:219:1: + L_ctermid = 1024 // stdio.h:319:1: + L_cuserid = 17 // stdio.h:315:1: + L_tmpnam = 1024 // stdio.h:227:1: + P_tmpdir = "/tmp/" // stdio.h:225:1: + SEEK_CUR = 1 // stdio.h:234:1: + SEEK_END = 2 // stdio.h:237:1: + SEEK_SET = 0 // stdio.h:231:1: + TMP_MAX = 308915776 // stdio.h:228:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:82:1: + X_FTRUNCATE_DECLARED = 0 // stdio.h:435:1: + X_ILP32 = 1 // <predefined>:1:1: + X_IOFBF = 0 // stdio.h:205:1: + X_IOLBF = 1 // stdio.h:206:1: + X_IONBF = 2 // stdio.h:207:1: + X_LSEEK_DECLARED = 0 // stdio.h:439:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:42:1: + X_MMAP_DECLARED = 0 // stdio.h:443:1: + X_Nonnull = 0 // cdefs.h:790:1: + X_Null_unspecified = 0 // cdefs.h:792:1: + X_Nullable = 0 // cdefs.h:791:1: + X_OFF64_T_DECLARED = 0 // stdio.h:71:1: + X_OFF_T_DECLARED = 0 // stdio.h:61:1: + X_RSIZE_T_DEFINED = 0 // stdio.h:55:1: + X_SIZE_T_DECLARED = 0 // stdio.h:51:1: + X_SSIZE_T_DECLARED = 0 // stdio.h:65:1: + X_STDFILE_DECLARED = 0 // stdio.h:164:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_STDSTREAM_DECLARED = 0 // stdio.h:173:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS__TYPES_H_ = 0 // _types.h:32:1: + X_TRUNCATE_DECLARED = 0 // stdio.h:447:1: + X_VA_LIST_DECLARED = 0 // stdio.h:78:1: + Unix = 1 // <predefined>:367:1: +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = uint32 /* <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$ + +// - +// 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$ + +// Basic types upon which most other types are built. +type X__int8_t = int8 /* _types.h:51:22 */ +type X__uint8_t = uint8 /* _types.h:52:24 */ +type X__int16_t = int16 /* _types.h:53:17 */ +type X__uint16_t = uint16 /* _types.h:54:25 */ +type X__int32_t = int32 /* _types.h:55:15 */ +type X__uint32_t = uint32 /* _types.h:56:23 */ + +// LONGLONG +type X__int64_t = int64 /* _types.h:61:20 */ + +// LONGLONG +type X__uint64_t = uint64 /* _types.h:66:28 */ + +// Standard type definitions. +type X__clock_t = X__uint32_t /* _types.h:71:20 */ // clock()... +type X__critical_t = X__int32_t /* _types.h:72:19 */ +type X__double_t = float64 /* _types.h:74:17 */ +type X__float_t = float32 /* _types.h:75:16 */ +type X__intfptr_t = X__int32_t /* _types.h:77:19 */ +type X__intmax_t = X__int64_t /* _types.h:78:19 */ +type X__intptr_t = X__int32_t /* _types.h:79:19 */ +type X__int_fast8_t = X__int32_t /* _types.h:80:19 */ +type X__int_fast16_t = X__int32_t /* _types.h:81:19 */ +type X__int_fast32_t = X__int32_t /* _types.h:82:19 */ +type X__int_fast64_t = X__int64_t /* _types.h:83:19 */ +type X__int_least8_t = X__int8_t /* _types.h:84:18 */ +type X__int_least16_t = X__int16_t /* _types.h:85:19 */ +type X__int_least32_t = X__int32_t /* _types.h:86:19 */ +type X__int_least64_t = X__int64_t /* _types.h:87:19 */ +type X__ptrdiff_t = X__int32_t /* _types.h:88:19 */ // ptr1 - ptr2 +type X__register_t = X__int32_t /* _types.h:89:19 */ +type X__segsz_t = X__int32_t /* _types.h:90:19 */ // segment size (in pages) +type X__size_t = X__uint32_t /* _types.h:91:20 */ // sizeof() +type X__ssize_t = X__int32_t /* _types.h:92:19 */ // byte count or error +type X__time_t = X__int64_t /* _types.h:93:19 */ // time()... +type X__uintfptr_t = X__uint32_t /* _types.h:94:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:95:20 */ +type X__uintptr_t = X__uint32_t /* _types.h:96:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:97:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:98:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:99:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:100:20 */ +type X__uint_least8_t = X__uint8_t /* _types.h:101:19 */ +type X__uint_least16_t = X__uint16_t /* _types.h:102:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:103:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:104:20 */ +type X__u_register_t = X__uint32_t /* _types.h:105:20 */ +type X__vm_offset_t = X__uint32_t /* _types.h:106:20 */ +type X__vm_paddr_t = X__uint32_t /* _types.h:107:20 */ +type X__vm_size_t = X__uint32_t /* _types.h:108:20 */ + +type X___wchar_t = uint32 /* _types.h:110:22 */ + +// 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]uint64 + F__mbstate8 [128]uint8 +} /* _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 + F__ccgo_pad1 [4]byte +} /* 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 _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_freebsd_arm64.go b/vendor/modernc.org/libc/stdio/stdio_freebsd_arm64.go new file mode 100644 index 0000000..b51156e --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_freebsd_arm64.go @@ -0,0 +1,762 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_freebsd_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 ( + BUFSIZ = 1024 // stdio.h:209:1: + EOF = -1 // stdio.h:210:1: + FILENAME_MAX = 1024 // stdio.h:221:1: + FOPEN_MAX = 20 // stdio.h:219:1: + L_ctermid = 1024 // stdio.h:319:1: + L_cuserid = 17 // stdio.h:315:1: + L_tmpnam = 1024 // stdio.h:227:1: + P_tmpdir = "/tmp/" // stdio.h:225:1: + SEEK_CUR = 1 // stdio.h:234:1: + SEEK_END = 2 // stdio.h:237:1: + SEEK_SET = 0 // stdio.h:231:1: + TMP_MAX = 308915776 // stdio.h:228:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:82:1: + X_FTRUNCATE_DECLARED = 0 // stdio.h:435:1: + X_IOFBF = 0 // stdio.h:205:1: + X_IOLBF = 1 // stdio.h:206:1: + X_IONBF = 2 // stdio.h:207:1: + X_LP64 = 1 // <predefined>:1:1: + X_LSEEK_DECLARED = 0 // stdio.h:439:1: + X_MACHINE__LIMITS_H_ = 0 // _limits.h:36:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:42:1: + X_MMAP_DECLARED = 0 // stdio.h:443:1: + X_Nonnull = 0 // cdefs.h:790:1: + X_Null_unspecified = 0 // cdefs.h:792:1: + X_Nullable = 0 // cdefs.h:791:1: + X_OFF64_T_DECLARED = 0 // stdio.h:71:1: + X_OFF_T_DECLARED = 0 // stdio.h:61:1: + X_RSIZE_T_DEFINED = 0 // stdio.h:55:1: + X_SIZE_T_DECLARED = 0 // stdio.h:51:1: + X_SSIZE_T_DECLARED = 0 // stdio.h:65:1: + X_STDFILE_DECLARED = 0 // stdio.h:164:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_STDSTREAM_DECLARED = 0 // stdio.h:173:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS__TYPES_H_ = 0 // _types.h:32:1: + X_TRUNCATE_DECLARED = 0 // stdio.h:447:1: + X_VA_LIST_DECLARED = 0 // stdio.h:78:1: + Unix = 1 // <predefined>:340: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 */ + +// - +// 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 + +// 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 */ // 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 + F__ccgo_pad1 [4]byte +} /* 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__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_ub 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 + F_fl_mutex uintptr + F_fl_owner uintptr + F_fl_count int32 + F_orientation int32 + F_mbstate X__mbstate_t + F_flags2 int32 + F__ccgo_pad4 [4]byte +} /* 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_illumos_amd64.go b/vendor/modernc.org/libc/stdio/stdio_illumos_amd64.go new file mode 100644 index 0000000..431d9d5 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_illumos_amd64.go @@ -0,0 +1,1020 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_illumos_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 ( + BUFSIZ = 1024 // stdio_iso.h:124:1: + EOF = -1 // stdio_iso.h:152:1: + FILENAME_MAX = 1024 // stdio_iso.h:156:1: + FOPEN_MAX = 20 // stdio_iso.h:155:1: + L_ctermid = 9 // stdio.h:207:1: + L_cuserid = 9 // stdio.h:211:1: + L_tmpnam = 25 // stdio_iso.h:163:1: + P_tmpdir = "/var/tmp/" // stdio.h:220:1: + SEEK_CUR = 1 // stdio_iso.h:159:1: + SEEK_END = 2 // stdio_iso.h:160:1: + SEEK_SET = 0 // stdio_iso.h:158:1: + TMP_MAX = 17576 // stdio_iso.h:161:1: + X_ALIGNMENT_REQUIRED = 1 // isa_defs.h:262:1: + X_BIT_FIELDS_LTOH = 0 // isa_defs.h:245:1: + X_BOOL_ALIGNMENT = 1 // isa_defs.h:248:1: + X_CHAR_ALIGNMENT = 1 // isa_defs.h:249:1: + X_CHAR_IS_SIGNED = 0 // isa_defs.h:247:1: + X_DMA_USES_PHYSADDR = 0 // isa_defs.h:281:1: + X_DONT_USE_1275_GENERIC_NAMES = 0 // isa_defs.h:287:1: + X_DOUBLE_ALIGNMENT = 8 // isa_defs.h:256:1: + X_DOUBLE_COMPLEX_ALIGNMENT = 8 // isa_defs.h:257:1: + X_DTRACE_VERSION = 1 // feature_tests.h:490:1: + X_FILEDEFED = 0 // stdio_iso.h:101:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FIRMWARE_NEEDS_FDISK = 0 // isa_defs.h:282:1: + X_FLOAT_ALIGNMENT = 4 // isa_defs.h:252:1: + X_FLOAT_COMPLEX_ALIGNMENT = 4 // isa_defs.h:253:1: + X_HAVE_CPUID_INSN = 0 // isa_defs.h:288:1: + X_IEEE_754 = 0 // isa_defs.h:246:1: + X_INT_ALIGNMENT = 4 // isa_defs.h:251:1: + X_IOEOF = 0020 // stdio_iso.h:143:1: + X_IOERR = 0040 // stdio_iso.h:144:1: + X_IOFBF = 0000 // stdio_iso.h:140:1: + X_IOLBF = 0100 // stdio_iso.h:141:1: + X_IOMYBUF = 0010 // stdio_iso.h:149:1: + X_IONBF = 0004 // stdio_iso.h:142:1: + X_IOREAD = 0001 // stdio_iso.h:146:1: + X_IORW = 0200 // stdio_iso.h:148:1: + X_IOWRT = 0002 // stdio_iso.h:147:1: + X_ISO_CPP_14882_1998 = 0 // feature_tests.h:466:1: + X_ISO_C_9899_1999 = 0 // feature_tests.h:472:1: + X_ISO_C_9899_2011 = 0 // feature_tests.h:478:1: + X_ISO_STDIO_C99_H = 0 // stdio_c99.h:41:1: + X_ISO_STDIO_ISO_H = 0 // stdio_iso.h:59:1: + X_LARGEFILE64_SOURCE = 1 // feature_tests.h:231:1: + X_LARGEFILE_SOURCE = 1 // feature_tests.h:235:1: + X_LITTLE_ENDIAN = 0 // isa_defs.h:242:1: + X_LONGLONG_TYPE = 0 // feature_tests.h:412:1: + X_LONG_ALIGNMENT = 8 // isa_defs.h:254:1: + X_LONG_DOUBLE_ALIGNMENT = 16 // isa_defs.h:258:1: + X_LONG_DOUBLE_COMPLEX_ALIGNMENT = 16 // isa_defs.h:259:1: + X_LONG_LONG_ALIGNMENT = 8 // isa_defs.h:255:1: + X_LONG_LONG_ALIGNMENT_32 = 4 // isa_defs.h:268:1: + X_LONG_LONG_LTOH = 0 // isa_defs.h:244:1: + X_LP64 = 1 // <predefined>:286:1: + X_MAX_ALIGNMENT = 16 // isa_defs.h:261:1: + X_MULTI_DATAMODEL = 0 // isa_defs.h:279:1: + X_NFILE = 20 // stdio_iso.h:135:1: + X_NORETURN_KYWD = 0 // feature_tests.h:448:1: + X_OFF_T = 0 // stdio.h:170:1: + X_POINTER_ALIGNMENT = 8 // isa_defs.h:260:1: + X_PSM_MODULES = 0 // isa_defs.h:284:1: + X_RESTRICT_KYWD = 0 // feature_tests.h:435:1: + X_RTC_CONFIG = 0 // isa_defs.h:285:1: + X_SBFSIZ = 8 // stdio_iso.h:138:1: + X_SHORT_ALIGNMENT = 2 // isa_defs.h:250:1: + X_SIZE_T = 0 // stdio_iso.h:106:1: + X_SOFT_HOSTID = 0 // isa_defs.h:286:1: + X_SSIZE_T = 0 // stdio.h:268:1: + X_STACK_GROWS_DOWNWARD = 0 // isa_defs.h:243:1: + X_STDC_C11 = 0 // feature_tests.h:165:1: + X_STDC_C99 = 0 // feature_tests.h:169:1: + X_STDIO_H = 0 // stdio.h:44:1: + X_STDIO_IMPL_H = 0 // stdio_impl.h:28:1: + X_STDIO_TAG_H = 0 // stdio_tag.h:28:1: + X_SUNOS_VTOC_16 = 0 // isa_defs.h:280:1: + X_SYS_CCOMPILE_H = 0 // ccompile.h:32:1: + X_SYS_FEATURE_TESTS_H = 0 // feature_tests.h:41:1: + X_SYS_ISA_DEFS_H = 0 // isa_defs.h:30:1: + X_SYS_NULL_H = 0 // null.h:17:1: + X_SYS_VA_LIST_H = 0 // va_list.h:34:1: + X_XOPEN_VERSION = 3 // feature_tests.h:392:1: + Sun = 1 // <predefined>:172:1: + Unix = 1 // <predefined>:175: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 */ + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/stdio.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2014 Garrett D'Amore <garrett@damore.org> +// Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. + +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// User-visible pieces of the ANSI C standard I/O package. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore <garrett@damore.org> +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2015 EveryCity Ltd. All rights reserved. +// Copyright 2019 Joyent, Inc. + +// This file contains definitions designed to enable different compilers +// to be used harmoniously on Solaris systems. + +// Allow for version tests for compiler bugs and features. + +// analogous to lint's PRINTFLIKEn + +// Handle the kernel printf routines that can take '%b' too + +// This one's pretty obvious -- the function never returns + +// The function is 'extern inline' and expects GNU C89 behaviour, not C99 +// behaviour. +// +// Should only be used on 'extern inline' definitions for GCC. + +// The function has control flow such that it may return multiple times (in +// the manner of setjmp or vfork) + +// This is an appropriate label for functions that do not +// modify their arguments, e.g. strlen() + +// This is a stronger form of __pure__. Can be used for functions +// that do not modify their arguments and don't depend on global +// memory. + +// This attribute, attached to a variable, means that the variable is meant to +// be possibly unused. GCC will not produce a warning for this variable. + +// Shorthand versions for readability + +// In release build, disable warnings about variables +// which are used only for debugging. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2008 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2016 Joyent, Inc. + +// This header file serves to group a set of well known defines and to +// set these for each instruction set architecture. These defines may +// be divided into two groups; characteristics of the processor and +// implementation choices for Solaris on a processor. +// +// Processor Characteristics: +// +// _LITTLE_ENDIAN / _BIG_ENDIAN: +// The natural byte order of the processor. A pointer to an int points +// to the least/most significant byte of that int. +// +// _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: +// The processor specific direction of stack growth. A push onto the +// stack increases/decreases the stack pointer, so it stores data at +// successively higher/lower addresses. (Stackless machines ignored +// without regrets). +// +// _LONG_LONG_HTOL / _LONG_LONG_LTOH: +// A pointer to a long long points to the most/least significant long +// within that long long. +// +// _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: +// The C compiler assigns bit fields from the high/low to the low/high end +// of an int (most to least significant vs. least to most significant). +// +// _IEEE_754: +// The processor (or supported implementations of the processor) +// supports the ieee-754 floating point standard. No other floating +// point standards are supported (or significant). Any other supported +// floating point formats are expected to be cased on the ISA processor +// symbol. +// +// _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: +// The C Compiler implements objects of type `char' as `unsigned' or +// `signed' respectively. This is really an implementation choice of +// the compiler writer, but it is specified in the ABI and tends to +// be uniform across compilers for an instruction set architecture. +// Hence, it has the properties of a processor characteristic. +// +// _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / +// _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / +// _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT: +// The ABI defines alignment requirements of each of the primitive +// object types. Some, if not all, may be hardware requirements as +// well. The values are expressed in "byte-alignment" units. +// +// _MAX_ALIGNMENT: +// The most stringent alignment requirement as specified by the ABI. +// Equal to the maximum of all the above _XXX_ALIGNMENT values. +// +// _MAX_ALIGNMENT_TYPE: +// The name of the C type that has the value descried in _MAX_ALIGNMENT. +// +// _ALIGNMENT_REQUIRED: +// True or false (1 or 0) whether or not the hardware requires the ABI +// alignment. +// +// _LONG_LONG_ALIGNMENT_32 +// The 32-bit ABI supported by a 64-bit kernel may have different +// alignment requirements for primitive object types. The value of this +// identifier is expressed in "byte-alignment" units. +// +// _HAVE_CPUID_INSN +// This indicates that the architecture supports the 'cpuid' +// instruction as defined by Intel. (Intel allows other vendors +// to extend the instruction for their own purposes.) +// +// +// Implementation Choices: +// +// _ILP32 / _LP64: +// This specifies the compiler data type implementation as specified in +// the relevant ABI. The choice between these is strongly influenced +// by the underlying hardware, but is not absolutely tied to it. +// Currently only two data type models are supported: +// +// _ILP32: +// Int/Long/Pointer are 32 bits. This is the historical UNIX +// and Solaris implementation. Due to its historical standing, +// this is the default case. +// +// _LP64: +// Long/Pointer are 64 bits, Int is 32 bits. This is the chosen +// implementation for 64-bit ABIs such as SPARC V9. +// +// _I32LPx: +// A compilation environment where 'int' is 32-bit, and +// longs and pointers are simply the same size. +// +// In all cases, Char is 8 bits and Short is 16 bits. +// +// _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: +// This specifies the form of the disk VTOC (or label): +// +// _SUNOS_VTOC_8: +// This is a VTOC form which is upwardly compatible with the +// SunOS 4.x disk label and allows 8 partitions per disk. +// +// _SUNOS_VTOC_16: +// In this format the incore vtoc image matches the ondisk +// version. It allows 16 slices per disk, and is not +// compatible with the SunOS 4.x disk label. +// +// Note that these are not the only two VTOC forms possible and +// additional forms may be added. One possible form would be the +// SVr4 VTOC form. The symbol for that is reserved now, although +// it is not implemented. +// +// _SVR4_VTOC_16: +// This VTOC form is compatible with the System V Release 4 +// VTOC (as implemented on the SVr4 Intel and 3b ports) with +// 16 partitions per disk. +// +// +// _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR +// This describes the type of addresses used by system DMA: +// +// _DMA_USES_PHYSADDR: +// This type of DMA, used in the x86 implementation, +// requires physical addresses for DMA buffers. The 24-bit +// addresses used by some legacy boards is the source of the +// "low-memory" (<16MB) requirement for some devices using DMA. +// +// _DMA_USES_VIRTADDR: +// This method of DMA allows the use of virtual addresses for +// DMA transfers. +// +// _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT +// This indicates the presence/absence of an fdisk table. +// +// _FIRMWARE_NEEDS_FDISK +// The fdisk table is required by system firmware. If present, +// it allows a disk to be subdivided into multiple fdisk +// partitions, each of which is equivalent to a separate, +// virtual disk. This enables the co-existence of multiple +// operating systems on a shared hard disk. +// +// _NO_FDISK_PRESENT +// If the fdisk table is absent, it is assumed that the entire +// media is allocated for a single operating system. +// +// _HAVE_TEM_FIRMWARE +// Defined if this architecture has the (fallback) option of +// using prom_* calls for doing I/O if a suitable kernel driver +// is not available to do it. +// +// _DONT_USE_1275_GENERIC_NAMES +// Controls whether or not device tree node names should +// comply with the IEEE 1275 "Generic Names" Recommended +// Practice. With _DONT_USE_GENERIC_NAMES, device-specific +// names identifying the particular device will be used. +// +// __i386_COMPAT +// This indicates whether the i386 ABI is supported as a *non-native* +// mode for the platform. When this symbol is defined: +// - 32-bit xstat-style system calls are enabled +// - 32-bit xmknod-style system calls are enabled +// - 32-bit system calls use i386 sizes -and- alignments +// +// Note that this is NOT defined for the i386 native environment! +// +// __x86 +// This is ONLY a synonym for defined(__i386) || defined(__amd64) +// which is useful only insofar as these two architectures share +// common attributes. Analogous to __sparc. +// +// _PSM_MODULES +// This indicates whether or not the implementation uses PSM +// modules for processor support, reading /etc/mach from inside +// the kernel to extract a list. +// +// _RTC_CONFIG +// This indicates whether or not the implementation uses /etc/rtc_config +// to configure the real-time clock in the kernel. +// +// _UNIX_KRTLD +// This indicates that the implementation uses a dynamically +// linked unix + krtld to form the core kernel image at boot +// time, or (in the absence of this symbol) a prelinked kernel image. +// +// _OBP +// This indicates the firmware interface is OBP. +// +// _SOFT_HOSTID +// This indicates that the implementation obtains the hostid +// from the file /etc/hostid, rather than from hardware. + +// The following set of definitions characterize Solaris on AMD's +// 64-bit systems. + +// Define the appropriate "processor characteristics" + +// Different alignment constraints for the i386 ABI in compatibility mode + +// Define the appropriate "implementation choices". + +// The feature test macro __i386 is generic for all processors implementing +// the Intel 386 instruction set or a superset of it. Specifically, this +// includes all members of the 386, 486, and Pentium family of processors. + +// Values of _POSIX_C_SOURCE +// +// undefined not a POSIX compilation +// 1 POSIX.1-1990 compilation +// 2 POSIX.2-1992 compilation +// 199309L POSIX.1b-1993 compilation (Real Time) +// 199506L POSIX.1c-1995 compilation (POSIX Threads) +// 200112L POSIX.1-2001 compilation (Austin Group Revision) +// 200809L POSIX.1-2008 compilation + +// The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, +// and _STDC_C99 are Sun implementation specific macros created in order to +// compress common standards specified feature test macros for easier reading. +// These macros should not be used by the application developer as +// unexpected results may occur. Instead, the user should reference +// standards(7) for correct usage of the standards feature test macros. +// +// __XOPEN_OR_POSIX Used in cases where a symbol is defined by both +// X/Open or POSIX or in the negative, when neither +// X/Open or POSIX defines a symbol. +// +// _STRICT_STDC __STDC__ is specified by the C Standards and defined +// by the compiler. For Sun compilers the value of +// __STDC__ is either 1, 0, or not defined based on the +// compilation mode (see cc(1)). When the value of +// __STDC__ is 1 and in the absence of any other feature +// test macros, the namespace available to the application +// is limited to only those symbols defined by the C +// Standard. _STRICT_STDC provides a more readable means +// of identifying symbols defined by the standard, or in +// the negative, symbols that are extensions to the C +// Standard. See additional comments for GNU C differences. +// +// _STDC_C99 __STDC_VERSION__ is specified by the C standards and +// defined by the compiler and indicates the version of +// the C standard. A value of 199901L indicates a +// compiler that complies with ISO/IEC 9899:1999, other- +// wise known as the C99 standard. +// +// _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__ +// is 201112L indicating a compiler that compiles with +// ISO/IEC 9899:2011, otherwise known as the C11 standard. +// +// _STRICT_SYMBOLS Used in cases where symbol visibility is restricted +// by the standards, and the user has not explicitly +// relaxed the strictness via __EXTENSIONS__. + +// ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC +// 99899:2011 specify the following predefined macro name: +// +// __STDC__ The integer constant 1, intended to indicate a conforming +// implementation. +// +// Furthermore, a strictly conforming program shall use only those features +// of the language and library specified in these standards. A conforming +// implementation shall accept any strictly conforming program. +// +// Based on these requirements, Sun's C compiler defines __STDC__ to 1 for +// strictly conforming environments and __STDC__ to 0 for environments that +// use ANSI C semantics but allow extensions to the C standard. For non-ANSI +// C semantics, Sun's C compiler does not define __STDC__. +// +// The GNU C project interpretation is that __STDC__ should always be defined +// to 1 for compilation modes that accept ANSI C syntax regardless of whether +// or not extensions to the C standard are used. Violations of conforming +// behavior are conditionally flagged as warnings via the use of the +// -pedantic option. In addition to defining __STDC__ to 1, the GNU C +// compiler also defines __STRICT_ANSI__ as a means of specifying strictly +// conforming environments using the -ansi or -std=<standard> options. +// +// In the absence of any other compiler options, Sun and GNU set the value +// of __STDC__ as follows when using the following options: +// +// Value of __STDC__ __STRICT_ANSI__ +// +// cc -Xa (default) 0 undefined +// cc -Xt (transitional) 0 undefined +// cc -Xc (strictly conforming) 1 undefined +// cc -Xs (K&R C) undefined undefined +// +// gcc (default) 1 undefined +// gcc -ansi, -std={c89, c99,...) 1 defined +// gcc -traditional (K&R) undefined undefined +// +// The default compilation modes for Sun C compilers versus GNU C compilers +// results in a differing value for __STDC__ which results in a more +// restricted namespace when using Sun compilers. To allow both GNU and Sun +// interpretations to peacefully co-exist, we use the following Sun +// implementation _STRICT_STDC_ macro: + +// Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011 + +// Use strict symbol visibility. + +// This is a variant of _STRICT_SYMBOLS that is meant to cover headers that are +// governed by POSIX, but have not been governed by ISO C. One can go two ways +// on what should happen if an application actively includes (not transitively) +// a header that isn't part of the ISO C spec, we opt to say that if someone has +// gone out of there way then they're doing it for a reason and that is an act +// of non-compliance and therefore it's not up to us to hide away every symbol. +// +// In general, prefer using _STRICT_SYMBOLS, but this is here in particular for +// cases where in the past we have only used a POSIX related check and we don't +// wish to make something stricter. Often applications are relying on the +// ability to, or more realistically unwittingly, have _STRICT_STDC declared and +// still use these interfaces. + +// Large file interfaces: +// +// _LARGEFILE_SOURCE +// 1 large file-related additions to POSIX +// interfaces requested (fseeko, etc.) +// _LARGEFILE64_SOURCE +// 1 transitional large-file-related interfaces +// requested (seek64, stat64, etc.) +// +// The corresponding announcement macros are respectively: +// _LFS_LARGEFILE +// _LFS64_LARGEFILE +// (These are set in <unistd.h>.) +// +// Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as +// well. +// +// The large file interfaces are made visible regardless of the initial values +// of the feature test macros under certain circumstances: +// - If no explicit standards-conforming environment is requested (neither +// of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of +// __STDC__ does not imply standards conformance). +// - Extended system interfaces are explicitly requested (__EXTENSIONS__ +// is defined). +// - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is +// defined). (Note that this dependency is an artifact of the current +// kernel implementation and may change in future releases.) + +// Large file compilation environment control: +// +// The setting of _FILE_OFFSET_BITS controls the size of various file-related +// types and governs the mapping between file-related source function symbol +// names and the corresponding binary entry points. +// +// In the 32-bit environment, the default value is 32; if not set, set it to +// the default here, to simplify tests in other headers. +// +// In the 64-bit compilation environment, the only value allowed is 64. + +// Use of _XOPEN_SOURCE +// +// The following X/Open specifications are supported: +// +// X/Open Portability Guide, Issue 3 (XPG3) +// X/Open CAE Specification, Issue 4 (XPG4) +// X/Open CAE Specification, Issue 4, Version 2 (XPG4v2) +// X/Open CAE Specification, Issue 5 (XPG5) +// Open Group Technical Standard, Issue 6 (XPG6), also referred to as +// IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. +// Open Group Technical Standard, Issue 7 (XPG7), also referred to as +// IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. +// +// XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). +// XPG5 is also referred to as UNIX 98 or the Single Unix Specification, +// Version 2 (SUSv2) +// XPG6 is the result of a merge of the X/Open and POSIX specifications +// and as such is also referred to as IEEE Std. 1003.1-2001 in +// addition to UNIX 03 and SUSv3. +// XPG7 is also referred to as UNIX 08 and SUSv4. +// +// When writing a conforming X/Open application, as per the specification +// requirements, the appropriate feature test macros must be defined at +// compile time. These are as follows. For more info, see standards(7). +// +// Feature Test Macro Specification +// ------------------------------------------------ ------------- +// _XOPEN_SOURCE XPG3 +// _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 +// _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 +// _XOPEN_SOURCE = 500 XPG5 +// _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 +// _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 +// +// In order to simplify the guards within the headers, the following +// implementation private test macros have been created. Applications +// must NOT use these private test macros as unexpected results will +// occur. +// +// Note that in general, the use of these private macros is cumulative. +// For example, the use of _XPG3 with no other restrictions on the X/Open +// namespace will make the symbols visible for XPG3 through XPG6 +// compilation environments. The use of _XPG4_2 with no other X/Open +// namespace restrictions indicates that the symbols were introduced in +// XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation +// environments, but not for XPG3 or XPG4 compilation environments. +// +// _XPG3 X/Open Portability Guide, Issue 3 (XPG3) +// _XPG4 X/Open CAE Specification, Issue 4 (XPG4) +// _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) +// _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) +// _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) +// _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) + +// X/Open Portability Guide, Issue 3 + +// _XOPEN_VERSION is defined by the X/Open specifications and is not +// normally defined by the application, except in the case of an XPG4 +// application. On the implementation side, _XOPEN_VERSION defined with +// the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined +// with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. +// _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) +// application and with a value of 600 indicates an XPG6 (UNIX 03) +// application and with a value of 700 indicates an XPG7 (UNIX 08). +// The appropriate version is determined by the use of the +// feature test macros described earlier. The value of _XOPEN_VERSION +// defaults to 3 otherwise indicating support for XPG3 applications. + +// ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly +// conforming environments. ISO 9899:1999 says it does. +// +// The presence of _LONGLONG_TYPE says "long long exists" which is therefore +// defined in all but strictly conforming environments that disallow it. + +// The following macro defines a value for the ISO C99 restrict +// keyword so that _RESTRICT_KYWD resolves to "restrict" if +// an ISO C99 compiler is used, "__restrict" for c++ and "" (null string) +// if any other compiler is used. This allows for the use of single +// prototype declarations regardless of compiler version. + +// The following macro defines a value for the ISO C11 _Noreturn +// keyword so that _NORETURN_KYWD resolves to "_Noreturn" if +// an ISO C11 compiler is used and "" (null string) if any other +// compiler is used. This allows for the use of single prototype +// declarations regardless of compiler version. + +// ISO/IEC 9899:2011 Annex K + +// The following macro indicates header support for the ANSI C++ +// standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882. + +// The following macro indicates header support for the C99 standard, +// ISO/IEC 9899:1999, Programming Languages - C. + +// The following macro indicates header support for the C11 standard, +// ISO/IEC 9899:2011, Programming Languages - C. + +// The following macro indicates header support for the C11 standard, +// ISO/IEC 9899:2011 Annex K, Programming Languages - C. + +// The following macro indicates header support for DTrace. The value is an +// integer that corresponds to the major version number for DTrace. + +// Do all of our 'redefine_extname' processing before +// declarations of the associated functions are seen. +// This is necessary to keep gcc happy. + +// large file compilation environment setup + +// In the LP64 compilation environment, all APIs are already large file + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/iso/stdio_iso.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2014 Garrett D'Amore <garrett@damore.org> +// Copyright 2014 PALO, Richard. +// +// Copyright 2005 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// Copyright (c) 1988 AT&T +// All Rights Reserved + +// An application should not include this header directly. Instead it +// should be included only through the inclusion of other Sun headers. +// +// The contents of this header is limited to identifiers specified in the +// C Standard. Any new identifiers specified in future amendments to the +// C Standard must be placed in this header. If these new identifiers +// are required to also be in the C++ Standard "std" namespace, then for +// anything other than macro definitions, corresponding "using" directives +// must also be added to <stdio.h>. + +// User-visible pieces of the ANSI C standard I/O package. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore <garrett@damore.org> +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// This file and its contents are supplied under the terms of the +// Common Development and Distribution License ("CDDL"), version 1.0. +// You may only use this file in accordance with the terms of version +// 1.0 of the CDDL. +// +// A full copy of the text of the CDDL should have accompanied this +// source. A copy of the CDDL is also available via the Internet at +// http://www.illumos.org/license/CDDL. + +// Copyright 2014-2016 PALO, Richard. + +// DO NOT EDIT THIS FILE. +// +// It has been auto-edited by fixincludes from: +// +// "/usr/include/sys/feature_tests.h" +// +// This had to be done to correct non-standard usages in the +// original, manufacturer supplied header file. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2013 Garrett D'Amore <garrett@damore.org> +// Copyright 2016 Joyent, Inc. +// Copyright 2022 Oxide Computer Company +// +// Copyright 2006 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// POSIX.1-2008 requires that the NULL macro be cast to type void *. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T +// All Rights Reserved + +// Copyright 2014 Garrett D'Amore <garrett@damore.org> +// +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +// An application should not include this header directly. Instead it +// should be included only through the inclusion of other Sun headers. +// +// The purpose of this header is to provide the type definitions for +// the va_list argument used by a number of printf and printf like +// functions. The headers that define these various function prototypes +// #include this header directly. These include but are not necessarily +// limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and +// <syslog.h>. The type definitions included in this header are for +// the benefit of consumers of va_list. +// +// Any application that accepts variable argument lists must as documented, +// include either <varargs.h> or the preferred <stdarg.h>. Doing so will +// pull in the appropriate compiler protocols defined in <sys/va_impl.h> +// which is in turn is included by <varargs.h> and <stdarg.h>. See comments +// in <sys/va_impl.h> for more detailed information regarding implementation +// and compiler specific protocols. + +// The common definitions exported by this header or compilers using +// this header are: +// +// the identifier __builtin_va_alist for the variable list pseudo parameter +// the type __va_alist_type for the variable list pseudo parameter +// the type __va_list defining the type of the variable list iterator +// +// The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros +// (__GNUC__) and processor macros (e.g. __amd64) are intended to be +// defined by the compilation system, not the user of the system. + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License (the "License"). +// You may not use this file except in compliance with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END + +// Copyright 2008 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. +// Copyright 2016 Joyent, Inc. + +type X__gnuc_va_list = uintptr /* va_list.h:108:27 */ +// XX64 This seems unnecessary .. but is needed because vcmn_err is +// +// defined with __va_list instead of plain old va_list. +// Perhaps that should be fixed! +type X__va_list = uintptr /* va_list.h:114:27 */ + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +type X__FILE1 = struct{ F__pad [16]int64 } /* stdio_tag.h:40:9 */ + +// CDDL HEADER START +// +// The contents of this file are subject to the terms of the +// Common Development and Distribution License, Version 1.0 only +// (the "License"). You may not use this file except in compliance +// with the License. +// +// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +// or http://www.opensolaris.org/os/licensing. +// See the License for the specific language governing permissions +// and limitations under the License. +// +// When distributing Covered Code, include this CDDL HEADER in each +// file and include the License file at usr/src/OPENSOLARIS.LICENSE. +// If applicable, add the following below this CDDL HEADER, with the +// fields enclosed by brackets "[]" replaced with your own identifying +// information: Portions Copyright [yyyy] [name of copyright owner] +// +// CDDL HEADER END +// Copyright 2004 Sun Microsystems, Inc. All rights reserved. +// Use is subject to license terms. + +type X__FILE = X__FILE1 /* stdio_tag.h:40:27 */ + +// If feature test macros are set that enable interfaces that use types +// defined in <sys/types.h>, get those types by doing the include. +// +// Note that in asking for the interfaces associated with this feature test +// macro one also asks for definitions of the POSIX types. + +type FILE = X__FILE /* stdio_iso.h:102:16 */ // size of something in bytes + +type Fpos_t = int64 /* stdio_iso.h:115:15 */ + +type Off_t = int64 /* stdio.h:172:15 */ +type Off64_t = int64 /* stdio.h:178:16 */ + +type Fpos64_t = int64 /* stdio.h:188:17 */ + +// large file compilation environment setup + +// In the LP64 compilation environment, all APIs are already large file + +type Ssize_t = int64 /* stdio.h:270:14 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_386.go b/vendor/modernc.org/libc/stdio/stdio_linux_386.go new file mode 100644 index 0000000..af4d4c5 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_386.go @@ -0,0 +1,522 @@ +// 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_linux_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 = 8192 + EOF = -1 + FILENAME_MAX = 4096 + FOPEN_MAX = 16 + L_ctermid = 9 + L_tmpnam = 20 + P_tmpdir = "/tmp" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 238328 + X_ATFILE_SOURCE = 1 + X_BITS_STDIO_LIM_H = 1 + X_BITS_TIME64_H = 1 + X_BITS_TYPESIZES_H = 1 + X_BITS_TYPES_H = 1 + X_BSD_SIZE_T_ = 0 + X_BSD_SIZE_T_DEFINED_ = 0 + X_DEFAULT_SOURCE = 1 + X_FEATURES_H = 1 + X_FILE_OFFSET_BITS = 64 + X_GCC_SIZE_T = 0 + X_ILP32 = 1 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_IO_EOF_SEEN = 0x0010 + X_IO_ERR_SEEN = 0x0020 + X_IO_USER_LOCK = 0x8000 + X_POSIX_C_SOURCE = 200809 + X_POSIX_SOURCE = 1 + X_SIZET_ = 0 + X_SIZE_T = 0 + X_SIZE_T_ = 0 + X_SIZE_T_DECLARED = 0 + X_SIZE_T_DEFINED = 0 + X_SIZE_T_DEFINED_ = 0 + X_STDC_PREDEF_H = 1 + X_STDIO_H = 1 + X_SYS_CDEFS_H = 1 + X_SYS_SIZE_T_H = 0 + X_T_SIZE = 0 + X_T_SIZE_ = 0 + X_VA_LIST_DEFINED = 0 + I386 = 1 + Linux = 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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Bit size of the time_t type at glibc build time, x86-64 and x32 case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// For others, time size is word size. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint32 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:47:44 */ +type X__uint64_t = uint64 /* types.h:48:46 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:66:37 */ +type X__u_quad_t = uint64 /* types.h:67:46 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:75:37 */ +type X__uintmax_t = uint64 /* types.h:76:46 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// We want __extension__ before typedef's that use nonstandard base types +// such as `long long' in C89 mode. +// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. +// Copyright (C) 2012-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// X32 kernel interface is 64-bit. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// Define a 64-bit time type alongsize the 32-bit one. + +type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = X__uint64_t /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int32 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int32 /* types.h:179:28 */ +type X__blkcnt64_t = X__int64_t /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint32 /* types.h:183:30 */ +type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint32 /* types.h:187:30 */ +type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int32 /* types.h:191:28 */ + +type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int32 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint32 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int32 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. +type X__time64_t = X__int64_t /* types.h:222:28 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]int8 + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [40]int8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go b/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go new file mode 100644 index 0000000..b11d50c --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_amd64.go @@ -0,0 +1,540 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_linux_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 ( + BUFSIZ = 8192 // stdio.h:99:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 4096 // stdio_lim.h:27:1: + FOPEN_MAX = 16 // stdio_lim.h:37:1: + L_ctermid = 9 // stdio_lim.h:30:1: + L_tmpnam = 20 // stdio_lim.h:25:1: + P_tmpdir = "/tmp" // stdio.h:120:1: + SEEK_CUR = 1 // stdio.h:110:1: + SEEK_END = 2 // stdio.h:111:1: + SEEK_SET = 0 // stdio.h:109:1: + TMP_MAX = 238328 // stdio_lim.h:26:1: + X_ATFILE_SOURCE = 1 // features.h:342:1: + X_BITS_STDIO_LIM_H = 1 // stdio_lim.h:19:1: + X_BITS_TIME64_H = 1 // time64.h:24:1: + X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: + X_BITS_TYPES_H = 1 // types.h:24:1: + X_BSD_SIZE_T_ = 0 // stddef.h:189:1: + X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: + X_DEFAULT_SOURCE = 1 // features.h:227:1: + X_FEATURES_H = 1 // features.h:19:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_GCC_SIZE_T = 0 // stddef.h:195:1: + X_IOFBF = 0 // stdio.h:93:1: + X_IOLBF = 1 // stdio.h:94:1: + X_IONBF = 2 // stdio.h:95:1: + X_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: + X_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: + X_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: + X_LP64 = 1 // <predefined>:284:1: + X_POSIX_C_SOURCE = 200809 // features.h:281:1: + X_POSIX_SOURCE = 1 // features.h:279:1: + X_SIZET_ = 0 // stddef.h:196:1: + X_SIZE_T = 0 // stddef.h:183:1: + X_SIZE_T_ = 0 // stddef.h:188:1: + X_SIZE_T_DECLARED = 0 // stddef.h:193:1: + X_SIZE_T_DEFINED = 0 // stddef.h:191:1: + X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: + X_STDC_PREDEF_H = 1 // <predefined>:162:1: + X_STDIO_H = 1 // stdio.h:24:1: + X_SYS_CDEFS_H = 1 // cdefs.h:19:1: + X_SYS_SIZE_T_H = 0 // stddef.h:184:1: + X_T_SIZE = 0 // stddef.h:186:1: + X_T_SIZE_ = 0 // stddef.h:185:1: + X_VA_LIST_DEFINED = 0 // stdio.h:53:1: + Linux = 1 // <predefined>:231:1: + Unix = 1 // <predefined>:177: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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Both x86-64 and x32 use the 64-bit system call interface. +// Bit size of the time_t type at glibc build time, x86-64 and x32 case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// For others, time size is word size. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. +// Copyright (C) 2012-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// X32 kernel interface is 64-bit. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int64 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:191:28 */ + +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]int8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]int8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_arm.go b/vendor/modernc.org/libc/stdio/stdio_linux_arm.go new file mode 100644 index 0000000..49bf78d --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_arm.go @@ -0,0 +1,551 @@ +// 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_linux_arm.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 = 8192 + EOF = -1 + FILENAME_MAX = 4096 + FOPEN_MAX = 16 + L_ctermid = 9 + L_tmpnam = 20 + P_tmpdir = "/tmp" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 238328 + X_ATFILE_SOURCE = 1 + X_BITS_STDIO_LIM_H = 1 + X_BITS_TIME64_H = 1 + X_BITS_TYPESIZES_H = 1 + X_BITS_TYPES_H = 1 + X_BSD_SIZE_T_ = 0 + X_BSD_SIZE_T_DEFINED_ = 0 + X_DEFAULT_SOURCE = 1 + X_FEATURES_H = 1 + X_FILE_OFFSET_BITS = 64 + X_GCC_SIZE_T = 0 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_IO_EOF_SEEN = 0x0010 + X_IO_ERR_SEEN = 0x0020 + X_IO_USER_LOCK = 0x8000 + X_POSIX_C_SOURCE = 200809 + X_POSIX_SOURCE = 1 + X_SIZET_ = 0 + X_SIZE_T = 0 + X_SIZE_T_ = 0 + X_SIZE_T_DECLARED = 0 + X_SIZE_T_DEFINED = 0 + X_SIZE_T_DEFINED_ = 0 + X_STDC_PREDEF_H = 1 + X_STDIO_H = 1 + X_SYS_CDEFS_H = 1 + X_SYS_SIZE_T_H = 0 + X_T_SIZE = 0 + X_T_SIZE_ = 0 + X_VA_LIST_DEFINED = 0 + Linux = 1 + Unix = 1 +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = uint32 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Copyright (C) 1999-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Copyright (C) 1999-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Size in bits of the 'time_t' type of the default ABI. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint32 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:47:44 */ +type X__uint64_t = uint64 /* types.h:48:46 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:66:37 */ +type X__u_quad_t = uint64 /* types.h:67:46 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:75:37 */ +type X__uintmax_t = uint64 /* types.h:76:46 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// We want __extension__ before typedef's that use nonstandard base types +// such as `long long' in C89 mode. +// bits/typesizes.h -- underlying types for *_t. Generic version. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// Define a 64-bit time type alongsize the 32-bit one. + +type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = X__uint64_t /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int32 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int32 /* types.h:179:28 */ +type X__blkcnt64_t = X__int64_t /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint32 /* types.h:183:30 */ +type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint32 /* types.h:187:30 */ +type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int32 /* types.h:191:28 */ + +type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int32 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint32 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int32 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. +type X__time64_t = X__int64_t /* types.h:222:28 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]uint8 + F_lock uintptr + F__ccgo_pad1 [4]byte + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [40]uint8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go b/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go new file mode 100644 index 0000000..abc7829 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_arm64.go @@ -0,0 +1,573 @@ +// 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_linux_arm64.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 = 8192 + EOF = -1 + FILENAME_MAX = 4096 + FOPEN_MAX = 16 + L_ctermid = 9 + L_tmpnam = 20 + P_tmpdir = "/tmp" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 238328 + X_ATFILE_SOURCE = 1 + X_BITS_STDIO_LIM_H = 1 + X_BITS_TIME64_H = 1 + X_BITS_TYPESIZES_H = 1 + X_BITS_TYPES_H = 1 + X_BSD_SIZE_T_ = 0 + X_BSD_SIZE_T_DEFINED_ = 0 + X_DEFAULT_SOURCE = 1 + X_FEATURES_H = 1 + X_FILE_OFFSET_BITS = 64 + X_GCC_SIZE_T = 0 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_IO_EOF_SEEN = 0x0010 + X_IO_ERR_SEEN = 0x0020 + X_IO_USER_LOCK = 0x8000 + X_LP64 = 1 + X_POSIX_C_SOURCE = 200809 + X_POSIX_SOURCE = 1 + X_SIZET_ = 0 + X_SIZE_T = 0 + X_SIZE_T_ = 0 + X_SIZE_T_DECLARED = 0 + X_SIZE_T_DEFINED = 0 + X_SIZE_T_DEFINED_ = 0 + X_STDC_PREDEF_H = 1 + X_STDIO_H = 1 + X_SYS_CDEFS_H = 1 + X_SYS_SIZE_T_H = 0 + X_T_SIZE = 0 + X_T_SIZE_ = 0 + X_VA_LIST_DEFINED = 0 + Linux = 1 + Unix = 1 +) + +type Ptrdiff_t = int64 /* <builtin>:3:26 */ + +type Size_t = uint64 /* <builtin>:9:23 */ + +type Wchar_t = uint32 /* <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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. +// +// Copyright (C) 2016-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. +// +// Copyright (C) 2016-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Size in bits of the 'time_t' type of the default ABI. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. +// Copyright (C) 2011-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library. If not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int32 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:191:28 */ + +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]uint8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]uint8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_loong64.go b/vendor/modernc.org/libc/stdio/stdio_linux_loong64.go new file mode 100644 index 0000000..797977f --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_loong64.go @@ -0,0 +1,588 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_linux_loong64.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 = 8192 // stdio.h:99:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 4096 // stdio_lim.h:26:1: + FOPEN_MAX = 16 // stdio.h:138:1: + L_ctermid = 9 // stdio.h:131:1: + L_tmpnam = 20 // stdio.h:123:1: + P_tmpdir = "/tmp" // stdio.h:120:1: + SEEK_CUR = 1 // stdio.h:110:1: + SEEK_END = 2 // stdio.h:111:1: + SEEK_SET = 0 // stdio.h:109:1: + TMP_MAX = 238328 // stdio.h:124:1: + X_ABILP64 = 3 // <predefined>:377:1: + X_ATFILE_SOURCE = 1 // features.h:353:1: + X_BITS_FLOATN_COMMON_H = 0 // floatn-common.h:21:1: + X_BITS_FLOATN_H = 0 // floatn.h:20:1: + X_BITS_STDIO_LIM_H = 1 // stdio_lim.h:20:1: + X_BITS_TIME64_H = 1 // time64.h:24:1: + X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: + X_BITS_TYPES_H = 1 // types.h:24:1: + X_BSD_SIZE_T_ = 0 // stddef.h:193:1: + X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:196:1: + X_DEFAULT_SOURCE = 1 // features.h:238:1: + X_FEATURES_H = 1 // features.h:19:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_GCC_SIZE_T = 0 // stddef.h:200:1: + X_IOFBF = 0 // stdio.h:93:1: + X_IOLBF = 1 // stdio.h:94:1: + X_IONBF = 2 // stdio.h:95:1: + X_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: + X_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: + X_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: + X_LOONGARCH_ARCH = "loongarch64" // <predefined>:214:1: + X_LOONGARCH_ARCH_LOONGARCH64 = 1 // <predefined>:340:1: + X_LOONGARCH_FPSET = 32 // <predefined>:265:1: + X_LOONGARCH_SIM = 3 // <predefined>:233:1: + X_LOONGARCH_SPFPSET = 32 // <predefined>:88:1: + X_LOONGARCH_SZINT = 32 // <predefined>:230:1: + X_LOONGARCH_SZLONG = 64 // <predefined>:388:1: + X_LOONGARCH_SZPTR = 64 // <predefined>:200:1: + X_LOONGARCH_TUNE = "la464" // <predefined>:245:1: + X_LOONGARCH_TUNE_LA464 = 1 // <predefined>:63:1: + X_LP64 = 1 // <predefined>:372:1: + X_POSIX_C_SOURCE = 200809 // features.h:292:1: + X_POSIX_SOURCE = 1 // features.h:290:1: + X_SIZET_ = 0 // stddef.h:201:1: + X_SIZE_T = 0 // stddef.h:187:1: + X_SIZE_T_ = 0 // stddef.h:192:1: + X_SIZE_T_DECLARED = 0 // stddef.h:197:1: + X_SIZE_T_DEFINED = 0 // stddef.h:195:1: + X_SIZE_T_DEFINED_ = 0 // stddef.h:194:1: + X_STDC_PREDEF_H = 1 // <predefined>:223:1: + X_STDIO_H = 1 // stdio.h:24:1: + X_SYS_CDEFS_H = 1 // cdefs.h:20:1: + X_SYS_SIZE_T_H = 0 // stddef.h:188:1: + X_T_SIZE = 0 // stddef.h:190:1: + X_T_SIZE_ = 0 // stddef.h:189:1: + X_VA_LIST_DEFINED = 0 // stdio.h:53:1: + Linux = 1 // <predefined>:308:1: + Unix = 1 // <predefined>:247: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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2023 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 = uintptr /* stdarg.h:40:27 */ + +// Define the standard macros for the user, +// if this invocation was from the user program. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Copyright (C) 1999-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Size in bits of the 'time_t' type of the default ABI. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = int8 /* types.h:52:18 */ +type X__uint_least8_t = uint8 /* types.h:53:19 */ +type X__int_least16_t = int16 /* types.h:54:19 */ +type X__uint_least16_t = uint16 /* types.h:55:20 */ +type X__int_least32_t = int32 /* types.h:56:19 */ +type X__uint_least32_t = uint32 /* types.h:57:20 */ +type X__int_least64_t = int64 /* types.h:58:19 */ +type X__uint_least64_t = uint64 /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. +// Copyright (C) 2011-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library. If not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// And for getitimer, setitimer and rusage + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. +type X__suseconds64_t = int64 /* types.h:163:33 */ + +type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:169:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:172:12 */ + +// Type to represent block size. +type X__blksize_t = int32 /* types.h:175:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:180:28 */ +type X__blkcnt64_t = int64 /* types.h:181:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:184:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:185:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:188:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:189:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:192:28 */ + +type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:197:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:199:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = int64 /* types.h:203:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:204:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:207:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:210:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:215:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos int64 + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos int64 + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset int64 + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]int8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset int64 + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 uint64 + F_mode int32 + F_unused2 [20]int8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// The structure with the cookie function pointers. +// +// The tag name of this struct is _IO_cookie_io_functions_t to +// preserve historic C++ mangled names for functions taking +// cookie_io_functions_t arguments. That name should not be used in +// new code. +type X_IO_cookie_io_functions_t = struct { + Fread uintptr + Fwrite uintptr + Fseek uintptr + Fclose uintptr +} /* cookie_io_functions_t.h:55:9 */ + +// The structure with the cookie function pointers. +// +// The tag name of this struct is _IO_cookie_io_functions_t to +// preserve historic C++ mangled names for functions taking +// cookie_io_functions_t arguments. That name should not be used in +// new code. +type Cookie_io_functions_t = X_IO_cookie_io_functions_t /* cookie_io_functions_t.h:61:3 */ + +type Va_list = uintptr /* stdio.h:52:24 */ + +type Off_t = int64 /* stdio.h:65:19 */ + +type Ssize_t = int64 /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// The following headers provide asm redirections. These redirections must +// appear before the first usage of these functions, e.g. in bits/stdio.h. + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_mips64le.go b/vendor/modernc.org/libc/stdio/stdio_linux_mips64le.go new file mode 100644 index 0000000..b11d50c --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_mips64le.go @@ -0,0 +1,540 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_linux_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 ( + BUFSIZ = 8192 // stdio.h:99:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 4096 // stdio_lim.h:27:1: + FOPEN_MAX = 16 // stdio_lim.h:37:1: + L_ctermid = 9 // stdio_lim.h:30:1: + L_tmpnam = 20 // stdio_lim.h:25:1: + P_tmpdir = "/tmp" // stdio.h:120:1: + SEEK_CUR = 1 // stdio.h:110:1: + SEEK_END = 2 // stdio.h:111:1: + SEEK_SET = 0 // stdio.h:109:1: + TMP_MAX = 238328 // stdio_lim.h:26:1: + X_ATFILE_SOURCE = 1 // features.h:342:1: + X_BITS_STDIO_LIM_H = 1 // stdio_lim.h:19:1: + X_BITS_TIME64_H = 1 // time64.h:24:1: + X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: + X_BITS_TYPES_H = 1 // types.h:24:1: + X_BSD_SIZE_T_ = 0 // stddef.h:189:1: + X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: + X_DEFAULT_SOURCE = 1 // features.h:227:1: + X_FEATURES_H = 1 // features.h:19:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_GCC_SIZE_T = 0 // stddef.h:195:1: + X_IOFBF = 0 // stdio.h:93:1: + X_IOLBF = 1 // stdio.h:94:1: + X_IONBF = 2 // stdio.h:95:1: + X_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: + X_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: + X_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: + X_LP64 = 1 // <predefined>:284:1: + X_POSIX_C_SOURCE = 200809 // features.h:281:1: + X_POSIX_SOURCE = 1 // features.h:279:1: + X_SIZET_ = 0 // stddef.h:196:1: + X_SIZE_T = 0 // stddef.h:183:1: + X_SIZE_T_ = 0 // stddef.h:188:1: + X_SIZE_T_DECLARED = 0 // stddef.h:193:1: + X_SIZE_T_DEFINED = 0 // stddef.h:191:1: + X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: + X_STDC_PREDEF_H = 1 // <predefined>:162:1: + X_STDIO_H = 1 // stdio.h:24:1: + X_SYS_CDEFS_H = 1 // cdefs.h:19:1: + X_SYS_SIZE_T_H = 0 // stddef.h:184:1: + X_T_SIZE = 0 // stddef.h:186:1: + X_T_SIZE_ = 0 // stddef.h:185:1: + X_VA_LIST_DEFINED = 0 // stdio.h:53:1: + Linux = 1 // <predefined>:231:1: + Unix = 1 // <predefined>:177: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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Both x86-64 and x32 use the 64-bit system call interface. +// Bit size of the time_t type at glibc build time, x86-64 and x32 case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// For others, time size is word size. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. +// Copyright (C) 2012-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// X32 kernel interface is 64-bit. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int64 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:191:28 */ + +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]int8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]int8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_ppc64le.go b/vendor/modernc.org/libc/stdio/stdio_linux_ppc64le.go new file mode 100644 index 0000000..718d27f --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_ppc64le.go @@ -0,0 +1,552 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_linux_ppc64le.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 = 8192 // stdio.h:99:1: + EOF = -1 // stdio.h:104:1: + FILENAME_MAX = 4096 // stdio_lim.h:27:1: + FOPEN_MAX = 16 // stdio_lim.h:37:1: + L_ctermid = 9 // stdio_lim.h:30:1: + L_tmpnam = 20 // stdio_lim.h:25:1: + P_tmpdir = "/tmp" // stdio.h:120:1: + SEEK_CUR = 1 // stdio.h:110:1: + SEEK_END = 2 // stdio.h:111:1: + SEEK_SET = 0 // stdio.h:109:1: + TMP_MAX = 238328 // stdio_lim.h:26:1: + X_ARCH_PPC = 1 // <predefined>:198:1: + X_ARCH_PPC64 = 1 // <predefined>:402:1: + X_ARCH_PPCGR = 1 // <predefined>:15:1: + X_ARCH_PPCSQ = 1 // <predefined>:43:1: + X_ARCH_PWR4 = 1 // <predefined>:381:1: + X_ARCH_PWR5 = 1 // <predefined>:90:1: + X_ARCH_PWR5X = 1 // <predefined>:137:1: + X_ARCH_PWR6 = 1 // <predefined>:91:1: + X_ARCH_PWR7 = 1 // <predefined>:92:1: + X_ARCH_PWR8 = 1 // <predefined>:93:1: + X_ATFILE_SOURCE = 1 // features.h:342:1: + X_BITS_STDIO_LIM_H = 1 // stdio_lim.h:19:1: + X_BITS_TIME64_H = 1 // time64.h:24:1: + X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: + X_BITS_TYPES_H = 1 // types.h:24:1: + X_BSD_SIZE_T_ = 0 // stddef.h:189:1: + X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: + X_CALL_ELF = 2 // <predefined>:415:1: + X_CALL_LINUX = 1 // <predefined>:123:1: + X_DEFAULT_SOURCE = 1 // features.h:227:1: + X_FEATURES_H = 1 // features.h:19:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_GCC_SIZE_T = 0 // stddef.h:195:1: + X_IOFBF = 0 // stdio.h:93:1: + X_IOLBF = 1 // stdio.h:94:1: + X_IONBF = 2 // stdio.h:95:1: + X_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: + X_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: + X_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: + X_LITTLE_ENDIAN = 1 // <predefined>:37:1: + X_LP64 = 1 // <predefined>:335:1: + X_POSIX_C_SOURCE = 200809 // features.h:281:1: + X_POSIX_SOURCE = 1 // features.h:279:1: + X_SIZET_ = 0 // stddef.h:196:1: + X_SIZE_T = 0 // stddef.h:183:1: + X_SIZE_T_ = 0 // stddef.h:188:1: + X_SIZE_T_DECLARED = 0 // stddef.h:193:1: + X_SIZE_T_DEFINED = 0 // stddef.h:191:1: + X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: + X_STDC_PREDEF_H = 1 // <predefined>:203:1: + X_STDIO_H = 1 // stdio.h:24:1: + X_SYS_CDEFS_H = 1 // cdefs.h:19:1: + X_SYS_SIZE_T_H = 0 // stddef.h:184:1: + X_T_SIZE = 0 // stddef.h:186:1: + X_T_SIZE_ = 0 // stddef.h:185:1: + X_VA_LIST_DEFINED = 0 // stdio.h:53:1: + Linux = 1 // <predefined>:263:1: + Unix = 1 // <predefined>:222: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__ieee128 = float64 /* <builtin>:47:21 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Size in bits of the 'time_t' type of the default ABI. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. Generic version. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for rlim_t and rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int64 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:191:28 */ + +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]uint8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]uint8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_riscv64.go b/vendor/modernc.org/libc/stdio/stdio_linux_riscv64.go new file mode 100644 index 0000000..b970de8 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_riscv64.go @@ -0,0 +1,595 @@ +// 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_linux_riscv64.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 = 8192 + EOF = -1 + FILENAME_MAX = 4096 + FOPEN_MAX = 16 + L_ctermid = 9 + L_tmpnam = 20 + P_tmpdir = "/tmp" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 238328 + X_ATFILE_SOURCE = 1 + X_BITS_FLOATN_COMMON_H = 0 + X_BITS_FLOATN_H = 0 + X_BITS_STDIO_LIM_H = 1 + X_BITS_TIME64_H = 1 + X_BITS_TYPESIZES_H = 1 + X_BITS_TYPES_H = 1 + X_BSD_SIZE_T_ = 0 + X_BSD_SIZE_T_DEFINED_ = 0 + X_DEFAULT_SOURCE = 1 + X_FEATURES_H = 1 + X_FILE_OFFSET_BITS = 64 + X_GCC_SIZE_T = 0 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_IO_EOF_SEEN = 0x0010 + X_IO_ERR_SEEN = 0x0020 + X_IO_USER_LOCK = 0x8000 + X_LP64 = 1 + X_POSIX_C_SOURCE = 200809 + X_POSIX_SOURCE = 1 + X_SIZET_ = 0 + X_SIZE_T = 0 + X_SIZE_T_ = 0 + X_SIZE_T_DECLARED = 0 + X_SIZE_T_DEFINED = 0 + X_SIZE_T_DEFINED_ = 0 + X_STDC_PREDEF_H = 1 + X_STDIO_H = 1 + X_SYS_CDEFS_H = 1 + X_SYS_SIZE_T_H = 0 + X_T_SIZE = 0 + X_T_SIZE_ = 0 + X_VA_LIST_DEFINED = 0 + Linux = 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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. RISC-V version. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library. If not, see +// <https://www.gnu.org/licenses/>. + +// Bit size of the time_t type at glibc build time, RISC-V case. +// Copyright (C) 2020-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. RISC-V version. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library. If not, see +// <https://www.gnu.org/licenses/>. + +// RV32 and RV64 both use 64-bit time_t + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. +// Copyright (C) 2011-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library. If not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// And for getitimer, setitimer and rusage + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. RISC-V version. +// Copyright (C) 2020-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. +type X__suseconds64_t = int64 /* types.h:163:33 */ + +type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:169:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:172:12 */ + +// Type to represent block size. +type X__blksize_t = int32 /* types.h:175:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:180:28 */ +type X__blkcnt64_t = int64 /* types.h:181:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:184:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:185:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:188:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:189:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:192:28 */ + +type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:197:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:199:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:204:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:207:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:210:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:215:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]uint8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]uint8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +// Macros to control TS 18661-3 glibc features on ldbl-128 platforms. +// Copyright (C) 2017-2021 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go b/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go new file mode 100644 index 0000000..e970450 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_linux_s390x.go @@ -0,0 +1,541 @@ +// 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_linux_s390x.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 = 8192 + EOF = -1 + FILENAME_MAX = 4096 + FOPEN_MAX = 16 + L_ctermid = 9 + L_tmpnam = 20 + P_tmpdir = "/tmp" + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + TMP_MAX = 238328 + X_ATFILE_SOURCE = 1 + X_BITS_STDIO_LIM_H = 1 + X_BITS_TIME64_H = 1 + X_BITS_TYPESIZES_H = 1 + X_BITS_TYPES_H = 1 + X_BSD_SIZE_T_ = 0 + X_BSD_SIZE_T_DEFINED_ = 0 + X_DEFAULT_SOURCE = 1 + X_FEATURES_H = 1 + X_FILE_OFFSET_BITS = 64 + X_GCC_SIZE_T = 0 + X_IOFBF = 0 + X_IOLBF = 1 + X_IONBF = 2 + X_IO_EOF_SEEN = 0x0010 + X_IO_ERR_SEEN = 0x0020 + X_IO_USER_LOCK = 0x8000 + X_LP64 = 1 + X_POSIX_C_SOURCE = 200809 + X_POSIX_SOURCE = 1 + X_SIZET_ = 0 + X_SIZE_T = 0 + X_SIZE_T_ = 0 + X_SIZE_T_DECLARED = 0 + X_SIZE_T_DEFINED = 0 + X_SIZE_T_DEFINED_ = 0 + X_STDC_PREDEF_H = 1 + X_STDIO_H = 1 + X_SYS_CDEFS_H = 1 + X_SYS_SIZE_T_H = 0 + X_T_SIZE = 0 + X_T_SIZE_ = 0 + X_VA_LIST_DEFINED = 0 + Linux = 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 */ + +// Wide character type. +// Locale-writers should change this as necessary to +// be big enough to hold unique values not between 0 and 127, +// and not (wchar_t) -1, for each defined multibyte character. + +// Define this type if we are doing the whole job, +// or if we want this type in particular. + +// A null pointer constant. + +// Copyright (C) 1989-2020 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. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Size in bits of the 'time_t' type of the default ABI. + +// Convenience types. +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ + +// Fixed-size types, underlying types depend on word size and compiler. +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ + +// Smallest types with at least a given width. +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ + +// quad_t is also 64 bits. +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ + +// Largest integral types. +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ + +// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +// macros for each of the OS types we define below. The definitions +// of those macros must use the following macros for underlying types. +// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +// variants of each of the following integer types on this machine. +// +// 16 -- "natural" 16-bit type (always short) +// 32 -- "natural" 32-bit type (always int) +// 64 -- "natural" 64-bit type (long or long long) +// LONG32 -- 32-bit type, traditionally long +// QUAD -- 64-bit type, traditionally long long +// WORD -- natural type of __WORDSIZE bits (int or long) +// LONGWORD -- type of __WORDSIZE bits, traditionally long +// +// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +// conventional uses of `long' or `long long' type modifiers match the +// types we define, even when a less-adorned type would be the same size. +// This matters for (somewhat) portably writing printf/scanf formats for +// these types, where using the appropriate l or ll format modifiers can +// make the typedefs and the formats match up across all GNU platforms. If +// we used `long' when it's 64 bits where `long long' is expected, then the +// compiler would warn about the formats not matching the argument types, +// and the programmer changing them to shut up the compiler would break the +// program's portability. +// +// Here we assume what is presently the case in all the GCC configurations +// we support: long long is always 64 bits, long is always word/address size, +// and int is always 32 bits. + +// No need to mark the typedef with __extension__. +// bits/typesizes.h -- underlying types for *_t. Linux/s390 version. +// Copyright (C) 2003-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// See <bits/types.h> for the meaning of these macros. This file exists so +// that <bits/types.h> need not vary across different GNU platforms. + +// size_t is unsigned long int on s390 -m31. + +// Tell the libc code that off_t and off64_t are actually the same type +// for all ABI purposes, even if possibly expressed as different base types +// for C type-checking purposes. + +// Same for ino_t and ino64_t. + +// And for __rlim_t and __rlim64_t. + +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + +// Number of descriptors that can fit in an `fd_set'. + +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. + +// Clock ID used in clock and timer functions. +type X__clockid_t = int32 /* types.h:168:29 */ + +// Timer ID returned by `timer_create'. +type X__timer_t = uintptr /* types.h:171:12 */ + +// Type to represent block size. +type X__blksize_t = int64 /* types.h:174:29 */ + +// Types from the Large File Support interface. + +// Type to count number of disk blocks. +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ + +// Type to count file system blocks. +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ + +// Type to count file system nodes. +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ + +// Type of miscellaneous file system fields. +type X__fsword_t = int64 /* types.h:191:28 */ + +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. + +// Signed long type used in system calls. +type X__syscall_slong_t = int64 /* types.h:196:33 */ +// Unsigned long type used in system calls. +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ + +// These few don't really vary by system, they always correspond +// +// to one of the other defined types. +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ + +// Duplicates info from stdint.h but this is used in unistd.h. +type X__intptr_t = int64 /* types.h:206:25 */ + +// Duplicate info from sys/socket.h. +type X__socklen_t = uint32 /* types.h:209:23 */ + +// C99: An integer type that can be accessed as an atomic entity, +// +// even in the presence of asynchronous interrupts. +// It is not currently necessary for this to be machine-specific. +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// Integral type unchanged by default argument promotions that can +// hold any value corresponding to members of the extended character +// set, as well as at least one value that does not correspond to any +// member of the extended character set. + +// Conversion state information. +type X__mbstate_t = struct { + F__count int32 + F__value struct{ F__wch uint32 } +} /* __mbstate_t.h:21:3 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X_G_fpos_t = struct { + F__pos X__off_t + F__state X__mbstate_t +} /* __fpos_t.h:10:9 */ + +// The tag name of this struct is _G_fpos_t to preserve historic +// +// C++ mangled names for functions taking fpos_t arguments. +// That name should not be used in new code. +type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X_G_fpos64_t = struct { + F__pos X__off64_t + F__state X__mbstate_t +} /* __fpos64_t.h:10:9 */ + +// bits/types.h -- definitions of __*_t types underlying *_t types. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Never include this file directly; use <sys/types.h> instead. + +// The tag name of this struct is _G_fpos64_t to preserve historic +// +// C++ mangled names for functions taking fpos_t and/or fpos64_t +// arguments. That name should not be used in new code. +type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */ + +type X_IO_FILE = struct { + F_flags int32 + F__ccgo_pad1 [4]byte + F_IO_read_ptr uintptr + F_IO_read_end uintptr + F_IO_read_base uintptr + F_IO_write_base uintptr + F_IO_write_ptr uintptr + F_IO_write_end uintptr + F_IO_buf_base uintptr + F_IO_buf_end uintptr + F_IO_save_base uintptr + F_IO_backup_base uintptr + F_IO_save_end uintptr + F_markers uintptr + F_chain uintptr + F_fileno int32 + F_flags2 int32 + F_old_offset X__off_t + F_cur_column uint16 + F_vtable_offset int8 + F_shortbuf [1]uint8 + F__ccgo_pad2 [4]byte + F_lock uintptr + F_offset X__off64_t + F_codecvt uintptr + F_wide_data uintptr + F_freeres_list uintptr + F_freeres_buf uintptr + F__pad5 Size_t + F_mode int32 + F_unused2 [20]uint8 +} /* __FILE.h:4:1 */ + +type X__FILE = X_IO_FILE /* __FILE.h:5:25 */ + +// The opaque type of streams. This is the definition used elsewhere. +type FILE = X_IO_FILE /* FILE.h:7:25 */ + +// These macros are used by bits/stdio.h and internal headers. + +// Many more flag bits are defined internally. + +type Va_list = X__gnuc_va_list /* stdio.h:52:24 */ + +type Off_t = X__off64_t /* stdio.h:65:19 */ + +type Ssize_t = X__ssize_t /* stdio.h:77:19 */ + +// The type of the second argument to `fgetpos' and `fsetpos'. +type Fpos_t = X__fpos64_t /* stdio.h:86:20 */ + +// If we are compiling with optimizing read this file. It contains +// several optimizing inline functions and macros. + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go new file mode 100644 index 0000000..ff7a87c --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_netbsd_amd64.go @@ -0,0 +1,466 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_netbsd_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 ( + BUFSIZ = 1024 // stdio.h:182:1: + EOF = -1 // stdio.h:183:1: + FILENAME_MAX = 1024 // stdio.h:192:1: + FOPEN_MAX = 20 // stdio.h:191:1: + FPARSELN_UNESCALL = 0x0f // stdio.h:411:1: + FPARSELN_UNESCCOMM = 0x04 // stdio.h:409:1: + FPARSELN_UNESCCONT = 0x02 // stdio.h:408:1: + FPARSELN_UNESCESC = 0x01 // stdio.h:407:1: + FPARSELN_UNESCREST = 0x08 // stdio.h:410:1: + L_ctermid = 1024 // stdio.h:292:1: + L_cuserid = 9 // stdio.h:293:1: + L_tmpnam = 1024 // stdio.h:198:1: + P_tmpdir = "/tmp/" // stdio.h:196:1: + SEEK_CUR = 1 // stdio.h:209:1: + SEEK_END = 2 // stdio.h:212:1: + SEEK_SET = 0 // stdio.h:206:1: + TMP_MAX = 308915776 // stdio.h:201:1: + X_AMD64_INT_TYPES_H_ = 0 // int_types.h:35:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:72:1: + X_IOFBF = 0 // stdio.h:178:1: + X_IOLBF = 1 // stdio.h:179:1: + X_IONBF = 2 // stdio.h:180:1: + X_LP64 = 1 // <predefined>:268:1: + X_NETBSD_SOURCE = 1 // featuretest.h:70:1: + X_STDIO_H_ = 0 // stdio.h:38:1: + X_SYS_ANSI_H_ = 0 // ansi.h:33:1: + X_SYS_CDEFS_ELF_H_ = 0 // cdefs_elf.h:31:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:37:1: + X_SYS_COMMON_ANSI_H_ = 0 // common_ansi.h:33:1: + X_SYS_COMMON_INT_TYPES_H_ = 0 // common_int_types.h:33:1: + X_SYS_NULL_H_ = 0 // null.h:9:1: + X_X86_64_CDEFS_H_ = 0 // cdefs.h:4: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 */ + +// 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: 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. + +// $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 + +// $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 */ + +// 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 + +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 Ssize_t = int64 /* stdio.h:49:23 */ + +// $NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999. +// Public domain. + +// This is fairly grotesque, but pure ANSI code must not inspect the +// innards of an fpos_t anyway. The library internally uses off_t, +// which we assume is exactly as big as eight chars. +type X__sfpos = struct { + F_pos X__off_t + F_mbstate_in X__mbstate_t + F_mbstate_out X__mbstate_t +} /* stdio.h:67:9 */ + +// $NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999. +// Public domain. + +// This is fairly grotesque, but pure ANSI code must not inspect the +// innards of an fpos_t anyway. The library internally uses off_t, +// which we assume is exactly as big as eight chars. +type Fpos_t = X__sfpos /* stdio.h:70:3 */ + +// 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:81: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. +// +// NB: see WARNING above before changing the layout of this structure! +type X__sFILE = struct { + F_p uintptr + F_r int32 + F_w int32 + F_flags uint16 + 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_flush uintptr + F_lb_unused [8]int8 + F_blksize int32 + F__ccgo_pad3 [4]byte + F_offset X__off_t +} /* stdio.h:112: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. +// +// NB: see WARNING above before changing the layout of this structure! +type FILE = X__sFILE /* stdio.h:146:3 */ + +// X/Open CAE Specification Issue 5 Version 2 +type Off_t = X__off_t /* stdio.h:376:18 */ + +type Locale_t = uintptr /* stdio.h:543:25 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_netbsd_arm.go b/vendor/modernc.org/libc/stdio/stdio_netbsd_arm.go new file mode 100644 index 0000000..011e105 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_netbsd_arm.go @@ -0,0 +1,455 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_netbsd_arm.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 // stdio.h:182:1: + EOF = -1 // stdio.h:183:1: + FILENAME_MAX = 1024 // stdio.h:192:1: + FOPEN_MAX = 20 // stdio.h:191:1: + FPARSELN_UNESCALL = 0x0f // stdio.h:411:1: + FPARSELN_UNESCCOMM = 0x04 // stdio.h:409:1: + FPARSELN_UNESCCONT = 0x02 // stdio.h:408:1: + FPARSELN_UNESCESC = 0x01 // stdio.h:407:1: + FPARSELN_UNESCREST = 0x08 // stdio.h:410:1: + L_ctermid = 1024 // stdio.h:292:1: + L_cuserid = 9 // stdio.h:293:1: + L_tmpnam = 1024 // stdio.h:198:1: + P_tmpdir = "/tmp/" // stdio.h:196:1: + SEEK_CUR = 1 // stdio.h:209:1: + SEEK_END = 2 // stdio.h:212:1: + SEEK_SET = 0 // stdio.h:206:1: + TMP_MAX = 308915776 // stdio.h:201:1: + X_ARM_ARCH_4T = 0 // cdefs.h:44:1: + X_ARM_ARCH_5 = 0 // cdefs.h:40:1: + X_ARM_ARCH_5T = 0 // cdefs.h:36:1: + X_ARM_ARCH_6 = 0 // cdefs.h:31:1: + X_ARM_ARCH_7 = 0 // cdefs.h:20:1: + X_ARM_ARCH_DWORD_OK = 0 // cdefs.h:51:1: + X_ARM_ARCH_T2 = 0 // cdefs.h:24:1: + X_ARM_CDEFS_H_ = 0 // cdefs.h:4:1: + X_ARM_INT_TYPES_H_ = 0 // int_types.h:33:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:72:1: + X_IOFBF = 0 // stdio.h:178:1: + X_IOLBF = 1 // stdio.h:179:1: + X_IONBF = 2 // stdio.h:180:1: + X_NETBSD_SOURCE = 1 // featuretest.h:70:1: + X_STDIO_H_ = 0 // stdio.h:38:1: + X_SYS_ANSI_H_ = 0 // ansi.h:33:1: + X_SYS_CDEFS_ELF_H_ = 0 // cdefs_elf.h:31:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:37:1: + X_SYS_COMMON_ANSI_H_ = 0 // common_ansi.h:33:1: + X_SYS_COMMON_INT_TYPES_H_ = 0 // common_int_types.h:33:1: + X_SYS_NULL_H_ = 0 // null.h:9: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 */ + +// 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: 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.18 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.17 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 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: 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 = int32 /* common_int_types.h:58:27 */ +type X__uintptr_t = uint32 /* common_int_types.h:59:26 */ + +// 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 + +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 Ssize_t = int32 /* stdio.h:49:23 */ + +// $NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999. +// Public domain. + +// This is fairly grotesque, but pure ANSI code must not inspect the +// innards of an fpos_t anyway. The library internally uses off_t, +// which we assume is exactly as big as eight chars. +type X__sfpos = struct { + F_pos X__off_t + F_mbstate_in X__mbstate_t + F_mbstate_out X__mbstate_t +} /* stdio.h:67:9 */ + +// $NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $ + +// Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999. +// Public domain. + +// This is fairly grotesque, but pure ANSI code must not inspect the +// innards of an fpos_t anyway. The library internally uses off_t, +// which we assume is exactly as big as eight chars. +type Fpos_t = X__sfpos /* stdio.h:70:3 */ + +// 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:81: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. +// +// NB: see WARNING above before changing the layout of this structure! +type X__sFILE = struct { + F_p uintptr + F_r int32 + F_w int32 + F_flags uint16 + 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_ext struct { + F_base uintptr + F_size int32 + } + F_up uintptr + F_ur int32 + F_ubuf [3]uint8 + F_nbuf [1]uint8 + F_flush uintptr + F_lb_unused [4]uint8 + F_blksize int32 + F_offset X__off_t +} /* stdio.h:112: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. +// +// NB: see WARNING above before changing the layout of this structure! +type FILE = X__sFILE /* stdio.h:146:3 */ + +// X/Open CAE Specification Issue 5 Version 2 +type Off_t = X__off_t /* stdio.h:376:18 */ + +type Locale_t = uintptr /* stdio.h:543:25 */ + +var _ uint8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_openbsd_386.go b/vendor/modernc.org/libc/stdio/stdio_openbsd_386.go new file mode 100644 index 0000000..be87fb6 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_openbsd_386.go @@ -0,0 +1,659 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_openbsd_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 ( + BIG_ENDIAN = 4321 // endian.h:45:1: + BUFSIZ = 1024 // stdio.h:168:1: + BYTE_ORDER = 1234 // endian.h:47:1: + EOF = -1 // stdio.h:170:1: + FILENAME_MAX = 1024 // stdio.h:178:1: + FOPEN_MAX = 20 // stdio.h:177:1: + LITTLE_ENDIAN = 1234 // endian.h:44:1: + L_ctermid = 1024 // stdio.h:306:1: + L_tmpnam = 1024 // stdio.h:184:1: + PDP_ENDIAN = 3412 // endian.h:46:1: + P_tmpdir = "/tmp/" // stdio.h:182:1: + SEEK_CUR = 1 // stdio.h:191:1: + SEEK_END = 2 // stdio.h:194:1: + SEEK_SET = 0 // stdio.h:188:1: + TMP_MAX = 0x7fffffff // stdio.h:185:1: + X_BIG_ENDIAN = 4321 // _endian.h:43:1: + X_BYTE_ORDER = 1234 // endian.h:58:1: + X_CLOCKID_T_DEFINED_ = 0 // types.h:162:1: + X_CLOCK_T_DEFINED_ = 0 // types.h:157:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:59:1: + X_ILP32 = 1 // <predefined>:1:1: + X_INT16_T_DEFINED_ = 0 // types.h:84:1: + X_INT32_T_DEFINED_ = 0 // types.h:94:1: + X_INT64_T_DEFINED_ = 0 // types.h:104:1: + X_INT8_T_DEFINED_ = 0 // types.h:74:1: + X_IOFBF = 0 // stdio.h:164:1: + X_IOLBF = 1 // stdio.h:165:1: + X_IONBF = 2 // stdio.h:166:1: + X_LITTLE_ENDIAN = 1234 // _endian.h:42:1: + X_MACHINE_CDEFS_H_ = 0 // cdefs.h:9:1: + X_MACHINE_ENDIAN_H_ = 0 // endian.h:28:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:36:1: + X_MAX_PAGE_SHIFT = 12 // _types.h:52:1: + X_OFF_T_DEFINED_ = 0 // types.h:192:1: + X_PDP_ENDIAN = 3412 // _endian.h:44:1: + X_PID_T_DEFINED_ = 0 // types.h:167:1: + X_QUAD_HIGHWORD = 1 // _endian.h:95:1: + X_QUAD_LOWWORD = 0 // _endian.h:96:1: + X_SIZE_T_DEFINED_ = 0 // types.h:172:1: + X_SSIZE_T_DEFINED_ = 0 // types.h:177:1: + X_STACKALIGNBYTES = 15 // _types.h:49:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS_ENDIAN_H_ = 0 // endian.h:38:1: + X_SYS_TYPES_H_ = 0 // types.h:41:1: + X_SYS__ENDIAN_H_ = 0 // _endian.h:34:1: + X_SYS__TYPES_H_ = 0 // _types.h:35:1: + X_TIMER_T_DEFINED_ = 0 // types.h:187:1: + X_TIME_T_DEFINED_ = 0 // types.h:182:1: + X_UINT16_T_DEFINED_ = 0 // types.h:89:1: + X_UINT32_T_DEFINED_ = 0 // types.h:99:1: + X_UINT64_T_DEFINED_ = 0 // types.h:109:1: + X_UINT8_T_DEFINED_ = 0 // types.h:79:1: + I386 = 1 // <predefined>:339:1: + Unix = 1 // <predefined>:340: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 */ + +// $OpenBSD: stdio.h,v 1.55 2022/01/05 20:57:27 millert 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.10 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.10 2022/08/06 13:31:13 semarie 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.23 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 = int32 /* _types.h:103:16 */ +type X__uintptr_t = uint32 /* _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 = int32 /* _types.h:111:16 */ + +// VM system types +type X__vaddr_t = uint32 /* _types.h:114:24 */ +type X__paddr_t = uint32 /* _types.h:115:24 */ +type X__vsize_t = uint32 /* _types.h:116:24 */ +type X__psize_t = uint32 /* _types.h:117:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:120:22 */ +type X__float_t = float64 /* _types.h:121:22 */ +type X__ptrdiff_t = int32 /* _types.h:122:16 */ +type X__size_t = uint32 /* _types.h:123:24 */ +type X__ssize_t = int32 /* _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 = uint32 /* _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 = int32 /* _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 = int32 /* _types.h:62:15 */ // microseconds (signed) +type X__time_t = X__int64_t /* _types.h:63:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:64:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:65:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:66: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]uint32 + F__mbstate8 [128]int8 +} /* _types.h:75: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 = uint32 /* 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 = uint32 /* 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 Uid_t = X__uid_t /* types.h:147:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:148:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:149:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:150:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:151:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:158:19 */ + +type Clockid_t = X__clockid_t /* types.h:163:21 */ + +type Pid_t = X__pid_t /* types.h:168:18 */ + +type Ssize_t = X__ssize_t /* types.h:178:19 */ + +type Time_t = X__time_t /* types.h:183:18 */ + +type Timer_t = X__timer_t /* types.h:188:19 */ + +type Off_t = X__off_t /* types.h:193: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 +} /* 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_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_ext 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 +} /* 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_openbsd_amd64.go b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go new file mode 100644 index 0000000..0b4ed23 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_openbsd_amd64.go @@ -0,0 +1,675 @@ +// 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 -ignore-unsupported-alignment -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 // endian.h:45:1: + BUFSIZ = 1024 // stdio.h:168:1: + BYTE_ORDER = 1234 // endian.h:47:1: + EOF = -1 // stdio.h:170:1: + FILENAME_MAX = 1024 // stdio.h:178:1: + FOPEN_MAX = 20 // stdio.h:177:1: + LITTLE_ENDIAN = 1234 // endian.h:44:1: + L_ctermid = 1024 // stdio.h:306:1: + L_tmpnam = 1024 // stdio.h:184:1: + PDP_ENDIAN = 3412 // endian.h:46:1: + P_tmpdir = "/tmp/" // stdio.h:182:1: + SEEK_CUR = 1 // stdio.h:191:1: + SEEK_END = 2 // stdio.h:194:1: + SEEK_SET = 0 // stdio.h:188:1: + TMP_MAX = 0x7fffffff // stdio.h:185:1: + X_BIG_ENDIAN = 4321 // _endian.h:43:1: + X_BYTE_ORDER = 1234 // endian.h:58:1: + X_CLOCKID_T_DEFINED_ = 0 // types.h:162:1: + X_CLOCK_T_DEFINED_ = 0 // types.h:157:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:59:1: + X_INT16_T_DEFINED_ = 0 // types.h:84:1: + X_INT32_T_DEFINED_ = 0 // types.h:94:1: + X_INT64_T_DEFINED_ = 0 // types.h:104:1: + X_INT8_T_DEFINED_ = 0 // types.h:74:1: + X_IOFBF = 0 // stdio.h:164:1: + X_IOLBF = 1 // stdio.h:165:1: + X_IONBF = 2 // stdio.h:166:1: + X_LITTLE_ENDIAN = 1234 // _endian.h:42:1: + X_LP64 = 1 // <predefined>:1:1: + X_MACHINE_CDEFS_H_ = 0 // cdefs.h:9:1: + X_MACHINE_ENDIAN_H_ = 0 // endian.h:28:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:36:1: + X_MAX_PAGE_SHIFT = 12 // _types.h:52:1: + X_OFF_T_DEFINED_ = 0 // types.h:192:1: + X_PDP_ENDIAN = 3412 // _endian.h:44:1: + X_PID_T_DEFINED_ = 0 // types.h:167:1: + X_QUAD_HIGHWORD = 1 // _endian.h:95:1: + X_QUAD_LOWWORD = 0 // _endian.h:96:1: + X_RET_PROTECTOR = 1 // <predefined>:2:1: + X_SIZE_T_DEFINED_ = 0 // types.h:172:1: + X_SSIZE_T_DEFINED_ = 0 // types.h:177:1: + X_STACKALIGNBYTES = 15 // _types.h:49:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS_ENDIAN_H_ = 0 // endian.h:38:1: + X_SYS_TYPES_H_ = 0 // types.h:41:1: + X_SYS__ENDIAN_H_ = 0 // _endian.h:34:1: + X_SYS__TYPES_H_ = 0 // _types.h:35:1: + X_TIMER_T_DEFINED_ = 0 // types.h:187:1: + X_TIME_T_DEFINED_ = 0 // types.h:182:1: + X_UINT16_T_DEFINED_ = 0 // types.h:89:1: + X_UINT32_T_DEFINED_ = 0 // types.h:99:1: + X_UINT64_T_DEFINED_ = 0 // types.h:109:1: + X_UINT8_T_DEFINED_ = 0 // types.h:79:1: + Unix = 1 // <predefined>:344: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.55 2022/01/05 20:57:27 millert 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.10 2022/08/06 13:31:13 semarie 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__time_t = X__int64_t /* _types.h:63:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:64:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:65:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:66: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:75: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 Uid_t = X__uid_t /* types.h:147:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:148:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:149:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:150:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:151:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:158:19 */ + +type Clockid_t = X__clockid_t /* types.h:163:21 */ + +type Pid_t = X__pid_t /* types.h:168:18 */ + +type Ssize_t = X__ssize_t /* types.h:178:19 */ + +type Time_t = X__time_t /* types.h:183:18 */ + +type Timer_t = X__timer_t /* types.h:188:19 */ + +type Off_t = X__off_t /* types.h:193: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_openbsd_arm64.go b/vendor/modernc.org/libc/stdio/stdio_openbsd_arm64.go new file mode 100644 index 0000000..010e72d --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_openbsd_arm64.go @@ -0,0 +1,673 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_openbsd_arm64.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 // endian.h:45:1: + BUFSIZ = 1024 // stdio.h:168:1: + BYTE_ORDER = 1234 // endian.h:47:1: + EOF = -1 // stdio.h:170:1: + FILENAME_MAX = 1024 // stdio.h:178:1: + FOPEN_MAX = 20 // stdio.h:177:1: + LITTLE_ENDIAN = 1234 // endian.h:44:1: + L_ctermid = 1024 // stdio.h:306:1: + L_tmpnam = 1024 // stdio.h:184:1: + PDP_ENDIAN = 3412 // endian.h:46:1: + P_tmpdir = "/tmp/" // stdio.h:182:1: + SEEK_CUR = 1 // stdio.h:191:1: + SEEK_END = 2 // stdio.h:194:1: + SEEK_SET = 0 // stdio.h:188:1: + TMP_MAX = 0x7fffffff // stdio.h:185:1: + X_BIG_ENDIAN = 4321 // _endian.h:43:1: + X_BYTE_ORDER = 1234 // endian.h:60:1: + X_CLOCKID_T_DEFINED_ = 0 // types.h:162:1: + X_CLOCK_T_DEFINED_ = 0 // types.h:157:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FSTDIO = 0 // stdio.h:59:1: + X_INT16_T_DEFINED_ = 0 // types.h:84:1: + X_INT32_T_DEFINED_ = 0 // types.h:94:1: + X_INT64_T_DEFINED_ = 0 // types.h:104:1: + X_INT8_T_DEFINED_ = 0 // types.h:74:1: + X_IOFBF = 0 // stdio.h:164:1: + X_IOLBF = 1 // stdio.h:165:1: + X_IONBF = 2 // stdio.h:166:1: + X_LITTLE_ENDIAN = 1234 // _endian.h:42:1: + X_LP64 = 1 // <predefined>:1:1: + X_MACHINE_CDEFS_H_ = 0 // cdefs.h:4:1: + X_MACHINE_ENDIAN_H_ = 0 // endian.h:20:1: + X_MACHINE__TYPES_H_ = 0 // _types.h:35:1: + X_MAX_PAGE_SHIFT = 12 // _types.h:57:1: + X_OFF_T_DEFINED_ = 0 // types.h:192:1: + X_PDP_ENDIAN = 3412 // _endian.h:44:1: + X_PID_T_DEFINED_ = 0 // types.h:167:1: + X_QUAD_HIGHWORD = 1 // _endian.h:95:1: + X_QUAD_LOWWORD = 0 // _endian.h:96:1: + X_RET_PROTECTOR = 1 // <predefined>:2:1: + X_SIZE_T_DEFINED_ = 0 // types.h:172:1: + X_SSIZE_T_DEFINED_ = 0 // types.h:177:1: + X_STACKALIGNBYTES = 15 // _types.h:54:1: + X_STDIO_H_ = 0 // stdio.h:39:1: + X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: + X_SYS_ENDIAN_H_ = 0 // endian.h:38:1: + X_SYS_TYPES_H_ = 0 // types.h:41:1: + X_SYS__ENDIAN_H_ = 0 // _endian.h:34:1: + X_SYS__TYPES_H_ = 0 // _types.h:35:1: + X_TIMER_T_DEFINED_ = 0 // types.h:187:1: + X_TIME_T_DEFINED_ = 0 // types.h:182:1: + X_UINT16_T_DEFINED_ = 0 // types.h:89:1: + X_UINT32_T_DEFINED_ = 0 // types.h:99:1: + X_UINT64_T_DEFINED_ = 0 // types.h:109:1: + X_UINT8_T_DEFINED_ = 0 // types.h:79:1: + Unix = 1 // <predefined>:360: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.55 2022/01/05 20:57:27 millert 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.1 2016/12/17 23:38:33 patrick Exp $ + +// 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.10 2022/08/06 13:31:13 semarie 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.4 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:60:22 */ +type X__uint8_t = uint8 /* _types.h:61:24 */ +type X__int16_t = int16 /* _types.h:62:17 */ +type X__uint16_t = uint16 /* _types.h:63:25 */ +type X__int32_t = int32 /* _types.h:64:15 */ +type X__uint32_t = uint32 /* _types.h:65:23 */ +// LONGLONG +type X__int64_t = int64 /* _types.h:67:20 */ +// LONGLONG +type X__uint64_t = uint64 /* _types.h:69:28 */ + +// 7.18.1.2 Minimum-width integer types +type X__int_least8_t = X__int8_t /* _types.h:72:19 */ +type X__uint_least8_t = X__uint8_t /* _types.h:73:20 */ +type X__int_least16_t = X__int16_t /* _types.h:74:20 */ +type X__uint_least16_t = X__uint16_t /* _types.h:75:21 */ +type X__int_least32_t = X__int32_t /* _types.h:76:20 */ +type X__uint_least32_t = X__uint32_t /* _types.h:77:21 */ +type X__int_least64_t = X__int64_t /* _types.h:78:20 */ +type X__uint_least64_t = X__uint64_t /* _types.h:79:21 */ + +// 7.18.1.3 Fastest minimum-width integer types +type X__int_fast8_t = X__int32_t /* _types.h:82:20 */ +type X__uint_fast8_t = X__uint32_t /* _types.h:83:21 */ +type X__int_fast16_t = X__int32_t /* _types.h:84:20 */ +type X__uint_fast16_t = X__uint32_t /* _types.h:85:21 */ +type X__int_fast32_t = X__int32_t /* _types.h:86:20 */ +type X__uint_fast32_t = X__uint32_t /* _types.h:87:21 */ +type X__int_fast64_t = X__int64_t /* _types.h:88:20 */ +type X__uint_fast64_t = X__uint64_t /* _types.h:89:21 */ + +// 7.18.1.4 Integer types capable of holding object pointers +type X__intptr_t = int64 /* _types.h:104:16 */ +type X__uintptr_t = uint64 /* _types.h:105:24 */ + +// 7.18.1.5 Greatest-width integer types +type X__intmax_t = X__int64_t /* _types.h:108:20 */ +type X__uintmax_t = X__uint64_t /* _types.h:109:21 */ + +// Register size +type X__register_t = int64 /* _types.h:112:16 */ + +// VM system types +type X__vaddr_t = uint64 /* _types.h:115:24 */ +type X__paddr_t = uint64 /* _types.h:116:24 */ +type X__vsize_t = uint64 /* _types.h:117:24 */ +type X__psize_t = uint64 /* _types.h:118:24 */ + +// Standard system types +type X__double_t = float64 /* _types.h:121:18 */ +type X__float_t = float32 /* _types.h:122:17 */ +type X__ptrdiff_t = int64 /* _types.h:123:16 */ +type X__size_t = uint64 /* _types.h:124:24 */ +type X__ssize_t = int64 /* _types.h:125:16 */ +type X__va_list = X__builtin_va_list /* _types.h:127:27 */ + +// Wide character support types +type X__wchar_t = int32 /* _types.h:137:15 */ +type X__wint_t = int32 /* _types.h:140:15 */ +type X__rune_t = int32 /* _types.h:141:15 */ +type X__wctrans_t = uintptr /* _types.h:142:14 */ +type X__wctype_t = uintptr /* _types.h:143: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__time_t = X__int64_t /* _types.h:63:19 */ // epoch time +type X__timer_t = X__int32_t /* _types.h:64:19 */ // POSIX timer identifiers +type X__uid_t = X__uint32_t /* _types.h:65:20 */ // user id +type X__useconds_t = X__uint32_t /* _types.h:66: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:75: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 Uid_t = X__uid_t /* types.h:147:18 */ // user id +type Useconds_t = X__useconds_t /* types.h:148:22 */ // microseconds +type Suseconds_t = X__suseconds_t /* types.h:149:23 */ // microseconds (signed) +type Fsblkcnt_t = X__fsblkcnt_t /* types.h:150:22 */ // file system block count +type Fsfilcnt_t = X__fsfilcnt_t /* types.h:151:22 */ // file system file count + +// The following types may be defined in multiple header files. +type Clock_t = X__clock_t /* types.h:158:19 */ + +type Clockid_t = X__clockid_t /* types.h:163:21 */ + +type Pid_t = X__pid_t /* types.h:168:18 */ + +type Ssize_t = X__ssize_t /* types.h:178:19 */ + +type Time_t = X__time_t /* types.h:183:18 */ + +type Timer_t = X__timer_t /* types.h:188:19 */ + +type Off_t = X__off_t /* types.h:193: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 new file mode 100644 index 0000000..8ee5e35 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_windows_386.go @@ -0,0 +1,362 @@ +// 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 -ignore-unsupported-alignment -o stdio/stdio_windows_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 = 512 // stdio.h:17:1: + DUMMYSTRUCTNAME = 0 // _mingw.h:519:1: + DUMMYSTRUCTNAME1 = 0 // _mingw.h:520:1: + DUMMYSTRUCTNAME2 = 0 // _mingw.h:521:1: + DUMMYSTRUCTNAME3 = 0 // _mingw.h:522:1: + DUMMYSTRUCTNAME4 = 0 // _mingw.h:523:1: + DUMMYSTRUCTNAME5 = 0 // _mingw.h:524:1: + DUMMYUNIONNAME = 0 // _mingw.h:497:1: + DUMMYUNIONNAME1 = 0 // _mingw.h:498:1: + DUMMYUNIONNAME2 = 0 // _mingw.h:499:1: + DUMMYUNIONNAME3 = 0 // _mingw.h:500:1: + DUMMYUNIONNAME4 = 0 // _mingw.h:501:1: + DUMMYUNIONNAME5 = 0 // _mingw.h:502:1: + DUMMYUNIONNAME6 = 0 // _mingw.h:503:1: + DUMMYUNIONNAME7 = 0 // _mingw.h:504:1: + DUMMYUNIONNAME8 = 0 // _mingw.h:505:1: + DUMMYUNIONNAME9 = 0 // _mingw.h:506:1: + EOF = -1 // stdio.h:21:1: + FILENAME_MAX = 260 // stdio.h:61:1: + FOPEN_MAX = 20 // stdio.h:62:1: + MINGW_DDK_H = 0 // _mingw_ddk.h:2:1: + MINGW_HAS_DDK_H = 1 // _mingw_ddk.h:4:1: + MINGW_HAS_SECURE_API = 1 // _mingw.h:602:1: + MINGW_SDK_INIT = 0 // _mingw.h:598:1: + SEEK_CUR = 1 // stdio.h:53:1: + SEEK_END = 2 // stdio.h:54:1: + SEEK_SET = 0 // stdio.h:55:1: + STDERR_FILENO = 2 // stdio.h:59:1: + STDIN_FILENO = 0 // stdio.h:57:1: + STDOUT_FILENO = 1 // stdio.h:58:1: + SYS_OPEN = 20 // stdio.h:1486:1: + TMP_MAX = 32767 // stdio.h:64:1: + TMP_MAX_S = 32767 // stdio_s.h:27:3: + UNALIGNED = 0 // _mingw.h:384:1: + USE___UUIDOF = 0 // _mingw.h:77:1: + WIN32 = 1 // <predefined>:258:1: + WINNT = 1 // <predefined>:306:1: + X_AGLOBAL = 0 // _mingw.h:346:1: + X_ANONYMOUS_STRUCT = 0 // _mingw.h:474:1: + X_ANONYMOUS_UNION = 0 // _mingw.h:473:1: + X_ARGMAX = 100 // _mingw.h:402:1: + X_CONST_RETURN = 0 // _mingw.h:377:1: + X_CRTNOALIAS = 0 // corecrt.h:29:1: + X_CRTRESTRICT = 0 // corecrt.h:33:1: + X_CRT_ALTERNATIVE_IMPORTED = 0 // _mingw.h:313:1: + X_CRT_DIRECTORY_DEFINED = 0 // stdio.h:728:1: + X_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = 4 // corecrt_stdio_config.h:23:1: + X_CRT_INTERNAL_LOCAL_SCANF_OPTIONS = 2 // corecrt_stdio_config.h:27:1: + X_CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = 0x0008 // corecrt_stdio_config.h:15:1: + X_CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = 0x0010 // corecrt_stdio_config.h:16:1: + X_CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 0x0001 // corecrt_stdio_config.h:12:1: + X_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 0x0004 // corecrt_stdio_config.h:14:1: + X_CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 0x0002 // corecrt_stdio_config.h:13:1: + X_CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = 0x0004 // corecrt_stdio_config.h:20:1: + X_CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 0x0002 // corecrt_stdio_config.h:19:1: + X_CRT_INTERNAL_SCANF_SECURECRT = 0x0001 // corecrt_stdio_config.h:18:1: + X_CRT_MANAGED_HEAP_DEPRECATE = 0 // _mingw.h:361:1: + X_CRT_PACKING = 8 // corecrt.h:14:1: + X_CRT_PERROR_DEFINED = 0 // stdio.h:712:1: + X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0 // _mingw_secapi.h:34:1: + X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0 // _mingw_secapi.h:35:1: + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0 // _mingw_secapi.h:36:1: + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0 // _mingw_secapi.h:37:1: + X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0 // _mingw_secapi.h:38:1: + X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0 // corecrt.h:501:1: + X_CRT_WPERROR_DEFINED = 0 // stdio.h:1423:1: + X_DLL = 0 // _mingw.h:326:1: + X_ERRCODE_DEFINED = 0 // corecrt.h:117:1: + X_FILE_DEFINED = 0 // stdio.h:35:1: + X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: + X_FILE_OFFSET_BITS_SET_FSEEKO = 0 // stdio.h:692:1: + X_FILE_OFFSET_BITS_SET_FTELLO = 0 // stdio.h:699:1: + X_FILE_OFFSET_BITS_SET_OFFT = 0 // _mingw_off_t.h:21:1: + X_FPOS_T_DEFINED = 0 // stdio.h:98:1: + X_ILP32 = 1 // <predefined>:211:1: + X_INC_CORECRT = 0 // corecrt.h:8:1: + X_INC_CRTDEFS_MACRO = 0 // _mingw_mac.h:8:1: + X_INC_MINGW_SECAPI = 0 // _mingw_secapi.h:8:1: + X_INC_STDIO = 0 // stdio.h:7:1: + X_INC_STDIO_S = 0 // stdio_s.h:7:1: + X_INC_SWPRINTF_INL = 0 // swprintf.inl:8:1: + X_INC_VADEFS = 0 // vadefs.h:7:1: + X_INC__MINGW_H = 0 // _mingw.h:8:1: + X_INT128_DEFINED = 0 // _mingw.h:237:1: + X_INTEGRAL_MAX_BITS = 64 // <predefined>:320:1: + X_INTPTR_T_DEFINED = 0 // corecrt.h:62:1: + X_IOB_ENTRIES = 20 // stdio.h:20:1: + X_IOEOF = 0x0010 // stdio.h:127:1: + X_IOERR = 0x0020 // stdio.h:128:1: + X_IOFBF = 0x0000 // stdio.h:122:1: + X_IOLBF = 0x0040 // stdio.h:123:1: + X_IOMYBUF = 0x0008 // stdio.h:126:1: + X_IONBF = 0x0004 // stdio.h:124:1: + X_IOREAD = 0x0001 // stdio.h:119:1: + X_IORW = 0x0080 // stdio.h:130:1: + X_IOSTRG = 0x0040 // stdio.h:129:1: + X_IOWRT = 0x0002 // stdio.h:120:1: + X_MT = 0 // _mingw.h:330:1: + X_M_IX86 = 600 // _mingw_mac.h:54:1: + X_NFILE = 512 // stdio.h:18:1: + X_NSTREAM_ = 512 // stdio.h:19:1: + X_OFF64_T_DEFINED = 0 // _mingw_off_t.h:12:1: + X_OFF_T_ = 0 // _mingw_off_t.h:4:1: + X_OFF_T_DEFINED = 0 // _mingw_off_t.h:2:1: + X_OLD_P_OVERLAY = 2 // stdio.h:1557:1: + X_PGLOBAL = 0 // _mingw.h:342:1: + X_PTRDIFF_T_ = 0 // corecrt.h:90:1: + X_PTRDIFF_T_DEFINED = 0 // corecrt.h:88:1: + X_P_DETACH = 4 // stdio.h:1559:1: + X_P_NOWAIT = 1 // stdio.h:1556:1: + X_P_NOWAITO = 3 // stdio.h:1558:1: + X_P_OVERLAY = 2 // stdio.h:1560:1: + X_P_WAIT = 0 // stdio.h:1555:1: + X_P_tmpdir = "\\" // stdio.h:42:1: + X_RSIZE_T_DEFINED = 0 // corecrt.h:58:1: + X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD // _mingw.h:349:1: + X_SIZE_T_DEFINED = 0 // corecrt.h:37:1: + X_SPAWNV_DEFINED = 0 // stdio.h:1567:1: + X_SSIZE_T_DEFINED = 0 // corecrt.h:47:1: + X_STDIO_CONFIG_DEFINED = 0 // corecrt_stdio_config.h:8:1: + X_STDIO_DEFINED = 0 // stdio.h:1453:1: + X_STDIO_S_DEFINED = 0 // stdio_s.h:25:1: + X_STDSTREAM_DEFINED = 0 // stdio.h:112:1: + X_SYS_OPEN = 20 // stdio.h:63:1: + X_TAGLC_ID_DEFINED = 0 // corecrt.h:447:1: + X_THREADLOCALEINFO = 0 // corecrt.h:456:1: + X_TIME32_T_DEFINED = 0 // corecrt.h:122:1: + X_TIME64_T_DEFINED = 0 // corecrt.h:127:1: + X_TIME_T_DEFINED = 0 // corecrt.h:139:1: + X_TWO_DIGIT_EXPONENT = 0x1 // stdio.h:135:1: + X_UINTPTR_T_DEFINED = 0 // corecrt.h:75:1: + X_USE_32BIT_TIME_T = 0 // _mingw.h:372:1: + X_VA_LIST_DEFINED = 0 // <builtin>:55:1: + X_W64 = 0 // _mingw.h:296:1: + X_WAIT_CHILD = 0 // stdio.h:1562:1: + X_WAIT_GRANDCHILD = 1 // stdio.h:1563:1: + X_WCHAR_T_DEFINED = 0 // corecrt.h:101:1: + X_WCTYPE_T_DEFINED = 0 // corecrt.h:108:1: + X_WIN32 = 1 // <predefined>:164:1: + X_WIN32_WINNT = 0x502 // _mingw.h:233:1: + X_WINT_T = 0 // corecrt.h:110:1: + X_WSPAWN_DEFINED = 0 // stdio.h:1543:1: + X_WSTDIO_DEFINED = 0 // stdio.h:958:1: + X_WSTDIO_S_DEFINED = 0 // stdio_s.h:579:1: + X_X86_ = 1 // <predefined>:169:1: + I386 = 1 // <predefined>:171:1: +) + +type Ptrdiff_t = int32 /* <builtin>:3:26 */ + +type Size_t = uint32 /* <builtin>:9:23 */ + +type Wchar_t = uint16 /* <builtin>:15:24 */ + +type X__builtin_va_list = uintptr /* <builtin>:46:14 */ +type X__float128 = float64 /* <builtin>:47:21 */ + +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 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 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. + +// * +// 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 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 +// fix was applied to trunk. This macro gets just increased on trunk. For +// other branches its value won't be modified. + +// mingw.org's version macros: these make gcc to define +// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global +// and the __mingwthr_key_dtor() function from the MinGW +// CRT in its private gthr-win32.h header. + +// Set VC specific compiler target macros. + +// For x86 we have always to prefix by underscore. + +// Special case nameless struct/union. + +// 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. +// No warranty is given; refer to the file DISCLAIMER.PD within this package. + +// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx +// Templates won't work in C, will break if secure API is not enabled, disabled + +// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true +// fallback on default implementation if we can't know the size of the destination + +// Include _cygwin.h if we're building a Cygwin application. + +// Target specific macro replacement for type "long". In the Windows API, +// the type long is always 32 bit, even if the target is 64 bit (LLP64). +// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right +// sized definitions and declarations, all usage of type long in the Windows +// headers have to be replaced by the below defined macro __LONG32. + +// C/C++ specific language defines. + +// Note the extern. This is needed to work around GCC's +// limitations in handling dllimport attribute. + +// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's +// variadiac macro facility, because variadic macros cause syntax +// errors with --traditional-cpp. + +// High byte is the major version, low byte is the minor. + +// * +// 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 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. + +// 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 Rsize_t = Size_t /* corecrt.h:57:16 */ + +type Intptr_t = int32 /* corecrt.h:69:13 */ + +type Uintptr_t = uint32 /* corecrt.h:82:22 */ + +type Wint_t = uint16 /* corecrt.h:111:24 */ +type Wctype_t = uint16 /* corecrt.h:112:24 */ + +type Errno_t = int32 /* corecrt.h:118:13 */ + +type X__time32_t = int32 /* corecrt.h:123:14 */ + +type X__time64_t = int64 /* corecrt.h:128:35 */ + +type Time_t = X__time32_t /* corecrt.h:141:20 */ + +type Threadlocaleinfostruct = struct { + Frefcount int32 + Flc_codepage uint32 + Flc_collate_cp uint32 + Flc_handle [6]uint32 + Flc_id [6]LC_ID + Flc_category [6]struct { + Flocale uintptr + Fwlocale uintptr + Frefcount uintptr + Fwrefcount uintptr + } + Flc_clike int32 + Fmb_cur_max int32 + Flconv_intl_refcount uintptr + Flconv_num_refcount uintptr + Flconv_mon_refcount uintptr + Flconv uintptr + Fctype1_refcount uintptr + Fctype1 uintptr + Fpctype uintptr + Fpclmap uintptr + Fpcumap uintptr + Flc_time_curr uintptr +} /* corecrt.h:435:1 */ + +type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */ +type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */ + +type Localeinfo_struct = struct { + Flocinfo Pthreadlocinfo + Fmbcinfo Pthreadmbcinfo +} /* corecrt.h:441:9 */ + +type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */ +type X_locale_t = uintptr /* corecrt.h:444:19 */ + +type TagLC_ID = struct { + FwLanguage uint16 + FwCountry uint16 + FwCodePage uint16 +} /* corecrt.h:435:1 */ + +type LC_ID = TagLC_ID /* corecrt.h:452:3 */ +type LPLC_ID = uintptr /* corecrt.h:452:9 */ + +type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */ + +type X_iobuf = struct { + F_ptr uintptr + F_cnt int32 + F_base uintptr + F_flag int32 + F_file int32 + F_charbuf int32 + F_bufsiz int32 + F_tmpfname uintptr +} /* stdio.h:24:3 */ + +type FILE = X_iobuf /* stdio.h:34:25 */ + +type X_off_t = int32 /* _mingw_off_t.h:5:16 */ +type Off32_t = int32 /* _mingw_off_t.h:7:16 */ + +type X_off64_t = int64 /* _mingw_off_t.h:13:39 */ +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 */ + +var _ int8 /* gen.c:2:13: */ diff --git a/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go b/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go new file mode 100644 index 0000000..a23a573 --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_windows_amd64.go @@ -0,0 +1,365 @@ +// 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_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 ( + 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 + WIN64 = 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_AMD64 = 100 + X_M_X64 = 100 + 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_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_WIN64 = 1 + X_WINT_T = 0 + X_WSPAWN_DEFINED = 0 + X_WSTDIO_DEFINED = 0 + X_WSTDIO_S_DEFINED = 0 +) + +type Ptrdiff_t = int64 /* <builtin>:3:26 */ + +type Size_t = uint64 /* <builtin>:9:23 */ + +type Wchar_t = uint16 /* <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 */ + +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 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 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 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 +// fix was applied to trunk. This macro gets just increased on trunk. For +// other branches its value won't be modified. + +// mingw.org's version macros: these make gcc to define +// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global +// and the __mingwthr_key_dtor() function from the MinGW +// CRT in its private gthr-win32.h header. + +// Set VC specific compiler target macros. + +// MS does not prefix symbols by underscores for 64-bit. +// As we have to support older gcc version, which are using underscores +// as symbol prefix for x64, we have to check here for the user label +// prefix defined by gcc. + +// Special case nameless struct/union. + +// MinGW-w64 has some additional C99 printf/scanf feature support. +// So we add some helper macros to ease recognition of them. + +// * +// 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. + +// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx +// Templates won't work in C, will break if secure API is not enabled, disabled + +// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true +// fallback on default implementation if we can't know the size of the destination + +// Include _cygwin.h if we're building a Cygwin application. + +// Target specific macro replacement for type "long". In the Windows API, +// the type long is always 32 bit, even if the target is 64 bit (LLP64). +// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right +// sized definitions and declarations, all usage of type long in the Windows +// headers have to be replaced by the below defined macro __LONG32. + +// C/C++ specific language defines. + +// Note the extern. This is needed to work around GCC's +// limitations in handling dllimport attribute. + +// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's +// variadiac macro facility, because variadic macros cause syntax +// errors with --traditional-cpp. + +// High byte is the major version, low byte is the minor. + +// * +// 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 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__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ + +type Ssize_t = int64 /* crtdefs.h:45:35 */ + +type Rsize_t = Size_t /* crtdefs.h:52:16 */ + +type Intptr_t = int64 /* crtdefs.h:62:35 */ + +type Uintptr_t = uint64 /* crtdefs.h:75:44 */ + +type Wint_t = uint16 /* crtdefs.h:106:24 */ +type Wctype_t = uint16 /* crtdefs.h:107:24 */ + +type Errno_t = int32 /* crtdefs.h:113:13 */ + +type X__time32_t = int32 /* crtdefs.h:118:14 */ + +type X__time64_t = int64 /* crtdefs.h:123:35 */ + +type Time_t = X__time64_t /* crtdefs.h:138:20 */ + +type Threadlocaleinfostruct = struct { + Frefcount int32 + Flc_codepage uint32 + Flc_collate_cp uint32 + Flc_handle [6]uint32 + Flc_id [6]LC_ID + Flc_category [6]struct { + Flocale uintptr + Fwlocale uintptr + Frefcount uintptr + Fwrefcount uintptr + } + Flc_clike int32 + Fmb_cur_max int32 + Flconv_intl_refcount uintptr + Flconv_num_refcount uintptr + Flconv_mon_refcount uintptr + Flconv uintptr + Fctype1_refcount uintptr + Fctype1 uintptr + Fpctype uintptr + Fpclmap uintptr + Fpcumap uintptr + Flc_time_curr uintptr +} /* crtdefs.h:422:1 */ + +type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */ +type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */ + +type Localeinfo_struct = struct { + Flocinfo Pthreadlocinfo + Fmbcinfo Pthreadmbcinfo +} /* crtdefs.h:428:9 */ + +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 +} /* crtdefs.h:422:1 */ + +type LC_ID = TagLC_ID /* crtdefs.h:439:3 */ +type LPLC_ID = uintptr /* crtdefs.h:439:9 */ + +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 + F_cnt int32 + F__ccgo_pad1 [4]byte + F_base uintptr + F_flag int32 + F_file int32 + F_charbuf int32 + F_bufsiz int32 + F_tmpfname uintptr +} /* stdio.h:26:3 */ + +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 */ + +type X_off64_t = int64 /* _mingw_off_t.h:13:39 */ +type Off64_t = int64 /* _mingw_off_t.h:15:39 */ + +type Off_t = Off64_t /* _mingw_off_t.h:24:17 */ + +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/stdio/stdio_windows_arm64.go b/vendor/modernc.org/libc/stdio/stdio_windows_arm64.go new file mode 100644 index 0000000..c69105e --- /dev/null +++ b/vendor/modernc.org/libc/stdio/stdio_windows_arm64.go @@ -0,0 +1,348 @@ +// 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_arm64.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 = 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 + WIN64 = 1 + WINNT = 1 + X_AGLOBAL = 0 + X_ANONYMOUS_STRUCT = 0 + X_ANONYMOUS_UNION = 0 + X_ARGMAX = 100 + X_ARM64_ = 1 + 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_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_INTPTR_T_DEFINED = 0 + X_IOB_ENTRIES = 20 + X_IOFBF = 0x0000 + X_IOLBF = 0x0040 + X_IONBF = 0x0004 + X_MT = 0 + X_M_ARM64 = 1 + 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_UCRT = 0 + X_UINTPTR_T_DEFINED = 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 = 0x601 + X_WIN64 = 1 + X_WINT_T = 0 + X_WSPAWN_DEFINED = 0 + X_WSTDIO_DEFINED = 0 + X_WSTDIO_S_DEFINED = 0 +) + +type Ptrdiff_t = int64 /* <builtin>:3:26 */ + +type Size_t = uint64 /* <builtin>:9:23 */ + +type Wchar_t = uint16 /* <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 */ + +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 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 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. + +// * +// 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 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 +// fix was applied to trunk. This macro gets just increased on trunk. For +// other branches its value won't be modified. + +// mingw.org's version macros: these make gcc to define +// MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global +// and the __mingwthr_key_dtor() function from the MinGW +// CRT in its private gthr-win32.h header. + +// Set VC specific compiler target macros. + +// MS does not prefix symbols by underscores for 64-bit. +// As we have to support older gcc version, which are using underscores +// as symbol prefix for x64, we have to check here for the user label +// prefix defined by gcc. + +// Special case nameless struct/union. + +// 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. +// No warranty is given; refer to the file DISCLAIMER.PD within this package. + +// http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx +// Templates won't work in C, will break if secure API is not enabled, disabled + +// https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true +// fallback on default implementation if we can't know the size of the destination + +// Include _cygwin.h if we're building a Cygwin application. + +// Target specific macro replacement for type "long". In the Windows API, +// the type long is always 32 bit, even if the target is 64 bit (LLP64). +// On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right +// sized definitions and declarations, all usage of type long in the Windows +// headers have to be replaced by the below defined macro __LONG32. + +// C/C++ specific language defines. + +// Note the extern. This is needed to work around GCC's +// limitations in handling dllimport attribute. + +// Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's +// variadiac macro facility, because variadic macros cause syntax +// errors with --traditional-cpp. + +// High byte is the major version, low byte is the minor. + +// Allow both 0x1400 and 0xE00 to identify UCRT + +// ===-------- vadefs.h ---------------------------------------------------=== +// +// 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 +// +//===-----------------------------------------------------------------------=== + +// Only include this if we are aiming for MSVC compatibility. +// * +// 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 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. + +// for backward compatibility + +type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */ + +type Ssize_t = int64 /* corecrt.h:45:35 */ + +type Rsize_t = Size_t /* corecrt.h:52:16 */ + +type Intptr_t = int64 /* corecrt.h:62:35 */ + +type Uintptr_t = uint64 /* corecrt.h:75:44 */ + +type Wint_t = uint16 /* corecrt.h:106:24 */ +type Wctype_t = uint16 /* corecrt.h:107:24 */ + +type Errno_t = int32 /* corecrt.h:113:13 */ + +type X__time32_t = int32 /* corecrt.h:118:14 */ + +type X__time64_t = int64 /* corecrt.h:123:35 */ + +type Time_t = X__time64_t /* corecrt.h:138:20 */ + +type Threadlocaleinfostruct = struct { + F_locale_pctype uintptr + F_locale_mb_cur_max int32 + F_locale_lc_codepage uint32 +} /* corecrt.h:430:1 */ + +type Pthreadlocinfo = uintptr /* corecrt.h:432:39 */ +type Pthreadmbcinfo = uintptr /* corecrt.h:433:36 */ + +type Localeinfo_struct = struct { + Flocinfo Pthreadlocinfo + Fmbcinfo Pthreadmbcinfo +} /* corecrt.h:436:9 */ + +type X_locale_tstruct = Localeinfo_struct /* corecrt.h:439:3 */ +type X_locale_t = uintptr /* corecrt.h:439:19 */ + +type TagLC_ID = struct { + FwLanguage uint16 + FwCountry uint16 + FwCodePage uint16 +} /* corecrt.h:443:9 */ + +type LC_ID = TagLC_ID /* corecrt.h:447:3 */ +type LPLC_ID = uintptr /* corecrt.h:447:9 */ + +type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:482:3 */ + +type X_iobuf = struct{ F_Placeholder uintptr } /* stdio.h:33:3 */ + +type FILE = X_iobuf /* stdio.h:47:25 */ + +type X_off_t = int32 /* _mingw_off_t.h:5:16 */ +type Off32_t = int32 /* _mingw_off_t.h:7:16 */ + +type X_off64_t = int64 /* _mingw_off_t.h:13:39 */ +type Off64_t = int64 /* _mingw_off_t.h:15:39 */ + +type Off_t = Off64_t /* _mingw_off_t.h:24:17 */ + +type Fpos_t = int64 /* stdio.h:115:37 */ + +var _ int8 /* gen.c:2:13: */ |