pthread_windows_amd64.go 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173
  1. // 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_amd64.go -pkgname pthread', DO NOT EDIT.
  2. package pthread
  3. import (
  4. "math"
  5. "reflect"
  6. "sync/atomic"
  7. "unsafe"
  8. )
  9. var _ = math.Pi
  10. var _ reflect.Kind
  11. var _ atomic.Value
  12. var _ unsafe.Pointer
  13. const (
  14. CHAR_BIT = 8
  15. CHAR_MAX = 127
  16. CHAR_MIN = -128
  17. DUMMYSTRUCTNAME = 0
  18. DUMMYSTRUCTNAME1 = 0
  19. DUMMYSTRUCTNAME2 = 0
  20. DUMMYSTRUCTNAME3 = 0
  21. DUMMYSTRUCTNAME4 = 0
  22. DUMMYSTRUCTNAME5 = 0
  23. DUMMYUNIONNAME = 0
  24. DUMMYUNIONNAME1 = 0
  25. DUMMYUNIONNAME2 = 0
  26. DUMMYUNIONNAME3 = 0
  27. DUMMYUNIONNAME4 = 0
  28. DUMMYUNIONNAME5 = 0
  29. DUMMYUNIONNAME6 = 0
  30. DUMMYUNIONNAME7 = 0
  31. DUMMYUNIONNAME8 = 0
  32. DUMMYUNIONNAME9 = 0
  33. E2BIG = 7
  34. EACCES = 13
  35. EADDRINUSE = 100
  36. EADDRNOTAVAIL = 101
  37. EAFNOSUPPORT = 102
  38. EAGAIN = 11
  39. EALREADY = 103
  40. EBADF = 9
  41. EBADMSG = 104
  42. EBUSY = 16
  43. ECANCELED = 105
  44. ECHILD = 10
  45. ECONNABORTED = 106
  46. ECONNREFUSED = 107
  47. ECONNRESET = 108
  48. EDEADLK = 36
  49. EDEADLOCK = 36
  50. EDESTADDRREQ = 109
  51. EDOM = 33
  52. EEXIST = 17
  53. EFAULT = 14
  54. EFBIG = 27
  55. EHOSTUNREACH = 110
  56. EIDRM = 111
  57. EILSEQ = 42
  58. EINPROGRESS = 112
  59. EINTR = 4
  60. EINVAL = 22
  61. EIO = 5
  62. EISCONN = 113
  63. EISDIR = 21
  64. ELOOP = 114
  65. EMFILE = 24
  66. EMLINK = 31
  67. EMSGSIZE = 115
  68. ENAMETOOLONG = 38
  69. ENETDOWN = 116
  70. ENETRESET = 117
  71. ENETUNREACH = 118
  72. ENFILE = 23
  73. ENOBUFS = 119
  74. ENODATA = 120
  75. ENODEV = 19
  76. ENOENT = 2
  77. ENOEXEC = 8
  78. ENOFILE = 2
  79. ENOLCK = 39
  80. ENOLINK = 121
  81. ENOMEM = 12
  82. ENOMSG = 122
  83. ENOPROTOOPT = 123
  84. ENOSPC = 28
  85. ENOSR = 124
  86. ENOSTR = 125
  87. ENOSYS = 40
  88. ENOTCONN = 126
  89. ENOTDIR = 20
  90. ENOTEMPTY = 41
  91. ENOTRECOVERABLE = 127
  92. ENOTSOCK = 128
  93. ENOTSUP = 129
  94. ENOTTY = 25
  95. ENXIO = 6
  96. EOPNOTSUPP = 130
  97. EOVERFLOW = 132
  98. EOWNERDEAD = 133
  99. EPERM = 1
  100. EPIPE = 32
  101. EPROTO = 134
  102. EPROTONOSUPPORT = 135
  103. EPROTOTYPE = 136
  104. ERANGE = 34
  105. EROFS = 30
  106. ESPIPE = 29
  107. ESRCH = 3
  108. ETIME = 137
  109. ETIMEDOUT = 138
  110. ETXTBSY = 139
  111. EWOULDBLOCK = 140
  112. EXDEV = 18
  113. INT_MAX = 2147483647
  114. INT_MIN = -2147483648
  115. LLONG_MAX = 9223372036854775807
  116. LLONG_MIN = -9223372036854775808
  117. LONG_LONG_MAX = 9223372036854775807
  118. LONG_LONG_MIN = -9223372036854775808
  119. LONG_MAX = 2147483647
  120. LONG_MIN = -2147483648
  121. MAX_READ_LOCKS = 2147483646
  122. MB_LEN_MAX = 5
  123. MINGW_DDK_H = 0
  124. MINGW_DDRAW_VERSION = 7
  125. MINGW_HAS_DDK_H = 1
  126. MINGW_HAS_DDRAW_H = 1
  127. MINGW_HAS_SECURE_API = 1
  128. MINGW_SDK_INIT = 0
  129. NSIG = 23
  130. OLD_P_OVERLAY = 2
  131. PATH_MAX = 260
  132. PTHREAD_BARRIER_SERIAL_THREAD = 1
  133. PTHREAD_CANCEL_ASYNCHRONOUS = 0x02
  134. PTHREAD_CANCEL_DEFERRED = 0
  135. PTHREAD_CANCEL_DISABLE = 0
  136. PTHREAD_CANCEL_ENABLE = 0x01
  137. PTHREAD_CREATE_DETACHED = 0x04
  138. PTHREAD_CREATE_JOINABLE = 0
  139. PTHREAD_DEFAULT_ATTR = 1
  140. PTHREAD_DESTRUCTOR_ITERATIONS = 256
  141. PTHREAD_EXPLICIT_SCHED = 0
  142. PTHREAD_INHERIT_SCHED = 0x08
  143. PTHREAD_KEYS_MAX = 1048576
  144. PTHREAD_MUTEX_ADAPTIVE_NP = 0
  145. PTHREAD_MUTEX_DEFAULT = 0
  146. PTHREAD_MUTEX_ERRORCHECK = 1
  147. PTHREAD_MUTEX_ERRORCHECK_NP = 1
  148. PTHREAD_MUTEX_FAST_NP = 0
  149. PTHREAD_MUTEX_NORMAL = 0
  150. PTHREAD_MUTEX_PRIVATE = 0
  151. PTHREAD_MUTEX_RECURSIVE = 2
  152. PTHREAD_MUTEX_RECURSIVE_NP = 2
  153. PTHREAD_MUTEX_SHARED = 1
  154. PTHREAD_MUTEX_TIMED_NP = 0
  155. PTHREAD_ONCE_INIT = 0
  156. PTHREAD_PRIO_INHERIT = 8
  157. PTHREAD_PRIO_MULT = 32
  158. PTHREAD_PRIO_NONE = 0
  159. PTHREAD_PRIO_PROTECT = 16
  160. PTHREAD_PROCESS_PRIVATE = 0
  161. PTHREAD_PROCESS_SHARED = 1
  162. PTHREAD_SCOPE_PROCESS = 0
  163. PTHREAD_SCOPE_SYSTEM = 0x10
  164. PTHREAD_THREADS_MAX = 2019
  165. P_DETACH = 4
  166. P_NOWAIT = 1
  167. P_NOWAITO = 3
  168. P_OVERLAY = 2
  169. P_WAIT = 0
  170. RWLS_PER_THREAD = 8
  171. SCHAR_MAX = 127
  172. SCHAR_MIN = -128
  173. SCHED_FIFO = 1
  174. SCHED_MAX = 2
  175. SCHED_MIN = 0
  176. SCHED_OTHER = 0
  177. SCHED_RR = 2
  178. SEM_NSEMS_MAX = 1024
  179. SHRT_MAX = 32767
  180. SHRT_MIN = -32768
  181. SIGABRT = 22
  182. SIGABRT2 = 22
  183. SIGABRT_COMPAT = 6
  184. SIGBREAK = 21
  185. SIGFPE = 8
  186. SIGILL = 4
  187. SIGINT = 2
  188. SIGSEGV = 11
  189. SIGTERM = 15
  190. SIG_BLOCK = 0
  191. SIG_SETMASK = 2
  192. SIG_UNBLOCK = 1
  193. SIZE_MAX = 18446744073709551615
  194. SSIZE_MAX = 9223372036854775807
  195. STRUNCATE = 80
  196. UCHAR_MAX = 255
  197. UINT_MAX = 4294967295
  198. ULLONG_MAX = 18446744073709551615
  199. ULONG_LONG_MAX = 18446744073709551615
  200. ULONG_MAX = 4294967295
  201. UNALIGNED = 0
  202. USE___UUIDOF = 0
  203. USHRT_MAX = 65535
  204. WAIT_CHILD = 0
  205. WAIT_GRANDCHILD = 1
  206. WIN32 = 1
  207. WIN64 = 1
  208. WINNT = 1
  209. WINPTHREAD_API = 0
  210. WIN_PTHREADS_H = 0
  211. WIN_PTHREADS_PTHREAD_COMPAT_H = 0
  212. WIN_PTHREADS_SIGNAL_H = 0
  213. WIN_PTHREADS_UNISTD_H = 0
  214. X_AGLOBAL = 0
  215. X_ANONYMOUS_STRUCT = 0
  216. X_ANONYMOUS_UNION = 0
  217. X_ANSI_STDDEF_H = 0
  218. X_ARGMAX = 100
  219. X_CONST_RETURN = 0
  220. X_CRTNOALIAS = 0
  221. X_CRTRESTRICT = 0
  222. X_CRT_ALTERNATIVE_IMPORTED = 0
  223. X_CRT_ERRNO_DEFINED = 0
  224. X_CRT_GETPID_DEFINED = 0
  225. X_CRT_MANAGED_HEAP_DEPRECATE = 0
  226. X_CRT_PACKING = 8
  227. X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES = 0
  228. X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY = 0
  229. X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0
  230. X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0
  231. X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0
  232. X_CRT_SYSTEM_DEFINED = 0
  233. X_CRT_TERMINATE_DEFINED = 0
  234. X_CRT_WSYSTEM_DEFINED = 0
  235. X_DEV_T_DEFINED = 0
  236. X_DLL = 0
  237. X_ERRCODE_DEFINED = 0
  238. X_FILE_OFFSET_BITS = 64
  239. X_FILE_OFFSET_BITS_SET_OFFT = 0
  240. X_GCC_LIMITS_H_ = 0
  241. X_GCC_MAX_ALIGN_T = 0
  242. X_GTHREAD_USE_MUTEX_INIT_FUNC = 1
  243. X_I16_MAX = 32767
  244. X_I16_MIN = -32768
  245. X_I32_MAX = 2147483647
  246. X_I32_MIN = -2147483648
  247. X_I64_MAX = 9223372036854775807
  248. X_I64_MIN = -9223372036854775808
  249. X_I8_MAX = 127
  250. X_I8_MIN = -128
  251. X_INC_CORECRT_STARTUP = 0
  252. X_INC_CRTDEFS = 0
  253. X_INC_CRTDEFS_MACRO = 0
  254. X_INC_ERRNO = 0
  255. X_INC_LIMITS = 0
  256. X_INC_MINGW_SECAPI = 0
  257. X_INC_PROCESS = 0
  258. X_INC_SIGNAL = 0
  259. X_INC_STDDEF = 0
  260. X_INC_TYPES = 0
  261. X_INC_VADEFS = 0
  262. X_INC__MINGW_H = 0
  263. X_INO_T_DEFINED = 0
  264. X_INT128_DEFINED = 0
  265. X_INTEGRAL_MAX_BITS = 64
  266. X_INTPTR_T_DEFINED = 0
  267. X_LIMITS_H___ = 0
  268. X_MODE_T_ = 0
  269. X_MT = 0
  270. X_M_AMD64 = 100
  271. X_M_X64 = 100
  272. X_OFF64_T_DEFINED = 0
  273. X_OFF_T_ = 0
  274. X_OFF_T_DEFINED = 0
  275. X_OLD_P_OVERLAY = 2
  276. X_PGLOBAL = 0
  277. X_PID_T_ = 0
  278. X_POSIX_BARRIERS = 200112
  279. X_POSIX_CLOCK_SELECTION = 200112
  280. X_POSIX_READER_WRITER_LOCKS = 200112
  281. X_POSIX_SEMAPHORES = 200112
  282. X_POSIX_SEM_NSEMS_MAX = 256
  283. X_POSIX_SPIN_LOCKS = 200112
  284. X_POSIX_THREADS = 200112
  285. X_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 256
  286. X_POSIX_THREAD_KEYS_MAX = 1048576
  287. X_POSIX_THREAD_SAFE_FUNCTIONS = 200112
  288. X_POSIX_TIMEOUTS = 200112
  289. X_PTRDIFF_T_ = 0
  290. X_PTRDIFF_T_DEFINED = 0
  291. X_P_DETACH = 4
  292. X_P_NOWAIT = 1
  293. X_P_NOWAITO = 3
  294. X_P_OVERLAY = 2
  295. X_P_WAIT = 0
  296. X_REENTRANT = 1
  297. X_RSIZE_T_DEFINED = 0
  298. X_SECURECRT_ERRCODE_VALUES_DEFINED = 0
  299. X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
  300. X_SIGSET_T_ = 0
  301. X_SIG_ATOMIC_T_DEFINED = 0
  302. X_SIZE_T_DEFINED = 0
  303. X_SPAWNV_DEFINED = 0
  304. X_SSIZE_T_DEFINED = 0
  305. X_STDDEF_H = 0
  306. X_STDDEF_H_ = 0
  307. X_TAGLC_ID_DEFINED = 0
  308. X_THREADLOCALEINFO = 0
  309. X_TIME32_T_DEFINED = 0
  310. X_TIME64_T_DEFINED = 0
  311. X_TIMEB_DEFINED = 0
  312. X_TIMEB_H_ = 0
  313. X_TIMEB_H_S = 0
  314. X_TIMESPEC_DEFINED = 0
  315. X_TIME_T_DEFINED = 0
  316. X_UI16_MAX = 0xffff
  317. X_UI32_MAX = 0xffffffff
  318. X_UI64_MAX = 0xffffffffffffffff
  319. X_UI8_MAX = 0xff
  320. X_UINTPTR_T_DEFINED = 0
  321. X_VA_LIST_DEFINED = 0
  322. X_W64 = 0
  323. X_WAIT_CHILD = 0
  324. X_WAIT_GRANDCHILD = 1
  325. X_WCHAR_T_DEFINED = 0
  326. X_WCTYPE_T_DEFINED = 0
  327. X_WEXEC_DEFINED = 0
  328. X_WIN32 = 1
  329. X_WIN32_WINNT = 0x502
  330. X_WIN64 = 1
  331. X_WINT_T = 0
  332. X_WSPAWN_DEFINED = 0
  333. )
  334. type Ptrdiff_t = int64 /* <builtin>:3:26 */
  335. type Size_t = uint64 /* <builtin>:9:23 */
  336. type Wchar_t = uint16 /* <builtin>:15:24 */
  337. type X__int128_t = struct {
  338. Flo int64
  339. Fhi int64
  340. } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
  341. type X__uint128_t = struct {
  342. Flo uint64
  343. Fhi uint64
  344. } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
  345. type X__builtin_va_list = uintptr /* <builtin>:46:14 */
  346. type X__float128 = float64 /* <builtin>:47:21 */
  347. type Va_list = X__builtin_va_list /* <builtin>:50:27 */
  348. //
  349. // Copyright (c) 2011-2016 mingw-w64 project
  350. //
  351. // Permission is hereby granted, free of charge, to any person obtaining a
  352. // copy of this software and associated documentation files (the "Software"),
  353. // to deal in the Software without restriction, including without limitation
  354. // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  355. // and/or sell copies of the Software, and to permit persons to whom the
  356. // Software is furnished to do so, subject to the following conditions:
  357. //
  358. // The above copyright notice and this permission notice shall be included in
  359. // all copies or substantial portions of the Software.
  360. //
  361. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  362. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  363. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  364. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  365. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  366. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  367. // DEALINGS IN THE SOFTWARE.
  368. // Parts of this library are derived by:
  369. //
  370. // Posix Threads library for Microsoft Windows
  371. //
  372. // Use at own risk, there is no implied warranty to this code.
  373. // It uses undocumented features of Microsoft Windows that can change
  374. // at any time in the future.
  375. //
  376. // (C) 2010 Lockless Inc.
  377. // All rights reserved.
  378. //
  379. // Redistribution and use in source and binary forms, with or without modification,
  380. // are permitted provided that the following conditions are met:
  381. //
  382. //
  383. // * Redistributions of source code must retain the above copyright notice,
  384. // this list of conditions and the following disclaimer.
  385. // * Redistributions in binary form must reproduce the above copyright notice,
  386. // this list of conditions and the following disclaimer in the documentation
  387. // and/or other materials provided with the distribution.
  388. // * Neither the name of Lockless Inc. nor the names of its contributors may be
  389. // used to endorse or promote products derived from this software without
  390. // specific prior written permission.
  391. //
  392. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN
  393. // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  394. // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  395. // IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  396. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  397. // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  398. // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  399. // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  400. // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  401. // OF THE POSSIBILITY OF SUCH DAMAGE.
  402. // *
  403. // This file has no copyright assigned and is placed in the Public Domain.
  404. // This file is part of the mingw-w64 runtime package.
  405. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  406. // *
  407. // This file has no copyright assigned and is placed in the Public Domain.
  408. // This file is part of the mingw-w64 runtime package.
  409. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  410. // *
  411. // This file has no copyright assigned and is placed in the Public Domain.
  412. // This file is part of the mingw-w64 runtime package.
  413. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  414. // *
  415. // This file has no copyright assigned and is placed in the Public Domain.
  416. // This file is part of the mingw-w64 runtime package.
  417. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  418. // This macro holds an monotonic increasing value, which indicates
  419. // a specific fix/patch is present on trunk. This value isn't related to
  420. // minor/major version-macros. It is increased on demand, if a big
  421. // fix was applied to trunk. This macro gets just increased on trunk. For
  422. // other branches its value won't be modified.
  423. // mingw.org's version macros: these make gcc to define
  424. // MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
  425. // and the __mingwthr_key_dtor() function from the MinGW
  426. // CRT in its private gthr-win32.h header.
  427. // Set VC specific compiler target macros.
  428. // MS does not prefix symbols by underscores for 64-bit.
  429. // As we have to support older gcc version, which are using underscores
  430. // as symbol prefix for x64, we have to check here for the user label
  431. // prefix defined by gcc.
  432. // Special case nameless struct/union.
  433. // MinGW-w64 has some additional C99 printf/scanf feature support.
  434. // So we add some helper macros to ease recognition of them.
  435. // *
  436. // This file has no copyright assigned and is placed in the Public Domain.
  437. // This file is part of the mingw-w64 runtime package.
  438. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  439. // http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
  440. // Templates won't work in C, will break if secure API is not enabled, disabled
  441. // https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
  442. // fallback on default implementation if we can't know the size of the destination
  443. // Include _cygwin.h if we're building a Cygwin application.
  444. // Target specific macro replacement for type "long". In the Windows API,
  445. // the type long is always 32 bit, even if the target is 64 bit (LLP64).
  446. // On 64 bit Cygwin, the type long is 64 bit (LP64). So, to get the right
  447. // sized definitions and declarations, all usage of type long in the Windows
  448. // headers have to be replaced by the below defined macro __LONG32.
  449. // C/C++ specific language defines.
  450. // Note the extern. This is needed to work around GCC's
  451. // limitations in handling dllimport attribute.
  452. // Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
  453. // variadiac macro facility, because variadic macros cause syntax
  454. // errors with --traditional-cpp.
  455. // High byte is the major version, low byte is the minor.
  456. // *
  457. // This file has no copyright assigned and is placed in the Public Domain.
  458. // This file is part of the mingw-w64 runtime package.
  459. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  460. // *
  461. // This file has no copyright assigned and is placed in the Public Domain.
  462. // This file is part of the mingw-w64 runtime package.
  463. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  464. type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
  465. type Ssize_t = int64 /* crtdefs.h:45:35 */
  466. type Rsize_t = Size_t /* crtdefs.h:52:16 */
  467. type Intptr_t = int64 /* crtdefs.h:62:35 */
  468. type Uintptr_t = uint64 /* crtdefs.h:75:44 */
  469. type Wint_t = uint16 /* crtdefs.h:106:24 */
  470. type Wctype_t = uint16 /* crtdefs.h:107:24 */
  471. type Errno_t = int32 /* crtdefs.h:113:13 */
  472. type X__time32_t = int32 /* crtdefs.h:118:14 */
  473. type X__time64_t = int64 /* crtdefs.h:123:35 */
  474. type Time_t = X__time64_t /* crtdefs.h:138:20 */
  475. type Threadlocaleinfostruct = struct {
  476. Frefcount int32
  477. Flc_codepage uint32
  478. Flc_collate_cp uint32
  479. Flc_handle [6]uint32
  480. Flc_id [6]LC_ID
  481. Flc_category [6]struct {
  482. Flocale uintptr
  483. Fwlocale uintptr
  484. Frefcount uintptr
  485. Fwrefcount uintptr
  486. }
  487. Flc_clike int32
  488. Fmb_cur_max int32
  489. Flconv_intl_refcount uintptr
  490. Flconv_num_refcount uintptr
  491. Flconv_mon_refcount uintptr
  492. Flconv uintptr
  493. Fctype1_refcount uintptr
  494. Fctype1 uintptr
  495. Fpctype uintptr
  496. Fpclmap uintptr
  497. Fpcumap uintptr
  498. Flc_time_curr uintptr
  499. } /* crtdefs.h:422:1 */
  500. type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
  501. type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
  502. type Localeinfo_struct = struct {
  503. Flocinfo Pthreadlocinfo
  504. Fmbcinfo Pthreadmbcinfo
  505. } /* crtdefs.h:428:9 */
  506. type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
  507. type X_locale_t = uintptr /* crtdefs.h:431:19 */
  508. type TagLC_ID = struct {
  509. FwLanguage uint16
  510. FwCountry uint16
  511. FwCodePage uint16
  512. } /* crtdefs.h:422:1 */
  513. type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
  514. type LPLC_ID = uintptr /* crtdefs.h:439:9 */
  515. type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
  516. // ISO C Standard: 7.17 Common definitions <stddef.h>
  517. // Any one of these symbols __need_* means that GNU libc
  518. // wants us just to define one data type. So don't define
  519. // the symbols that indicate this file's entire job has been done.
  520. // snaroff@next.com says the NeXT needs this.
  521. // Irix 5.1 needs this.
  522. // In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  523. // defined if the corresponding type is *not* defined.
  524. // FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_
  525. // Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  526. // Just ignore it.
  527. // On VxWorks, <type/vxTypesBase.h> may have defined macros like
  528. // _TYPE_size_t which will typedef size_t. fixincludes patched the
  529. // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  530. // not defined, and so that defining this macro defines _GCC_SIZE_T.
  531. // If we find that the macros are still defined at this point, we must
  532. // invoke them so that the type is defined as expected.
  533. // In case nobody has defined these types, but we aren't running under
  534. // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  535. // __WCHAR_TYPE__ have reasonable values. This can happen if the
  536. // parts of GCC is compiled by an older compiler, that actually
  537. // include gstddef.h, such as collect2.
  538. // Signed type of difference of two pointers.
  539. // Define this type if we are doing the whole job,
  540. // or if we want this type in particular.
  541. // If this symbol has done its job, get rid of it.
  542. // Unsigned type of `sizeof' something.
  543. // Define this type if we are doing the whole job,
  544. // or if we want this type in particular.
  545. // Wide character type.
  546. // Locale-writers should change this as necessary to
  547. // be big enough to hold unique values not between 0 and 127,
  548. // and not (wchar_t) -1, for each defined multibyte character.
  549. // Define this type if we are doing the whole job,
  550. // or if we want this type in particular.
  551. // In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  552. // are already defined.
  553. // BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
  554. // A null pointer constant.
  555. // Offset of member MEMBER in a struct of type TYPE.
  556. // Type whose alignment is supported in every context and is at least
  557. //
  558. // as great as that of any standard type not using alignment
  559. // specifiers.
  560. type Max_align_t = struct {
  561. F__max_align_ll int64
  562. F__max_align_ld float64
  563. } /* stddef.h:426:3 */
  564. // Copyright (C) 1989-2018 Free Software Foundation, Inc.
  565. //
  566. // This file is part of GCC.
  567. //
  568. // GCC is free software; you can redistribute it and/or modify
  569. // it under the terms of the GNU General Public License as published by
  570. // the Free Software Foundation; either version 3, or (at your option)
  571. // any later version.
  572. //
  573. // GCC is distributed in the hope that it will be useful,
  574. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  575. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  576. // GNU General Public License for more details.
  577. //
  578. // Under Section 7 of GPL version 3, you are granted additional
  579. // permissions described in the GCC Runtime Library Exception, version
  580. // 3.1, as published by the Free Software Foundation.
  581. //
  582. // You should have received a copy of the GNU General Public License and
  583. // a copy of the GCC Runtime Library Exception along with this program;
  584. // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  585. // <http://www.gnu.org/licenses/>.
  586. // ISO C Standard: 7.17 Common definitions <stddef.h>
  587. // *
  588. // This file has no copyright assigned and is placed in the Public Domain.
  589. // This file is part of the mingw-w64 runtime package.
  590. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  591. // *
  592. // This file has no copyright assigned and is placed in the Public Domain.
  593. // This file is part of the mingw-w64 runtime package.
  594. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  595. // Posix thread extensions.
  596. // Extension defined as by report VC 10+ defines error-numbers.
  597. // Defined as WSAETIMEDOUT.
  598. // *
  599. // This file has no copyright assigned and is placed in the Public Domain.
  600. // This file is part of the mingw-w64 runtime package.
  601. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  602. // *
  603. // This file has no copyright assigned and is placed in the Public Domain.
  604. // This file is part of the mingw-w64 runtime package.
  605. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  606. type X_ino_t = uint16 /* types.h:43:24 */
  607. type Ino_t = uint16 /* types.h:45:24 */
  608. type X_dev_t = uint32 /* types.h:51:22 */
  609. type Dev_t = uint32 /* types.h:53:22 */
  610. type X_pid_t = int64 /* types.h:63:17 */
  611. type Pid_t = X_pid_t /* types.h:68:16 */
  612. type X_mode_t = uint16 /* types.h:74:24 */
  613. type Mode_t = X_mode_t /* types.h:77:17 */
  614. type X_off_t = int32 /* _mingw_off_t.h:5:16 */
  615. type Off32_t = int32 /* _mingw_off_t.h:7:16 */
  616. type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
  617. type Off64_t = int64 /* _mingw_off_t.h:15:39 */
  618. type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
  619. type Useconds_t = uint32 /* types.h:84:22 */
  620. type Timespec = struct {
  621. Ftv_sec Time_t
  622. Ftv_nsec int32
  623. F__ccgo_pad1 [4]byte
  624. } /* types.h:89:1 */
  625. type Itimerspec = struct {
  626. Fit_interval struct {
  627. Ftv_sec Time_t
  628. Ftv_nsec int32
  629. F__ccgo_pad1 [4]byte
  630. }
  631. Fit_value struct {
  632. Ftv_sec Time_t
  633. Ftv_nsec int32
  634. F__ccgo_pad1 [4]byte
  635. }
  636. } /* types.h:94:1 */
  637. type X_sigset_t = uint64 /* types.h:104:28 */
  638. type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
  639. type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
  640. type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
  641. type X_onexit_table_t1 = struct {
  642. F_first uintptr
  643. F_last uintptr
  644. F_end uintptr
  645. } /* corecrt_startup.h:24:9 */
  646. type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
  647. type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
  648. // Copyright (C) 1992-2018 Free Software Foundation, Inc.
  649. //
  650. // This file is part of GCC.
  651. //
  652. // GCC is free software; you can redistribute it and/or modify it under
  653. // the terms of the GNU General Public License as published by the Free
  654. // Software Foundation; either version 3, or (at your option) any later
  655. // version.
  656. //
  657. // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  658. // WARRANTY; without even the implied warranty of MERCHANTABILITY or
  659. // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  660. // for more details.
  661. //
  662. // Under Section 7 of GPL version 3, you are granted additional
  663. // permissions described in the GCC Runtime Library Exception, version
  664. // 3.1, as published by the Free Software Foundation.
  665. //
  666. // You should have received a copy of the GNU General Public License and
  667. // a copy of the GCC Runtime Library Exception along with this program;
  668. // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  669. // <http://www.gnu.org/licenses/>.
  670. // This administrivia gets added to the beginning of limits.h
  671. // if the system has its own version of limits.h.
  672. // We use _GCC_LIMITS_H_ because we want this not to match
  673. // any macros that the system's limits.h uses for its own purposes.
  674. // Use "..." so that we find syslimits.h only in this same directory.
  675. // syslimits.h stands for the system's own limits.h file.
  676. // If we can use it ok unmodified, then we install this text.
  677. // If fixincludes fixes it, then the fixed version is installed
  678. // instead of this text.
  679. // *
  680. // This file has no copyright assigned and is placed in the Public Domain.
  681. // This file is part of the mingw-w64 runtime package.
  682. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  683. // *
  684. // This file has no copyright assigned and is placed in the Public Domain.
  685. // This file is part of the mingw-w64 runtime package.
  686. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  687. // File system limits
  688. //
  689. // NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
  690. // required for the NUL. TODO: Test?
  691. // NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
  692. // are semantically identical, with a limit of 259 characters for the
  693. // path name, plus one for a terminating NUL, for a total of 260.
  694. // Copyright (C) 1991-2018 Free Software Foundation, Inc.
  695. //
  696. // This file is part of GCC.
  697. //
  698. // GCC is free software; you can redistribute it and/or modify it under
  699. // the terms of the GNU General Public License as published by the Free
  700. // Software Foundation; either version 3, or (at your option) any later
  701. // version.
  702. //
  703. // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  704. // WARRANTY; without even the implied warranty of MERCHANTABILITY or
  705. // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  706. // for more details.
  707. //
  708. // Under Section 7 of GPL version 3, you are granted additional
  709. // permissions described in the GCC Runtime Library Exception, version
  710. // 3.1, as published by the Free Software Foundation.
  711. //
  712. // You should have received a copy of the GNU General Public License and
  713. // a copy of the GCC Runtime Library Exception along with this program;
  714. // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  715. // <http://www.gnu.org/licenses/>.
  716. // Number of bits in a `char'.
  717. // Maximum length of a multibyte character.
  718. // Minimum and maximum values a `signed char' can hold.
  719. // Maximum value an `unsigned char' can hold. (Minimum is 0).
  720. // Minimum and maximum values a `char' can hold.
  721. // Minimum and maximum values a `signed short int' can hold.
  722. // Maximum value an `unsigned short int' can hold. (Minimum is 0).
  723. // Minimum and maximum values a `signed int' can hold.
  724. // Maximum value an `unsigned int' can hold. (Minimum is 0).
  725. // Minimum and maximum values a `signed long int' can hold.
  726. // (Same as `int').
  727. // Maximum value an `unsigned long int' can hold. (Minimum is 0).
  728. // Minimum and maximum values a `signed long long int' can hold.
  729. // Maximum value an `unsigned long long int' can hold. (Minimum is 0).
  730. // Minimum and maximum values a `signed long long int' can hold.
  731. // Maximum value an `unsigned long long int' can hold. (Minimum is 0).
  732. // This administrivia gets added to the end of limits.h
  733. // if the system has its own version of limits.h.
  734. // *
  735. // This file has no copyright assigned and is placed in the Public Domain.
  736. // This file is part of the mingw-w64 runtime package.
  737. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  738. // *
  739. // This file has no copyright assigned and is placed in the Public Domain.
  740. // This file is part of the mingw-w64 runtime package.
  741. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  742. //
  743. // Copyright (c) 2013-2016 mingw-w64 project
  744. //
  745. // Permission is hereby granted, free of charge, to any person obtaining a
  746. // copy of this software and associated documentation files (the "Software"),
  747. // to deal in the Software without restriction, including without limitation
  748. // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  749. // and/or sell copies of the Software, and to permit persons to whom the
  750. // Software is furnished to do so, subject to the following conditions:
  751. //
  752. // The above copyright notice and this permission notice shall be included in
  753. // all copies or substantial portions of the Software.
  754. //
  755. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  756. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  757. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  758. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  759. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  760. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  761. // DEALINGS IN THE SOFTWARE.
  762. // Windows has rudimentary signals support.
  763. type Sig_atomic_t = int32 /* signal.h:18:15 */
  764. type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
  765. // *
  766. // This file has no copyright assigned and is placed in the Public Domain.
  767. // This file is part of the mingw-w64 runtime package.
  768. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  769. // *
  770. // This file has no copyright assigned and is placed in the Public Domain.
  771. // This file is part of the mingw-w64 runtime package.
  772. // No warranty is given; refer to the file DISCLAIMER.PD within this package.
  773. type X__timeb32 = struct {
  774. Ftime X__time32_t
  775. Fmillitm uint16
  776. Ftimezone int16
  777. Fdstflag int16
  778. F__ccgo_pad1 [2]byte
  779. } /* timeb.h:53:3 */
  780. type Timeb = struct {
  781. Ftime Time_t
  782. Fmillitm uint16
  783. Ftimezone int16
  784. Fdstflag int16
  785. F__ccgo_pad1 [2]byte
  786. } /* timeb.h:61:3 */
  787. type X__timeb64 = struct {
  788. Ftime X__time64_t
  789. Fmillitm uint16
  790. Ftimezone int16
  791. Fdstflag int16
  792. F__ccgo_pad1 [2]byte
  793. } /* timeb.h:69:3 */
  794. // maximum number of times a read lock may be obtained
  795. // No fork() in windows - so ignore this
  796. // unsupported stuff:
  797. type Pthread_once_t = int32 /* pthread.h:180:14 */
  798. type Pthread_mutexattr_t = uint32 /* pthread.h:181:18 */
  799. type Pthread_key_t = uint32 /* pthread.h:182:18 */
  800. type Pthread_barrierattr_t = uintptr /* pthread.h:183:14 */
  801. type Pthread_condattr_t = int32 /* pthread.h:184:13 */
  802. type Pthread_rwlockattr_t = int32 /* pthread.h:185:13 */
  803. //
  804. // struct _pthread_v;
  805. //
  806. // typedef struct pthread_t {
  807. // struct _pthread_v *p;
  808. // int x;
  809. // } pthread_t;
  810. type Pthread_t = Uintptr_t /* pthread.h:196:19 */
  811. type X_pthread_cleanup1 = struct {
  812. Ffunc uintptr
  813. Farg uintptr
  814. Fnext uintptr
  815. } /* pthread.h:198:9 */
  816. type X_pthread_cleanup = X_pthread_cleanup1 /* pthread.h:198:33 */
  817. // Note that if async cancelling is used, then there is a race here
  818. // Windows doesn't have this, so declare it ourselves.
  819. // Some POSIX realtime extensions, mostly stubbed
  820. type Sched_param = struct{ Fsched_priority int32 } /* pthread.h:239:1 */
  821. type Pthread_attr_t1 = struct {
  822. Fp_state uint32
  823. F__ccgo_pad1 [4]byte
  824. Fstack uintptr
  825. Fs_size Size_t
  826. Fparam struct{ Fsched_priority int32 }
  827. F__ccgo_pad2 [4]byte
  828. } /* pthread.h:251:9 */
  829. type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:251:31 */
  830. // synchronization objects
  831. type Pthread_spinlock_t = uintptr /* pthread.h:268:14 */
  832. type Pthread_mutex_t = uintptr /* pthread.h:269:14 */
  833. type Pthread_cond_t = uintptr /* pthread.h:270:14 */
  834. type Pthread_rwlock_t = uintptr /* pthread.h:271:14 */
  835. type Pthread_barrier_t = uintptr /* pthread.h:272:14 */
  836. type Clockid_t = int32 /* pthread.h:389:13 */
  837. //
  838. // Copyright (c) 2011-2016 mingw-w64 project
  839. //
  840. // Permission is hereby granted, free of charge, to any person obtaining a
  841. // copy of this software and associated documentation files (the "Software"),
  842. // to deal in the Software without restriction, including without limitation
  843. // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  844. // and/or sell copies of the Software, and to permit persons to whom the
  845. // Software is furnished to do so, subject to the following conditions:
  846. //
  847. // The above copyright notice and this permission notice shall be included in
  848. // all copies or substantial portions of the Software.
  849. //
  850. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  851. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  852. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  853. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  854. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  855. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  856. // DEALINGS IN THE SOFTWARE.
  857. // Set defines described by the POSIX Threads Extension (1003.1c-1995)
  858. // _SC_THREADS
  859. // Basic support for POSIX threads is available. The functions
  860. //
  861. // pthread_atfork(),
  862. // pthread_attr_destroy(),
  863. // pthread_attr_getdetachstate(),
  864. // pthread_attr_getschedparam(),
  865. // pthread_attr_init(),
  866. // pthread_attr_setdetachstate(),
  867. // pthread_attr_setschedparam(),
  868. // pthread_cancel(),
  869. // pthread_cleanup_push(),
  870. // pthread_cleanup_pop(),
  871. // pthread_cond_broadcast(),
  872. // pthread_cond_destroy(),
  873. // pthread_cond_init(),
  874. // pthread_cond_signal(),
  875. // pthread_cond_timedwait(),
  876. // pthread_cond_wait(),
  877. // pthread_condattr_destroy(),
  878. // pthread_condattr_init(),
  879. // pthread_create(),
  880. // pthread_detach(),
  881. // pthread_equal(),
  882. // pthread_exit(),
  883. // pthread_getspecific(),
  884. // pthread_join(,
  885. // pthread_key_create(),
  886. // pthread_key_delete(),
  887. // pthread_mutex_destroy(),
  888. // pthread_mutex_init(),
  889. // pthread_mutex_lock(),
  890. // pthread_mutex_trylock(),
  891. // pthread_mutex_unlock(),
  892. // pthread_mutexattr_destroy(),
  893. // pthread_mutexattr_init(),
  894. // pthread_once(),
  895. // pthread_rwlock_destroy(),
  896. // pthread_rwlock_init(),
  897. // pthread_rwlock_rdlock(),
  898. // pthread_rwlock_tryrdlock(),
  899. // pthread_rwlock_trywrlock(),
  900. // pthread_rwlock_unlock(),
  901. // pthread_rwlock_wrlock(),
  902. // pthread_rwlockattr_destroy(),
  903. // pthread_rwlockattr_init(),
  904. // pthread_self(),
  905. // pthread_setcancelstate(),
  906. // pthread_setcanceltype(),
  907. // pthread_setspecific(),
  908. // pthread_testcancel()
  909. //
  910. // are present.
  911. // _SC_READER_WRITER_LOCKS
  912. // This option implies the _POSIX_THREADS option. Conversely, under
  913. // POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
  914. //
  915. // The functions
  916. // pthread_rwlock_destroy(),
  917. // pthread_rwlock_init(),
  918. // pthread_rwlock_rdlock(),
  919. // pthread_rwlock_tryrdlock(),
  920. // pthread_rwlock_trywrlock(),
  921. // pthread_rwlock_unlock(),
  922. // pthread_rwlock_wrlock(),
  923. // pthread_rwlockattr_destroy(),
  924. // pthread_rwlockattr_init()
  925. //
  926. // are present.
  927. // _SC_SPIN_LOCKS
  928. // This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
  929. // options. The functions
  930. //
  931. // pthread_spin_destroy(),
  932. // pthread_spin_init(),
  933. // pthread_spin_lock(),
  934. // pthread_spin_trylock(),
  935. // pthread_spin_unlock()
  936. //
  937. // are present.
  938. // _SC_BARRIERS
  939. // This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
  940. // options. The functions
  941. //
  942. // pthread_barrier_destroy(),
  943. // pthread_barrier_init(),
  944. // pthread_barrier_wait(),
  945. // pthread_barrierattr_destroy(),
  946. // pthread_barrierattr_init()
  947. //
  948. // are present.
  949. // _SC_THREAD_SAFE_FUNCTIONS
  950. // Affected functions are
  951. //
  952. // readdir_r(),
  953. // getgrgid_r(),
  954. // getgrnam_r(),
  955. // getpwnam_r(),
  956. // getpwuid_r(),
  957. // flockfile(),
  958. // ftrylockfile(),
  959. // funlockfile(),
  960. // getc_unlocked(),
  961. // getchar_unlocked(),
  962. // putc_unlocked(),
  963. // putchar_unlocked(),
  964. // strerror_r(),
  965. // _SC_TIMEOUTS
  966. // The functions
  967. //
  968. // mq_timedreceive(), - not supported
  969. // mq_timedsend(), - not supported
  970. // posix_trace_timedgetnext_event(), - not supported
  971. // pthread_mutex_timedlock(),
  972. // pthread_rwlock_timedrdlock(),
  973. // pthread_rwlock_timedwrlock(),
  974. // sem_timedwait(),
  975. //
  976. // are present.
  977. // _SC_TIMERS - not supported
  978. // The functions
  979. //
  980. // clock_getres(),
  981. // clock_gettime(),
  982. // clock_settime(),
  983. // nanosleep(),
  984. // timer_create(),
  985. // timer_delete(),
  986. // timer_gettime(),
  987. // timer_getoverrun(),
  988. // timer_settime()
  989. //
  990. // are present.
  991. // #undef _POSIX_TIMERS
  992. // _SC_CLOCK_SELECTION
  993. // This option implies the _POSIX_TIMERS option. The functions
  994. //
  995. // pthread_condattr_getclock(),
  996. // pthread_condattr_setclock(),
  997. // clock_nanosleep()
  998. //
  999. // are present.
  1000. // _SC_SEMAPHORES
  1001. // The include file <semaphore.h> is present. The functions
  1002. //
  1003. // sem_close(),
  1004. // sem_destroy(),
  1005. // sem_getvalue(),
  1006. // sem_init(),
  1007. // sem_open(),
  1008. // sem_post(),
  1009. // sem_trywait(),
  1010. // sem_unlink(),
  1011. // sem_wait()
  1012. //
  1013. // are present.
  1014. // Wrap cancellation points.
  1015. // We deal here with a gcc issue for posix threading on Windows.
  1016. // We would need to change here gcc's gthr-posix.h header, but this
  1017. // got rejected. So we deal it within this header.
  1018. var _ int8 /* gen.c:2:13: */