envoid/vendor/modernc.org/libc/pthread/pthread_windows_arm64.go
Sagi Dayan 2ca1e7826a
Some checks failed
Codespell / Check for spelling errors (push) Failing after 1m35s
Initial commit
Signed-off-by: Sagi Dayan <sagidayan@gmail.com>
2024-12-12 19:53:28 +02:00

1050 lines
41 KiB
Go

// Code generated by 'ccgo pthread\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread\pthread_windows_arm64.go -pkgname pthread', DO NOT EDIT.
package pthread
import (
"math"
"reflect"
"sync/atomic"
"unsafe"
)
var _ = math.Pi
var _ reflect.Kind
var _ atomic.Value
var _ unsafe.Pointer
const (
CHAR_BIT = 8
CHAR_MAX = 127
CHAR_MIN = -128
CLK_TCK = 1000
CLOCKS_PER_SEC = 1000
CLOCK_MONOTONIC = 1
CLOCK_PROCESS_CPUTIME_ID = 2
CLOCK_REALTIME = 0
CLOCK_REALTIME_COARSE = 4
CLOCK_THREAD_CPUTIME_ID = 3
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
E2BIG = 7
EACCES = 13
EADDRINUSE = 100
EADDRNOTAVAIL = 101
EAFNOSUPPORT = 102
EAGAIN = 11
EALREADY = 103
EBADF = 9
EBADMSG = 104
EBUSY = 16
ECANCELED = 105
ECHILD = 10
ECONNABORTED = 106
ECONNREFUSED = 107
ECONNRESET = 108
EDEADLK = 36
EDEADLOCK = 36
EDESTADDRREQ = 109
EDOM = 33
EEXIST = 17
EFAULT = 14
EFBIG = 27
EHOSTUNREACH = 110
EIDRM = 111
EILSEQ = 42
EINPROGRESS = 112
EINTR = 4
EINVAL = 22
EIO = 5
EISCONN = 113
EISDIR = 21
ELOOP = 114
EMFILE = 24
EMLINK = 31
EMSGSIZE = 115
ENAMETOOLONG = 38
ENETDOWN = 116
ENETRESET = 117
ENETUNREACH = 118
ENFILE = 23
ENOBUFS = 119
ENODATA = 120
ENODEV = 19
ENOENT = 2
ENOEXEC = 8
ENOFILE = 2
ENOLCK = 39
ENOLINK = 121
ENOMEM = 12
ENOMSG = 122
ENOPROTOOPT = 123
ENOSPC = 28
ENOSR = 124
ENOSTR = 125
ENOSYS = 40
ENOTCONN = 126
ENOTDIR = 20
ENOTEMPTY = 41
ENOTRECOVERABLE = 127
ENOTSOCK = 128
ENOTSUP = 129
ENOTTY = 25
ENXIO = 6
EOPNOTSUPP = 130
EOVERFLOW = 132
EOWNERDEAD = 133
EPERM = 1
EPIPE = 32
EPROTO = 134
EPROTONOSUPPORT = 135
EPROTOTYPE = 136
ERANGE = 34
EROFS = 30
ESPIPE = 29
ESRCH = 3
ETIME = 137
ETIMEDOUT = 138
ETXTBSY = 139
EWOULDBLOCK = 140
EXDEV = 18
GENERIC_ERRORCHECK_INITIALIZER = -2
GENERIC_INITIALIZER = -1
GENERIC_NORMAL_INITIALIZER = -1
GENERIC_RECURSIVE_INITIALIZER = -3
INT_MAX = 2147483647
INT_MIN = -2147483648
LLONG_MAX = 9223372036854775807
LLONG_MIN = -9223372036854775808
LONG_LONG_MAX = 9223372036854775807
LONG_LONG_MIN = -9223372036854775808
LONG_MAX = 2147483647
LONG_MIN = -2147483648
MAX_READ_LOCKS = 2147483646
MB_LEN_MAX = 1
MINGW_DDK_H = 0
MINGW_HAS_DDK_H = 1
MINGW_HAS_SECURE_API = 1
MINGW_SDK_INIT = 0
NSIG = 23
OLD_P_OVERLAY = 2
PTHREAD_BARRIER_SERIAL_THREAD = 1
PTHREAD_CANCEL_ASYNCHRONOUS = 0x02
PTHREAD_CANCEL_DEFERRED = 0
PTHREAD_CANCEL_DISABLE = 0
PTHREAD_CANCEL_ENABLE = 0x01
PTHREAD_CREATE_DETACHED = 0x04
PTHREAD_CREATE_JOINABLE = 0
PTHREAD_DEFAULT_ATTR = 1
PTHREAD_DESTRUCTOR_ITERATIONS = 256
PTHREAD_EXPLICIT_SCHED = 0
PTHREAD_INHERIT_SCHED = 0x08
PTHREAD_KEYS_MAX = 1048576
PTHREAD_MUTEX_ADAPTIVE_NP = 0
PTHREAD_MUTEX_DEFAULT = 0
PTHREAD_MUTEX_ERRORCHECK = 1
PTHREAD_MUTEX_ERRORCHECK_NP = 1
PTHREAD_MUTEX_FAST_NP = 0
PTHREAD_MUTEX_NORMAL = 0
PTHREAD_MUTEX_PRIVATE = 0
PTHREAD_MUTEX_RECURSIVE = 2
PTHREAD_MUTEX_RECURSIVE_NP = 2
PTHREAD_MUTEX_SHARED = 1
PTHREAD_MUTEX_TIMED_NP = 0
PTHREAD_ONCE_INIT = 0
PTHREAD_PRIO_INHERIT = 8
PTHREAD_PRIO_MULT = 32
PTHREAD_PRIO_NONE = 0
PTHREAD_PRIO_PROTECT = 16
PTHREAD_PROCESS_PRIVATE = 0
PTHREAD_PROCESS_SHARED = 1
PTHREAD_SCOPE_PROCESS = 0
PTHREAD_SCOPE_SYSTEM = 0x10
PTHREAD_THREADS_MAX = 2019
P_DETACH = 4
P_NOWAIT = 1
P_NOWAITO = 3
P_OVERLAY = 2
P_WAIT = 0
RWLS_PER_THREAD = 8
SCHAR_MAX = 127
SCHAR_MIN = -128
SCHED_FIFO = 1
SCHED_MAX = 2
SCHED_MIN = 0
SCHED_OTHER = 0
SCHED_RR = 2
SEM_NSEMS_MAX = 1024
SHRT_MAX = 32767
SHRT_MIN = -32768
SIGABRT = 22
SIGABRT2 = 22
SIGABRT_COMPAT = 6
SIGBREAK = 21
SIGFPE = 8
SIGILL = 4
SIGINT = 2
SIGSEGV = 11
SIGTERM = 15
SIG_BLOCK = 0
SIG_SETMASK = 2
SIG_UNBLOCK = 1
STRUNCATE = 80
TIMER_ABSTIME = 1
TIME_UTC = 1
UCHAR_MAX = 255
UINT_MAX = 4294967295
ULLONG_MAX = 18446744073709551615
ULONG_LONG_MAX = 18446744073709551615
ULONG_MAX = 4294967295
UNALIGNED = 0
USE___UUIDOF = 0
USHRT_MAX = 65535
WAIT_CHILD = 0
WAIT_GRANDCHILD = 1
WIN32 = 1
WIN64 = 1
WINNT = 1
WINPTHREAD_API = 0
WIN_PTHREADS_H = 0
WIN_PTHREADS_PTHREAD_COMPAT_H = 0
WIN_PTHREADS_SIGNAL_H = 0
WIN_PTHREADS_TIME_H = 0
WIN_PTHREADS_UNISTD_H = 0
X_AGLOBAL = 0
X_ANONYMOUS_STRUCT = 0
X_ANONYMOUS_UNION = 0
X_ARGMAX = 100
X_ARM64_ = 1
X_CLOCK_T_DEFINED = 0
X_CONST_RETURN = 0
X_CRTNOALIAS = 0
X_CRTRESTRICT = 0
X_CRT_ALTERNATIVE_IMPORTED = 0
X_CRT_ERRNO_DEFINED = 0
X_CRT_GETPID_DEFINED = 0
X_CRT_MANAGED_HEAP_DEPRECATE = 0
X_CRT_PACKING = 8
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_SYSTEM_DEFINED = 0
X_CRT_TERMINATE_DEFINED = 0
X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
X_CRT_WSYSTEM_DEFINED = 0
X_DEV_T_DEFINED = 0
X_DLL = 0
X_ERRCODE_DEFINED = 0
X_FILE_OFFSET_BITS = 64
X_FILE_OFFSET_BITS_SET_OFFT = 0
X_GCC_LIMITS_H_ = 0
X_GTHREAD_USE_MUTEX_INIT_FUNC = 1
X_INC_CORECRT = 0
X_INC_CORECRT_STARTUP = 0
X_INC_CRTDEFS = 0
X_INC_CRTDEFS_MACRO = 0
X_INC_ERRNO = 0
X_INC_MINGW_SECAPI = 0
X_INC_PROCESS = 0
X_INC_SIGNAL = 0
X_INC_TYPES = 0
X_INC_VADEFS = 0
X_INC_WTIME_INL = 0
X_INC_WTIME_S_INL = 0
X_INC__MINGW_H = 0
X_INO_T_DEFINED = 0
X_INT128_DEFINED = 0
X_INTPTR_T_DEFINED = 0
X_MODE_T_ = 0
X_MT = 0
X_M_ARM64 = 1
X_OFF64_T_DEFINED = 0
X_OFF_T_ = 0
X_OFF_T_DEFINED = 0
X_OLD_P_OVERLAY = 2
X_PGLOBAL = 0
X_PID_T_ = 0
X_POSIX_BARRIERS = 200112
X_POSIX_CLOCK_SELECTION = 200112
X_POSIX_CPUTIME = 200809
X_POSIX_MONOTONIC_CLOCK = 200809
X_POSIX_READER_WRITER_LOCKS = 200112
X_POSIX_SEMAPHORES = 200112
X_POSIX_SEM_NSEMS_MAX = 256
X_POSIX_SPIN_LOCKS = 200112
X_POSIX_THREADS = 200112
X_POSIX_THREAD_CPUTIME = 200809
X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 256
X_POSIX_THREAD_KEYS_MAX = 1048576
X_POSIX_TIMEOUTS = 200112
X_POSIX_TIMERS = 200809
X_PTRDIFF_T = 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_RSIZE_T_DEFINED = 0
X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
X_SIGSET_T_ = 0
X_SIG_ATOMIC_T_DEFINED = 0
X_SIZE_T = 0
X_SIZE_T_DEFINED = 0
X_SPAWNV_DEFINED = 0
X_SSIZE_T_DEFINED = 0
X_TAGLC_ID_DEFINED = 0
X_THREADLOCALEINFO = 0
X_TIME32_T_DEFINED = 0
X_TIME64_T_DEFINED = 0
X_TIMEB_DEFINED = 0
X_TIMEB_H_ = 0
X_TIMEB_H_S = 0
X_TIMESPEC_DEFINED = 0
X_TIMEVAL_DEFINED = 0
X_TIMEZONE_DEFINED = 0
X_TIME_H_ = 0
X_TIME_T_DEFINED = 0
X_TM_DEFINED = 0
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 = 0
X_WCHAR_T_DEFINED = 0
X_WCTYPE_T_DEFINED = 0
X_WEXEC_DEFINED = 0
X_WIN32 = 1
X_WIN32_WINNT = 0x601
X_WIN64 = 1
X_WINT_T = 0
X_WSPAWN_DEFINED = 0
X_WTIME_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 */
// ===---- __stddef_max_align_t.h - Definition of max_align_t for modules ---===
//
// 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
//
//===-----------------------------------------------------------------------===
// Define 'max_align_t' to match the GCC definition.
type Max_align_t = struct {
F__clang_max_align_nonce1 int64
F__clang_max_align_nonce2 float64
} /* __stddef_max_align_t.h:24:3 */
// Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
// __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t
// *
// This file has no copyright assigned and is placed in the Public Domain.
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
// *
// 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.
// 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 */
// Posix thread extensions.
// Extension defined as by report VC 10+ defines error-numbers.
// Defined as WSAETIMEDOUT.
// *
// 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_ino_t = uint16 /* types.h:43:24 */
type Ino_t = uint16 /* types.h:45:24 */
type X_dev_t = uint32 /* types.h:51:22 */
type Dev_t = uint32 /* types.h:53:22 */
type X_pid_t = int64 /* types.h:63:17 */
type Pid_t = X_pid_t /* types.h:68:16 */
type X_mode_t = uint16 /* types.h:74:24 */
type Mode_t = X_mode_t /* types.h:77:17 */
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 Useconds_t = uint32 /* types.h:84:22 */
type Timespec = struct {
Ftv_sec Time_t
Ftv_nsec int32
F__ccgo_pad1 [4]byte
} /* types.h:89:1 */
type Itimerspec = struct {
Fit_interval struct {
Ftv_sec Time_t
Ftv_nsec int32
F__ccgo_pad1 [4]byte
}
Fit_value struct {
Ftv_sec Time_t
Ftv_nsec int32
F__ccgo_pad1 [4]byte
}
} /* types.h:94:1 */
type X_sigset_t = uint64 /* types.h:104:28 */
type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
type X_onexit_table_t1 = struct {
F_first uintptr
F_last uintptr
F_end uintptr
} /* corecrt_startup.h:24:9 */
type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
// Includes a definition of _pid_t and pid_t
// *
// This file has no copyright assigned and is placed in the Public Domain.
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
type X_beginthread_proc_type = uintptr /* process.h:32:16 */
type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */
type X_tls_callback_type = uintptr /* process.h:64:16 */
//===---- limits.h - Standard header for integer sizes --------------------===* *
// 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
//
// \*===----------------------------------------------------------------------===
// The system's limits.h may, in turn, try to #include_next GCC's limits.h.
// Avert this #include_next madness.
// System headers include a number of constants from POSIX in <limits.h>.
// Include it if we're hosted.
// Many system headers try to "help us out" by defining these. No really, we
// know how big each datatype is.
// C90/99 5.2.4.2.1
// C2x 5.2.4.2.1
// FIXME: This is using the placeholder dates Clang produces for these macros
// in C2x mode; switch to the correct values once they've been published.
// C99 5.2.4.2.1: Added long long.
// C++11 18.3.3.2: same contents as the Standard C Library header <limits.h>.
//
// LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad
// that we don't have something like #pragma poison that could be used to
// deprecate a macro - the code should just use LLONG_MAX and friends.
//
// *
// 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.
//
// Copyright (c) 2013-2016 mingw-w64 project
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// Windows has rudimentary signals support.
type Sig_atomic_t = int32 /* signal.h:18:15 */
type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
// *
// 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.
// Adding timespec definition.
// *
// 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__timeb32 = struct {
Ftime X__time32_t
Fmillitm uint16
Ftimezone int16
Fdstflag int16
F__ccgo_pad1 [2]byte
} /* timeb.h:53:3 */
type Timeb = struct {
Ftime Time_t
Fmillitm uint16
Ftimezone int16
Fdstflag int16
F__ccgo_pad1 [2]byte
} /* timeb.h:61:3 */
type X__timeb64 = struct {
Ftime X__time64_t
Fmillitm uint16
Ftimezone int16
Fdstflag int16
F__ccgo_pad1 [2]byte
} /* timeb.h:69:3 */
type X_timespec32 = struct {
Ftv_sec X__time32_t
Ftv_nsec int32
} /* timeb.h:89:1 */
type X_timespec64 = struct {
Ftv_sec X__time64_t
Ftv_nsec int32
F__ccgo_pad1 [4]byte
} /* timeb.h:94:1 */
type Clock_t = int32 /* time.h:63:16 */
type Tm = struct {
Ftm_sec int32
Ftm_min int32
Ftm_hour int32
Ftm_mday int32
Ftm_mon int32
Ftm_year int32
Ftm_wday int32
Ftm_yday int32
Ftm_isdst int32
} /* time.h:100:3 */
var Xdaylight int32 /* time.h:275:22: */
var Xtimezone int32 /* time.h:276:23: */
var Xtzname [2]uintptr /* time.h:277:23: */
// *
// 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 Timeval = struct {
Ftv_sec int32
Ftv_usec int32
} /* _timeval.h:10:1 */
type Timezone = struct {
Ftz_minuteswest int32
Ftz_dsttime int32
} /* time.h:285:1 */
// POSIX 2008 says clock_gettime and timespec are defined in time.h header,
// but other systems - like Linux, Solaris, etc - tend to declare such
// recent extensions only if the following guards are met.
//
// Copyright (c) 2011-2016 mingw-w64 project
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// *
// 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.
// Posix timers are supported
// Monotonic clocks are available.
// CPU-time clocks are available.
// Clock support in threads are available.
type Clockid_t = int32 /* pthread_time.h:49:13 */
// maximum number of times a read lock may be obtained
// No fork() in windows - so ignore this
// unsupported stuff:
type Pthread_once_t = int32 /* pthread.h:181:14 */
type Pthread_mutexattr_t = uint32 /* pthread.h:182:18 */
type Pthread_key_t = uint32 /* pthread.h:183:18 */
type Pthread_barrierattr_t = uintptr /* pthread.h:184:14 */
type Pthread_condattr_t = int32 /* pthread.h:185:13 */
type Pthread_rwlockattr_t = int32 /* pthread.h:186:13 */
//
// struct _pthread_v;
//
// typedef struct pthread_t {
// struct _pthread_v *p;
// int x;
// } pthread_t;
type Pthread_t = Uintptr_t /* pthread.h:197:19 */
type X_pthread_cleanup1 = struct {
Ffunc uintptr
Farg uintptr
Fnext uintptr
} /* pthread.h:199:9 */
type X_pthread_cleanup = X_pthread_cleanup1 /* pthread.h:199:33 */
// Note that if async cancelling is used, then there is a race here
// Some POSIX realtime extensions, mostly stubbed
type Sched_param = struct{ Fsched_priority int32 } /* pthread.h:226:1 */
type Pthread_attr_t1 = struct {
Fp_state uint32
F__ccgo_pad1 [4]byte
Fstack uintptr
Fs_size Size_t
Fparam struct{ Fsched_priority int32 }
F__ccgo_pad2 [4]byte
} /* pthread.h:238:9 */
type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:238:31 */
// synchronization objects
type Pthread_spinlock_t = Intptr_t /* pthread.h:255:18 */
type Pthread_mutex_t = Intptr_t /* pthread.h:256:18 */
type Pthread_cond_t = Intptr_t /* pthread.h:257:18 */
type Pthread_rwlock_t = Intptr_t /* pthread.h:258:18 */
type Pthread_barrier_t = uintptr /* pthread.h:259:14 */
//
// Copyright (c) 2011-2016 mingw-w64 project
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// Set defines described by the POSIX Threads Extension (1003.1c-1995)
// _SC_THREADS
// Basic support for POSIX threads is available. The functions
//
// pthread_atfork(),
// pthread_attr_destroy(),
// pthread_attr_getdetachstate(),
// pthread_attr_getschedparam(),
// pthread_attr_init(),
// pthread_attr_setdetachstate(),
// pthread_attr_setschedparam(),
// pthread_cancel(),
// pthread_cleanup_push(),
// pthread_cleanup_pop(),
// pthread_cond_broadcast(),
// pthread_cond_destroy(),
// pthread_cond_init(),
// pthread_cond_signal(),
// pthread_cond_timedwait(),
// pthread_cond_wait(),
// pthread_condattr_destroy(),
// pthread_condattr_init(),
// pthread_create(),
// pthread_detach(),
// pthread_equal(),
// pthread_exit(),
// pthread_getspecific(),
// pthread_join(,
// pthread_key_create(),
// pthread_key_delete(),
// pthread_mutex_destroy(),
// pthread_mutex_init(),
// pthread_mutex_lock(),
// pthread_mutex_trylock(),
// pthread_mutex_unlock(),
// pthread_mutexattr_destroy(),
// pthread_mutexattr_init(),
// pthread_once(),
// pthread_rwlock_destroy(),
// pthread_rwlock_init(),
// pthread_rwlock_rdlock(),
// pthread_rwlock_tryrdlock(),
// pthread_rwlock_trywrlock(),
// pthread_rwlock_unlock(),
// pthread_rwlock_wrlock(),
// pthread_rwlockattr_destroy(),
// pthread_rwlockattr_init(),
// pthread_self(),
// pthread_setcancelstate(),
// pthread_setcanceltype(),
// pthread_setspecific(),
// pthread_testcancel()
//
// are present.
// _SC_READER_WRITER_LOCKS
// This option implies the _POSIX_THREADS option. Conversely, under
// POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
//
// The functions
// pthread_rwlock_destroy(),
// pthread_rwlock_init(),
// pthread_rwlock_rdlock(),
// pthread_rwlock_tryrdlock(),
// pthread_rwlock_trywrlock(),
// pthread_rwlock_unlock(),
// pthread_rwlock_wrlock(),
// pthread_rwlockattr_destroy(),
// pthread_rwlockattr_init()
//
// are present.
// _SC_SPIN_LOCKS
// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
// options. The functions
//
// pthread_spin_destroy(),
// pthread_spin_init(),
// pthread_spin_lock(),
// pthread_spin_trylock(),
// pthread_spin_unlock()
//
// are present.
// _SC_BARRIERS
// This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
// options. The functions
//
// pthread_barrier_destroy(),
// pthread_barrier_init(),
// pthread_barrier_wait(),
// pthread_barrierattr_destroy(),
// pthread_barrierattr_init()
//
// are present.
// _SC_TIMEOUTS
// The functions
//
// mq_timedreceive(), - not supported
// mq_timedsend(), - not supported
// posix_trace_timedgetnext_event(), - not supported
// pthread_mutex_timedlock(),
// pthread_rwlock_timedrdlock(),
// pthread_rwlock_timedwrlock(),
// sem_timedwait(),
//
// are present.
// _SC_TIMERS - not supported
// The functions
//
// clock_getres(),
// clock_gettime(),
// clock_settime(),
// nanosleep(),
// timer_create(),
// timer_delete(),
// timer_gettime(),
// timer_getoverrun(),
// timer_settime()
//
// are present.
// #undef _POSIX_TIMERS
// _SC_CLOCK_SELECTION
// This option implies the _POSIX_TIMERS option. The functions
//
// pthread_condattr_getclock(),
// pthread_condattr_setclock(),
// clock_nanosleep()
//
// are present.
// _SC_SEMAPHORES
// The include file <semaphore.h> is present. The functions
//
// sem_close(),
// sem_destroy(),
// sem_getvalue(),
// sem_init(),
// sem_open(),
// sem_post(),
// sem_trywait(),
// sem_unlink(),
// sem_wait()
//
// are present.
// Wrap cancellation points.
// We deal here with a gcc issue for posix threading on Windows.
// We would need to change here gcc's gthr-posix.h header, but this
// got rejected. So we deal it within this header.
var _ int8 /* gen.c:2:13: */