// 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 /* :3:26 */ type Size_t = uint64 /* :9:23 */ type Wchar_t = uint16 /* :15:24 */ type X__int128_t = struct { Flo int64 Fhi int64 } /* :21:43 */ // must match modernc.org/mathutil.Int128 type X__uint128_t = struct { Flo uint64 Fhi uint64 } /* :22:44 */ // must match modernc.org/mathutil.Int128 type X__builtin_va_list = uintptr /* :46:14 */ type X__float128 = float64 /* :47:21 */ type Va_list = X__builtin_va_list /* :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 . // 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 . // // 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 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: */