Guest User

Untitled

a guest
May 21st, 2014
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 210.65 KB | None | 0 0
  1. # 1 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/memory/replace/realloc/realloc.c"
  2. # 1 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/obj-x86_64-unknown-linux-gnu/memory/replace/realloc//"
  3. # 1 "<built-in>"
  4. # 1 "<command-line>"
  5. # 1 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/config/gcc_hidden.h" 1
  6. /* This Source Code Form is subject to the terms of the Mozilla Public
  7. * License, v. 2.0. If a copy of the MPL was not distributed with this
  8. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  9.  
  10. /* Begin all files as hidden visibility */
  11. #pragma GCC visibility push(hidden)
  12. # 1 "<command-line>" 2
  13. # 1 "./../../../mozilla-config.h" 1
  14. /* List of defines generated by configure. Included with preprocessor flag,
  15. * -include, to avoid long list of -D defines on the compile command-line.
  16. * Do not edit.
  17. */
  18. # 181 "./../../../mozilla-config.h"
  19. /* The c99 defining the limit macros (UINT32_MAX for example), says:
  20. * C++ implementations should define these macros only when __STDC_LIMIT_MACROS
  21. * is defined before <stdint.h> is included. */
  22.  
  23.  
  24. /* Force-include hunspell_alloc_hooks.h and hunspell_fopen_hooks.h for hunspell,
  25. * so that we don't need to modify it directly.
  26. *
  27. * HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/Makefile.in,
  28. * unless --enable-system-hunspell is defined.
  29. */
  30. # 1 "<command-line>" 2
  31. # 1 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/memory/replace/realloc/realloc.c"
  32. // This header will declare all the replacement functions, such that you don't need
  33. // to worry about exporting them with the right idiom (dllexport, visibility...)
  34. # 1 "../../../dist/include/replace_malloc.h" 1
  35. /* This Source Code Form is subject to the terms of the Mozilla Public
  36. * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  37. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  38.  
  39.  
  40.  
  41.  
  42. /*
  43. * The replace_malloc facility allows an external library to replace or
  44. * supplement the jemalloc implementation.
  45. *
  46. * The external library may be hooked by setting one of the following
  47. * environment variables to the library path:
  48. * - LD_PRELOAD on Linux,
  49. * - DYLD_INSERT_LIBRARIES on OSX,
  50. * - MOZ_REPLACE_MALLOC_LIB on Windows and Android.
  51. *
  52. * An initialization function is called before any malloc replacement
  53. * function, and has the following declaration:
  54. *
  55. * void replace_init(const malloc_table_t *)
  56. *
  57. * The const malloc_table_t pointer given to that function is a table
  58. * containing pointers to the original jemalloc implementation, so that
  59. * replacement functions can call them back if they need to. The pointer
  60. * itself can safely be kept around (no need to copy the table itself).
  61. *
  62. * The functions to be implemented in the external library are of the form:
  63. *
  64. * void *replace_malloc(size_t size)
  65. * {
  66. * // Fiddle with the size if necessary.
  67. * // orig->malloc doesn't have to be called if the external library
  68. * // provides its own allocator, but in this case it will have to
  69. * // implement all functions.
  70. * void *ptr = orig->malloc(size);
  71. * // Do whatever you want with the ptr.
  72. * return ptr;
  73. * }
  74. *
  75. * where "orig" is the pointer obtained from replace_init.
  76. *
  77. * See malloc_decls.h for a list of functions that can be replaced this
  78. * way. The implementations are all in the form:
  79. * return_type replace_name(arguments [,...])
  80. *
  81. * They don't all need to be provided.
  82. *
  83. * Building a replace-malloc library is like rocket science. It can end up
  84. * with things blowing up, especially when trying to use complex types, and
  85. * even more especially when these types come from XPCOM or other parts of the
  86. * Mozilla codebase.
  87. * It is recommended to add the following to a replace-malloc implementation's
  88. * Makefile.in:
  89. * MOZ_GLUE_LDFLAGS = # Don't link against mozglue
  90. * WRAP_LDFLAGS = # Never wrap malloc function calls with -Wl,--wrap
  91. * STL_FLAGS = # Avoid STL wrapping
  92. *
  93. * If your replace-malloc implementation lives under memory/replace, these
  94. * are taken care of by memory/replace/defs.mk.
  95. */
  96.  
  97. /* Implementing a replace-malloc library is incompatible with using mozalloc. */
  98.  
  99.  
  100. # 1 "../../../dist/include/mozilla/Types.h" 1
  101. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  102. /* This Source Code Form is subject to the terms of the Mozilla Public
  103. * License, v. 2.0. If a copy of the MPL was not distributed with this
  104. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  105.  
  106. /* mfbt foundational types and macros. */
  107.  
  108.  
  109.  
  110.  
  111. /*
  112. * This header must be valid C and C++, includable by code embedding either
  113. * SpiderMonkey or Gecko.
  114. */
  115.  
  116. /*
  117. * Expose all the integer types defined in C99's <stdint.h> (and the integer
  118. * limit and constant macros, if compiling C code or if compiling C++ code and
  119. * the right __STDC_*_MACRO has been defined for each). These are all usable
  120. * throughout mfbt code, and throughout Mozilla code more generally.
  121. */
  122. # 1 "../../../dist/include/mozilla/StandardInteger.h" 1
  123. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  124. /* This Source Code Form is subject to the terms of the Mozilla Public
  125. * License, v. 2.0. If a copy of the MPL was not distributed with this
  126. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  127.  
  128. /* Implements the C99 <stdint.h> interface for C and C++ code. */
  129.  
  130.  
  131.  
  132.  
  133. /*
  134. * The C99 standard header <stdint.h> exposes typedefs for common fixed-width
  135. * integer types. It would be feasible to simply #include <stdint.h>, but
  136. * MSVC++ versions prior to 2010 don't provide <stdint.h>. We could solve this
  137. * by reimplementing <stdint.h> for MSVC++ 2008 and earlier. But then we reach
  138. * a second problem: our custom <stdint.h> might conflict with a <stdint.h>
  139. * defined by an embedder already looking to work around the MSVC++ <stdint.h>
  140. * absence.
  141. *
  142. * We address these issues in this manner:
  143. *
  144. * 1. If the preprocessor macro MOZ_CUSTOM_STDINT_H is defined to a path to a
  145. * custom <stdint.h> implementation, we will #include it. Embedders using
  146. * a custom <stdint.h> must define this macro to an implementation that
  147. * will work with their embedding.
  148. * 2. Otherwise, if we are compiling with a an MSVC++ version without
  149. * <stdint.h>, #include our custom <stdint.h> reimplementation.
  150. * 3. Otherwise, #include the standard <stdint.h> provided by the compiler.
  151. *
  152. * Note that we can't call this file "stdint.h" or something case-insensitively
  153. * equal to "stdint.h" because then MSVC (and other compilers on
  154. * case-insensitive file systems) will include this file, rather than the system
  155. * stdint.h, when we ask for <stdint.h> below.
  156. */
  157.  
  158.  
  159.  
  160.  
  161.  
  162. # 1 "../../../dist/system_wrappers/stdint.h" 1
  163.  
  164. # 2 "../../../dist/system_wrappers/stdint.h" 3
  165. #pragma GCC visibility push(default)
  166. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdint.h" 1 3 4
  167.  
  168.  
  169. # 1 "/usr/include/stdint.h" 1 3 4
  170. /* Copyright (C) 1997,1998,1999,2000,2001,2006 Free Software Foundation, Inc.
  171. This file is part of the GNU C Library.
  172.  
  173. The GNU C Library is free software; you can redistribute it and/or
  174. modify it under the terms of the GNU Lesser General Public
  175. License as published by the Free Software Foundation; either
  176. version 2.1 of the License, or (at your option) any later version.
  177.  
  178. The GNU C Library is distributed in the hope that it will be useful,
  179. but WITHOUT ANY WARRANTY; without even the implied warranty of
  180. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  181. Lesser General Public License for more details.
  182.  
  183. You should have received a copy of the GNU Lesser General Public
  184. License along with the GNU C Library; if not, write to the Free
  185. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  186. 02111-1307 USA. */
  187.  
  188. /*
  189. * ISO C99: 7.18 Integer types <stdint.h>
  190. */
  191.  
  192.  
  193.  
  194.  
  195. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  196.  
  197. # 2 "../../../dist/system_wrappers/features.h" 3
  198. #pragma GCC visibility push(default)
  199. # 1 "/usr/include/features.h" 1 3 4
  200. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  201. Free Software Foundation, Inc.
  202. This file is part of the GNU C Library.
  203.  
  204. The GNU C Library is free software; you can redistribute it and/or
  205. modify it under the terms of the GNU Lesser General Public
  206. License as published by the Free Software Foundation; either
  207. version 2.1 of the License, or (at your option) any later version.
  208.  
  209. The GNU C Library is distributed in the hope that it will be useful,
  210. but WITHOUT ANY WARRANTY; without even the implied warranty of
  211. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  212. Lesser General Public License for more details.
  213.  
  214. You should have received a copy of the GNU Lesser General Public
  215. License along with the GNU C Library; if not, write to the Free
  216. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  217. 02111-1307 USA. */
  218.  
  219.  
  220.  
  221.  
  222. /* These are defined by the user (or the compiler)
  223. to specify the desired environment:
  224.  
  225. __STRICT_ANSI__ ISO Standard C.
  226. _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
  227. _POSIX_SOURCE IEEE Std 1003.1.
  228. _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
  229. if >=199309L, add IEEE Std 1003.1b-1993;
  230. if >=199506L, add IEEE Std 1003.1c-1995;
  231. if >=200112L, all of IEEE 1003.1-2004
  232. if >=200809L, all of IEEE 1003.1-2008
  233. _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
  234. Single Unix conformance is wanted, to 600 for the
  235. sixth revision, to 700 for the seventh revision.
  236. _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
  237. _LARGEFILE_SOURCE Some more functions for correct standard I/O.
  238. _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
  239. _FILE_OFFSET_BITS=N Select default filesystem interface.
  240. _BSD_SOURCE ISO C, POSIX, and 4.3BSD things.
  241. _SVID_SOURCE ISO C, POSIX, and SVID things.
  242. _ATFILE_SOURCE Additional *at interfaces.
  243. _GNU_SOURCE All of the above, plus GNU extensions.
  244. _REENTRANT Select additionally reentrant object.
  245. _THREAD_SAFE Same as _REENTRANT, often used by other systems.
  246. _FORTIFY_SOURCE If set to numeric value > 0 additional security
  247. measures are defined, according to level.
  248.  
  249. The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
  250. If none of these are defined, the default is to have _SVID_SOURCE,
  251. _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
  252. 200112L. If more than one of these are defined, they accumulate.
  253. For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
  254. together give you ISO C, 1003.1, and 1003.2, but nothing else.
  255.  
  256. These are defined by this file and are used by the
  257. header files to decide what to declare or define:
  258.  
  259. __USE_ISOC99 Define ISO C99 things.
  260. __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
  261. __USE_POSIX Define IEEE Std 1003.1 things.
  262. __USE_POSIX2 Define IEEE Std 1003.2 things.
  263. __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
  264. __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
  265. __USE_XOPEN Define XPG things.
  266. __USE_XOPEN_EXTENDED Define X/Open Unix things.
  267. __USE_UNIX98 Define Single Unix V2 things.
  268. __USE_XOPEN2K Define XPG6 things.
  269. __USE_XOPEN2KXSI Define XPG6 XSI things.
  270. __USE_XOPEN2K8 Define XPG7 things.
  271. __USE_XOPEN2K8XSI Define XPG7 XSI things.
  272. __USE_LARGEFILE Define correct standard I/O things.
  273. __USE_LARGEFILE64 Define LFS things with separate names.
  274. __USE_FILE_OFFSET64 Define 64bit interface as default.
  275. __USE_BSD Define 4.3BSD things.
  276. __USE_SVID Define SVID things.
  277. __USE_MISC Define things common to BSD and System V Unix.
  278. __USE_ATFILE Define *at interfaces and AT_* constants for them.
  279. __USE_GNU Define GNU extensions.
  280. __USE_REENTRANT Define reentrant/thread-safe *_r functions.
  281. __USE_FORTIFY_LEVEL Additional security measures used, according to level.
  282. __FAVOR_BSD Favor 4.3BSD things in cases of conflict.
  283.  
  284. The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
  285. defined by this file unconditionally. `__GNU_LIBRARY__' is provided
  286. only for compatibility. All new code should use the other symbols
  287. to test for features.
  288.  
  289. All macros listed above as possibly being defined by this file are
  290. explicitly undefined if they are not explicitly defined.
  291. Feature-test macros that are not defined by the user or compiler
  292. but are implied by the other feature-test macros defined (or by the
  293. lack of any definitions) are defined by the file. */
  294.  
  295.  
  296. /* Undefine everything, so we get a clean slate. */
  297. # 124 "/usr/include/features.h" 3 4
  298. /* Suppress kernel-name space pollution unless user expressedly asks
  299. for it. */
  300.  
  301.  
  302.  
  303.  
  304. /* Always use ISO C things. */
  305.  
  306.  
  307. /* Convenience macros to test the versions of glibc and gcc.
  308. Use them like this:
  309. #if __GNUC_PREREQ (2,8)
  310. ... code requiring gcc 2.8 or later ...
  311. #endif
  312. Note - they won't work for gcc1 or glibc1, since the _MINOR macros
  313. were not defined then. */
  314. # 148 "/usr/include/features.h" 3 4
  315. /* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322. /* If _GNU_SOURCE was defined by the user, turn on all the other features. */
  323. # 179 "/usr/include/features.h" 3 4
  324. /* If nothing (other than _GNU_SOURCE) is defined,
  325. define _BSD_SOURCE and _SVID_SOURCE. */
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333. /* This is to enable the ISO C99 extension. Also recognize the old macro
  334. which was used prior to the standard acceptance. This macro will
  335. eventually go away and the features enabled by default once the ISO C99
  336. standard is widely adopted. */
  337.  
  338.  
  339.  
  340.  
  341.  
  342. /* This is to enable the ISO C90 Amendment 1:1995 extension. */
  343.  
  344.  
  345.  
  346.  
  347.  
  348. /* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
  349. (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */
  350. # 323 "/usr/include/features.h" 3 4
  351. /* Define __STDC_IEC_559__ and other similar macros. */
  352. # 1 "/usr/include/x86_64-linux-gnu/bits/predefs.h" 1 3 4
  353. /* Copyright (C) 2005 Free Software Foundation, Inc.
  354. This file is part of the GNU C Library.
  355.  
  356. The GNU C Library is free software; you can redistribute it and/or
  357. modify it under the terms of the GNU Lesser General Public
  358. License as published by the Free Software Foundation; either
  359. version 2.1 of the License, or (at your option) any later version.
  360.  
  361. The GNU C Library is distributed in the hope that it will be useful,
  362. but WITHOUT ANY WARRANTY; without even the implied warranty of
  363. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  364. Lesser General Public License for more details.
  365.  
  366. You should have received a copy of the GNU Lesser General Public
  367. License along with the GNU C Library; if not, write to the Free
  368. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  369. 02111-1307 USA. */
  370. # 26 "/usr/include/x86_64-linux-gnu/bits/predefs.h" 3 4
  371. /* We do support the IEC 559 math functionality, real and complex. */
  372. # 325 "/usr/include/features.h" 2 3 4
  373.  
  374. /* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1. */
  375.  
  376.  
  377. /* This macro indicates that the installed library is the GNU C Library.
  378. For historic reasons the value now is 6 and this will stay from now
  379. on. The use of this variable is deprecated. Use __GLIBC__ and
  380. __GLIBC_MINOR__ now (see below) when you want to test for a specific
  381. GNU C library version and use the values in <gnu/lib-names.h> to get
  382. the sonames of the shared libraries. */
  383.  
  384.  
  385.  
  386. /* Major and minor version number of the GNU C library package. Use
  387. these macros to test for features in specific releases. */
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. /* Decide whether a compiler supports the long long datatypes. */
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402. /* This is here only because every header file already includes this one. */
  403.  
  404.  
  405. # 1 "../../../dist/system_wrappers/sys/cdefs.h" 1 3 4
  406.  
  407. # 2 "../../../dist/system_wrappers/sys/cdefs.h" 3
  408. #pragma GCC visibility push(default)
  409. # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
  410. /* Copyright (C) 1992-2001, 2002, 2004, 2005, 2006, 2007, 2009, 2011
  411. Free Software Foundation, Inc.
  412. This file is part of the GNU C Library.
  413.  
  414. The GNU C Library is free software; you can redistribute it and/or
  415. modify it under the terms of the GNU Lesser General Public
  416. License as published by the Free Software Foundation; either
  417. version 2.1 of the License, or (at your option) any later version.
  418.  
  419. The GNU C Library is distributed in the hope that it will be useful,
  420. but WITHOUT ANY WARRANTY; without even the implied warranty of
  421. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  422. Lesser General Public License for more details.
  423.  
  424. You should have received a copy of the GNU Lesser General Public
  425. License along with the GNU C Library; if not, write to the Free
  426. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  427. 02111-1307 USA. */
  428.  
  429.  
  430.  
  431.  
  432. /* We are almost always included from features.h. */
  433.  
  434.  
  435.  
  436.  
  437. /* The GNU libc does not support any K&R compilers or the traditional mode
  438. of ISO C compilers anymore. Check for some of the combinations not
  439. anymore supported. */
  440.  
  441.  
  442.  
  443.  
  444. /* Some user header file might have defined this before. */
  445.  
  446.  
  447.  
  448.  
  449.  
  450. /* All functions, except those with callbacks or those that
  451. synchronize memory, are leaf functions. */
  452. # 51 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  453. /* GCC can always grok prototypes. For C++ programs we add throw()
  454. to help it optimize the function calls. But this works only with
  455. gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
  456. as non-throwing using a function attribute since programs can use
  457. the -fexceptions options for C code as well. */
  458. # 86 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  459. /* These two macros are not used in glibc anymore. They are kept here
  460. only because some other projects expect the macros to be defined. */
  461.  
  462.  
  463.  
  464. /* For these things, GCC behaves the ANSI way normally,
  465. and the non-ANSI way under -traditional. */
  466.  
  467.  
  468.  
  469.  
  470. /* This is not a typedef so `const __ptr_t' does the right thing. */
  471.  
  472.  
  473.  
  474.  
  475. /* C++ needs to know that types and declarations are C, not C++. */
  476. # 112 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  477. /* The standard library needs the functions from the ISO C90 standard
  478. in the std namespace. At the same time we want to be safe for
  479. future changes and we include the ISO C99 code in the non-standard
  480. namespace __c99. The C++ wrapper header take case of adding the
  481. definitions to the global namespace. */
  482. # 125 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  483. /* For compatibility we do not add the declarations into any
  484. namespace. They will end up in the global namespace which is what
  485. old code expects. */
  486. # 137 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  487. /* Support for bounded pointers. */
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. /* Fortify support. */
  496. # 161 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  497. /* Support for flexible arrays. */
  498.  
  499. /* GCC 2.97 supports C99 flexible array members. */
  500. # 179 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  501. /* __asm__ ("xyz") is used throughout the headers to rename functions
  502. at the assembly language level. This is wrapped by the __REDIRECT
  503. macro, in order to support compilers that can do this some other
  504. way. When compilers don't support asm-names at all, we have to do
  505. preprocessor tricks instead (which don't have exactly the right
  506. semantics, but it's the best we can do).
  507.  
  508. Example:
  509. int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
  510. # 206 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  511. /*
  512. #elif __SOME_OTHER_COMPILER__
  513.  
  514. # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
  515. )
  516. */
  517.  
  518.  
  519. /* GCC has various useful declarations that can be made with the
  520. `__attribute__' syntax. All of the ways we use this do fine if
  521. they are omitted for compilers that don't understand it. */
  522.  
  523.  
  524.  
  525.  
  526. /* At some point during the gcc 2.96 development the `malloc' attribute
  527. for functions was introduced. We don't want to use it unconditionally
  528. (although this would be possible) since it generates warnings. */
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535. /* At some point during the gcc 2.96 development the `pure' attribute
  536. for functions was introduced. We don't want to use it unconditionally
  537. (although this would be possible) since it generates warnings. */
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544. /* This declaration tells the compiler that the value is constant. */
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551. /* At some point during the gcc 3.1 development the `used' attribute
  552. for functions was introduced. We don't want to use it unconditionally
  553. (although this would be possible) since it generates warnings. */
  554. # 257 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  555. /* gcc allows marking deprecated functions. */
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. /* At some point during the gcc 2.8 development the `format_arg' attribute
  563. for functions was introduced. We don't want to use it unconditionally
  564. (although this would be possible) since it generates warnings.
  565. If several `format_arg' attributes are given for the same function, in
  566. gcc-3.0 and older, all but the last one are ignored. In newer gccs,
  567. all designated arguments are considered. */
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574. /* At some point during the gcc 2.97 development the `strfmon' format
  575. attribute for functions was introduced. We don't want to use it
  576. unconditionally (although this would be possible) since it
  577. generates warnings. */
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585. /* The nonull function attribute allows to mark pointer parameters which
  586. must not be NULL. */
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593. /* If fortification mode, we warn about unused results of certain
  594. function calls which can lead to problems. */
  595. # 310 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  596. /* Forces a function to be always inlined. */
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603. /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
  604. inline semantics, unless -fgnu89-inline is used. */
  605. # 340 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  606. /* GCC 4.3 and above allow passing all anonymous arguments of an
  607. __extern_always_inline function to some other vararg function. */
  608.  
  609.  
  610.  
  611.  
  612.  
  613. /* It is possible to compile containing GCC extensions even if GCC is
  614. run in pedantic mode if the uses are carefully marked using the
  615. `__extension__' keyword. But this is not generally available before
  616. version 2.8. */
  617.  
  618.  
  619.  
  620.  
  621. /* __restrict is known in EGCS 1.2 and above. */
  622.  
  623.  
  624.  
  625.  
  626. /* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
  627. array_name[restrict]
  628. GCC 3.1 supports this. */
  629. # 378 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  630. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  631. /* Determine the wordsize from the preprocessor defines. */
  632. # 379 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
  633. # 4 "../../../dist/system_wrappers/sys/cdefs.h" 2 3
  634. #pragma GCC visibility pop
  635. # 358 "/usr/include/features.h" 2 3 4
  636.  
  637.  
  638. /* If we don't have __REDIRECT, prototypes will be missing if
  639. __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647. /* Decide whether we can define 'extern inline' functions in headers. */
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654. /* There are some functions that must be declared 'extern inline' even with
  655. -Os when building LIBC, or they'll end up undefined. */
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663. /* This is here only because every header file already includes this one.
  664. Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
  665. <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
  666. that will always return failure (and set errno to ENOSYS). */
  667. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
  668. /* This file selects the right generated file of `__stub_FUNCTION' macros
  669. based on the architecture being compiled for. */
  670.  
  671. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  672. /* Determine the wordsize from the preprocessor defines. */
  673. # 5 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
  674.  
  675.  
  676.  
  677.  
  678. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
  679. /* This file is automatically generated.
  680. It defines a symbol `__stub_FUNCTION' for each function
  681. in the C library which is a stub, meaning it will fail
  682. every time called, usually setting errno to ENOSYS. */
  683. # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
  684. # 390 "/usr/include/features.h" 2 3 4
  685. # 4 "../../../dist/system_wrappers/features.h" 2 3
  686. #pragma GCC visibility pop
  687. # 27 "/usr/include/stdint.h" 2 3 4
  688. # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4
  689. /* wchar_t type related definitions.
  690. Copyright (C) 2000 Free Software Foundation, Inc.
  691. This file is part of the GNU C Library.
  692.  
  693. The GNU C Library is free software; you can redistribute it and/or
  694. modify it under the terms of the GNU Lesser General Public
  695. License as published by the Free Software Foundation; either
  696. version 2.1 of the License, or (at your option) any later version.
  697.  
  698. The GNU C Library is distributed in the hope that it will be useful,
  699. but WITHOUT ANY WARRANTY; without even the implied warranty of
  700. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  701. Lesser General Public License for more details.
  702.  
  703. You should have received a copy of the GNU Lesser General Public
  704. License along with the GNU C Library; if not, write to the Free
  705. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  706. 02111-1307 USA. */
  707.  
  708.  
  709.  
  710.  
  711. /* Use GCC's __WCHAR_MAX__ when available. */
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718. /* GCC may also define __WCHAR_UNSIGNED__.
  719. Use L'\0' to give the expression the correct (unsigned) type. */
  720. # 28 "/usr/include/stdint.h" 2 3 4
  721. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  722. /* Determine the wordsize from the preprocessor defines. */
  723. # 29 "/usr/include/stdint.h" 2 3 4
  724.  
  725. /* Exact integral types. */
  726.  
  727. /* Signed. */
  728.  
  729. /* There is some amount of overlap with <sys/types.h> as known by inet code */
  730.  
  731.  
  732. typedef signed char int8_t;
  733. typedef short int int16_t;
  734. typedef int int32_t;
  735.  
  736. typedef long int int64_t;
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743. /* Unsigned. */
  744. typedef unsigned char uint8_t;
  745. typedef unsigned short int uint16_t;
  746.  
  747. typedef unsigned int uint32_t;
  748.  
  749.  
  750.  
  751. typedef unsigned long int uint64_t;
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758. /* Small types. */
  759.  
  760. /* Signed. */
  761. typedef signed char int_least8_t;
  762. typedef short int int_least16_t;
  763. typedef int int_least32_t;
  764.  
  765. typedef long int int_least64_t;
  766.  
  767.  
  768.  
  769.  
  770.  
  771. /* Unsigned. */
  772. typedef unsigned char uint_least8_t;
  773. typedef unsigned short int uint_least16_t;
  774. typedef unsigned int uint_least32_t;
  775.  
  776. typedef unsigned long int uint_least64_t;
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783. /* Fast types. */
  784.  
  785. /* Signed. */
  786. typedef signed char int_fast8_t;
  787.  
  788. typedef long int int_fast16_t;
  789. typedef long int int_fast32_t;
  790. typedef long int int_fast64_t;
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798. /* Unsigned. */
  799. typedef unsigned char uint_fast8_t;
  800.  
  801. typedef unsigned long int uint_fast16_t;
  802. typedef unsigned long int uint_fast32_t;
  803. typedef unsigned long int uint_fast64_t;
  804. # 117 "/usr/include/stdint.h" 3 4
  805. /* Types for `void *' pointers. */
  806.  
  807.  
  808. typedef long int intptr_t;
  809.  
  810.  
  811. typedef unsigned long int uintptr_t;
  812. # 133 "/usr/include/stdint.h" 3 4
  813. /* Largest integral types. */
  814.  
  815. typedef long int intmax_t;
  816. typedef unsigned long int uintmax_t;
  817. # 145 "/usr/include/stdint.h" 3 4
  818. /* The ISO C99 standard specifies that in C++ implementations these
  819. macros should only be defined if explicitly requested. */
  820. # 157 "/usr/include/stdint.h" 3 4
  821. /* Limits of integral types. */
  822.  
  823. /* Minimum of signed integral types. */
  824.  
  825.  
  826.  
  827.  
  828. /* Maximum of signed integral types. */
  829.  
  830.  
  831.  
  832.  
  833.  
  834. /* Maximum of unsigned integral types. */
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841. /* Minimum of signed integral types having a minimum size. */
  842.  
  843.  
  844.  
  845.  
  846. /* Maximum of signed integral types having a minimum size. */
  847.  
  848.  
  849.  
  850.  
  851.  
  852. /* Maximum of unsigned integral types having a minimum size. */
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859. /* Minimum of fast signed integral types having a minimum size. */
  860. # 205 "/usr/include/stdint.h" 3 4
  861. /* Maximum of fast signed integral types having a minimum size. */
  862. # 216 "/usr/include/stdint.h" 3 4
  863. /* Maximum of fast unsigned integral types having a minimum size. */
  864. # 228 "/usr/include/stdint.h" 3 4
  865. /* Values to test for integral types holding `void *' pointer. */
  866. # 240 "/usr/include/stdint.h" 3 4
  867. /* Minimum for largest signed integral type. */
  868.  
  869. /* Maximum for largest signed integral type. */
  870.  
  871.  
  872. /* Maximum for largest unsigned integral type. */
  873.  
  874.  
  875.  
  876. /* Limits of other integer types. */
  877.  
  878. /* Limits of `ptrdiff_t' type. */
  879. # 260 "/usr/include/stdint.h" 3 4
  880. /* Limits of `sig_atomic_t'. */
  881.  
  882.  
  883.  
  884. /* Limit of `size_t' type. */
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891. /* Limits of `wchar_t'. */
  892.  
  893. /* These constants might also be defined in <wchar.h>. */
  894.  
  895.  
  896.  
  897.  
  898. /* Limits of `wint_t'. */
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905. /* The ISO C99 standard specifies that in C++ implementations these
  906. should only be defined if explicitly requested. */
  907.  
  908.  
  909. /* Signed. */
  910. # 299 "/usr/include/stdint.h" 3 4
  911. /* Unsigned. */
  912. # 309 "/usr/include/stdint.h" 3 4
  913. /* Maximal type. */
  914. # 4 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdint.h" 2 3 4
  915. # 4 "../../../dist/system_wrappers/stdint.h" 2 3
  916. #pragma GCC visibility pop
  917. # 41 "../../../dist/include/mozilla/StandardInteger.h" 2
  918. # 23 "../../../dist/include/mozilla/Types.h" 2
  919.  
  920. /* Also expose size_t. */
  921. # 1 "../../../dist/system_wrappers/stddef.h" 1
  922.  
  923. # 2 "../../../dist/system_wrappers/stddef.h" 3
  924. #pragma GCC visibility push(default)
  925. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  926. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  927. Free Software Foundation, Inc.
  928.  
  929. This file is part of GCC.
  930.  
  931. GCC is free software; you can redistribute it and/or modify
  932. it under the terms of the GNU General Public License as published by
  933. the Free Software Foundation; either version 3, or (at your option)
  934. any later version.
  935.  
  936. GCC is distributed in the hope that it will be useful,
  937. but WITHOUT ANY WARRANTY; without even the implied warranty of
  938. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  939. GNU General Public License for more details.
  940.  
  941. Under Section 7 of GPL version 3, you are granted additional
  942. permissions described in the GCC Runtime Library Exception, version
  943. 3.1, as published by the Free Software Foundation.
  944.  
  945. You should have received a copy of the GNU General Public License and
  946. a copy of the GCC Runtime Library Exception along with this program;
  947. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  948. <http://www.gnu.org/licenses/>. */
  949.  
  950. /*
  951. * ISO C Standard: 7.17 Common definitions <stddef.h>
  952. */
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959. /* Any one of these symbols __need_* means that GNU libc
  960. wants us just to define one data type. So don't define
  961. the symbols that indicate this file's entire job has been done. */
  962.  
  963.  
  964.  
  965.  
  966.  
  967. /* snaroff@next.com says the NeXT needs this. */
  968.  
  969. /* Irix 5.1 needs this. */
  970.  
  971.  
  972.  
  973.  
  974. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  975. There's no way to win with the other order! Sun lossage. */
  976.  
  977. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  978. one less case to deal with in the following. */
  979.  
  980.  
  981.  
  982. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  983.  
  984.  
  985.  
  986.  
  987. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  988. defined if the corresponding type is *not* defined.
  989. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  990. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  991. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  992. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  993. Just ignore it. */
  994.  
  995.  
  996.  
  997.  
  998. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  999. _TYPE_size_t which will typedef size_t. fixincludes patched the
  1000. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  1001. not defined, and so that defining this macro defines _GCC_SIZE_T.
  1002. If we find that the macros are still defined at this point, we must
  1003. invoke them so that the type is defined as expected. */
  1004. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1005. /* In case nobody has defined these types, but we aren't running under
  1006. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  1007. __WCHAR_TYPE__ have reasonable values. This can happen if the
  1008. parts of GCC is compiled by an older compiler, that actually
  1009. include gstddef.h, such as collect2. */
  1010.  
  1011. /* Signed type of difference of two pointers. */
  1012.  
  1013. /* Define this type if we are doing the whole job,
  1014. or if we want this type in particular. */
  1015. # 150 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1016. typedef long int ptrdiff_t;
  1017. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1018. /* If this symbol has done its job, get rid of it. */
  1019.  
  1020.  
  1021.  
  1022.  
  1023. /* Unsigned type of `sizeof' something. */
  1024.  
  1025. /* Define this type if we are doing the whole job,
  1026. or if we want this type in particular. */
  1027. # 212 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1028. typedef long unsigned int size_t;
  1029. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1030. /* Wide character type.
  1031. Locale-writers should change this as necessary to
  1032. be big enough to hold unique values not between 0 and 127,
  1033. and not (wchar_t) -1, for each defined multibyte character. */
  1034.  
  1035. /* Define this type if we are doing the whole job,
  1036. or if we want this type in particular. */
  1037. # 279 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1038. /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
  1039. instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
  1040. symbols in the _FOO_T_ family, stays defined even after its
  1041. corresponding type is defined). If we define wchar_t, then we
  1042. must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
  1043. we undef _WCHAR_T_, then we must also define rune_t, since
  1044. headers like runetype.h assume that if machine/ansi.h is included,
  1045. and _BSD_WCHAR_T_ is not defined, then rune_t is available.
  1046. machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
  1047. the same type." */
  1048. # 306 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1049. /* FreeBSD 5 can't be handled well using "traditional" logic above
  1050. since it no longer defines _BSD_RUNE_T_ yet still desires to export
  1051. rune_t in some cases... */
  1052. # 324 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1053. typedef int wchar_t;
  1054. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1055. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  1056. are already defined. */
  1057. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  1058. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  1059. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1060. /* A null pointer constant. */
  1061. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1062. /* Offset of member MEMBER in a struct of type TYPE. */
  1063. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  1064. #pragma GCC visibility pop
  1065. # 26 "../../../dist/include/mozilla/Types.h" 2
  1066.  
  1067. /* Implement compiler and linker macros needed for APIs. */
  1068.  
  1069. /*
  1070. * MOZ_EXPORT is used to declare and define a symbol or type which is externally
  1071. * visible to users of the current library. It encapsulates various decorations
  1072. * needed to properly export the method's symbol.
  1073. *
  1074. * api.h:
  1075. * extern MOZ_EXPORT int MeaningOfLife(void);
  1076. * extern MOZ_EXPORT int LuggageCombination;
  1077. *
  1078. * api.c:
  1079. * int MeaningOfLife(void) { return 42; }
  1080. * int LuggageCombination = 12345;
  1081. *
  1082. * If you are merely sharing a method across files, just use plain |extern|.
  1083. * These macros are designed for use by library interfaces -- not for normal
  1084. * methods or data used cross-file.
  1085. */
  1086. # 59 "../../../dist/include/mozilla/Types.h"
  1087. /*
  1088. * Whereas implementers use MOZ_EXPORT to declare and define library symbols,
  1089. * users use MOZ_IMPORT_API and MOZ_IMPORT_DATA to access them. Most often the
  1090. * implementer of the library will expose an API macro which expands to either
  1091. * the export or import version of the macro, depending upon the compilation
  1092. * mode.
  1093. */
  1094. # 86 "../../../dist/include/mozilla/Types.h"
  1095. /*
  1096. * Consistent with the above comment, the MFBT_API and MFBT_DATA macros expose
  1097. * export mfbt declarations when building mfbt, and they expose import mfbt
  1098. * declarations when using mfbt.
  1099. */
  1100.  
  1101.  
  1102.  
  1103.  
  1104. /*
  1105. * On linux mozglue is linked in the program and we link libxul.so with
  1106. * -z,defs. Normally that causes the linker to reject undefined references in
  1107. * libxul.so, but as a loophole it allows undefined references to weak
  1108. * symbols. We add the weak attribute to the import version of the MFBT API
  1109. * macros to exploit this.
  1110. */
  1111. # 111 "../../../dist/include/mozilla/Types.h"
  1112. /*
  1113. * C symbols in C++ code must be declared immediately within |extern "C"|
  1114. * blocks. However, in C code, they need not be declared specially. This
  1115. * difference is abstracted behind the MOZ_BEGIN_EXTERN_C and MOZ_END_EXTERN_C
  1116. * macros, so that the user need not know whether he is being used in C or C++
  1117. * code.
  1118. *
  1119. * MOZ_BEGIN_EXTERN_C
  1120. *
  1121. * extern MOZ_EXPORT int MostRandomNumber(void);
  1122. * ...other declarations...
  1123. *
  1124. * MOZ_END_EXTERN_C
  1125. *
  1126. * This said, it is preferable to just use |extern "C"| in C++ header files for
  1127. * its greater clarity.
  1128. */
  1129. # 136 "../../../dist/include/mozilla/Types.h"
  1130. /*
  1131. * GCC's typeof is available when decltype is not.
  1132. */
  1133. # 67 "../../../dist/include/replace_malloc.h" 2
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140. # 1 "../../../dist/include/malloc_decls.h" 1
  1141. /* This Source Code Form is subject to the terms of the Mozilla Public
  1142. * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  1143. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  1144.  
  1145. /*
  1146. * Helper header to declare all the supported malloc functions.
  1147. * MALLOC_DECL arguments are:
  1148. * - function name
  1149. * - return type
  1150. * - argument types
  1151. */
  1152.  
  1153.  
  1154.  
  1155.  
  1156. # 1 "../../../dist/include/jemalloc_types.h" 1
  1157. /* -*- Mode: C; tab-width: 8; c-basic-offset: 8 -*- */
  1158. /* vim:set softtabstop=8 shiftwidth=8: */
  1159. /*-
  1160. * Copyright (C) 2006-2008 Jason Evans <jasone@FreeBSD.org>.
  1161. * All rights reserved.
  1162. *
  1163. * Redistribution and use in source and binary forms, with or without
  1164. * modification, are permitted provided that the following conditions
  1165. * are met:
  1166. * 1. Redistributions of source code must retain the above copyright
  1167. * notice(s), this list of conditions and the following disclaimer as
  1168. * the first lines of this file unmodified other than the possible
  1169. * addition of one or more copyright notices.
  1170. * 2. Redistributions in binary form must reproduce the above copyright
  1171. * notice(s), this list of conditions and the following disclaimer in
  1172. * the documentation and/or other materials provided with the
  1173. * distribution.
  1174. *
  1175. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
  1176. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1177. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1178. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
  1179. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1180. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1181. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  1182. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  1183. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  1184. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  1185. * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  1186. */
  1187.  
  1188.  
  1189.  
  1190.  
  1191. /* grab size_t */
  1192.  
  1193.  
  1194.  
  1195. # 1 "../../../dist/system_wrappers/stddef.h" 1
  1196.  
  1197. # 2 "../../../dist/system_wrappers/stddef.h" 3
  1198. #pragma GCC visibility push(default)
  1199. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  1200. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  1201. Free Software Foundation, Inc.
  1202.  
  1203. This file is part of GCC.
  1204.  
  1205. GCC is free software; you can redistribute it and/or modify
  1206. it under the terms of the GNU General Public License as published by
  1207. the Free Software Foundation; either version 3, or (at your option)
  1208. any later version.
  1209.  
  1210. GCC is distributed in the hope that it will be useful,
  1211. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1212. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  1213. GNU General Public License for more details.
  1214.  
  1215. Under Section 7 of GPL version 3, you are granted additional
  1216. permissions described in the GCC Runtime Library Exception, version
  1217. 3.1, as published by the Free Software Foundation.
  1218.  
  1219. You should have received a copy of the GNU General Public License and
  1220. a copy of the GCC Runtime Library Exception along with this program;
  1221. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  1222. <http://www.gnu.org/licenses/>. */
  1223.  
  1224. /*
  1225. * ISO C Standard: 7.17 Common definitions <stddef.h>
  1226. */
  1227. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  1228. #pragma GCC visibility pop
  1229. # 40 "../../../dist/include/jemalloc_types.h" 2
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236. typedef unsigned char jemalloc_bool;
  1237.  
  1238. /*
  1239. * jemalloc_stats() is not a stable interface. When using jemalloc_stats_t, be
  1240. * sure that the compiled results of jemalloc.c are in sync with this header
  1241. * file.
  1242. */
  1243. typedef struct {
  1244. /*
  1245. * Run-time configuration settings.
  1246. */
  1247. jemalloc_bool opt_abort; /* abort(3) on error? */
  1248. jemalloc_bool opt_junk; /* Fill allocated/free memory with 0xa5/0x5a? */
  1249. jemalloc_bool opt_utrace; /* Trace all allocation events? */
  1250. jemalloc_bool opt_sysv; /* SysV semantics? */
  1251. jemalloc_bool opt_xmalloc; /* abort(3) on OOM? */
  1252. jemalloc_bool opt_zero; /* Fill allocated memory with 0x0? */
  1253. size_t narenas; /* Number of arenas. */
  1254. size_t balance_threshold; /* Arena contention rebalance threshold. */
  1255. size_t quantum; /* Allocation quantum. */
  1256. size_t small_max; /* Max quantum-spaced allocation size. */
  1257. size_t large_max; /* Max sub-chunksize allocation size. */
  1258. size_t chunksize; /* Size of each virtual memory mapping. */
  1259. size_t dirty_max; /* Max dirty pages per arena. */
  1260.  
  1261. /*
  1262. * Current memory usage statistics.
  1263. */
  1264. size_t mapped; /* Bytes mapped (not necessarily committed). */
  1265. size_t committed; /* Bytes committed (readable/writable). */
  1266. size_t allocated; /* Bytes allocated (in use by application). */
  1267. size_t dirty; /* Bytes dirty (committed unused pages). */
  1268. } jemalloc_stats_t;
  1269. # 17 "../../../dist/include/malloc_decls.h" 2
  1270.  
  1271.  
  1272. typedef void * usable_ptr_t;
  1273. # 40 "../../../dist/include/malloc_decls.h"
  1274. typedef void *(malloc_impl_t)(size_t);
  1275. typedef int(posix_memalign_impl_t)(void **, size_t, size_t);
  1276. typedef void *(aligned_alloc_impl_t)(size_t, size_t);
  1277. typedef void *(calloc_impl_t)(size_t, size_t);
  1278. typedef void *(realloc_impl_t)(void *, size_t);
  1279. typedef void(free_impl_t)(void *);
  1280. typedef void *(memalign_impl_t)(size_t, size_t);
  1281. typedef void *(valloc_impl_t)(size_t);
  1282. typedef size_t(malloc_usable_size_impl_t)(usable_ptr_t);
  1283. typedef size_t(malloc_good_size_impl_t)(size_t);
  1284.  
  1285.  
  1286. typedef void(jemalloc_stats_impl_t)(jemalloc_stats_t *);
  1287. typedef void(jemalloc_purge_freed_pages_impl_t)(void);
  1288. typedef void(jemalloc_free_dirty_pages_impl_t)(void);
  1289. # 74 "../../../dist/include/replace_malloc.h" 2
  1290.  
  1291.  
  1292.  
  1293.  
  1294. typedef struct {
  1295. # 1 "../../../dist/include/malloc_decls.h" 1
  1296. /* This Source Code Form is subject to the terms of the Mozilla Public
  1297. * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  1298. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  1299.  
  1300. /*
  1301. * Helper header to declare all the supported malloc functions.
  1302. * MALLOC_DECL arguments are:
  1303. * - function name
  1304. * - return type
  1305. * - argument types
  1306. */
  1307. # 40 "../../../dist/include/malloc_decls.h"
  1308. malloc_impl_t * malloc;
  1309. posix_memalign_impl_t * posix_memalign;
  1310. aligned_alloc_impl_t * aligned_alloc;
  1311. calloc_impl_t * calloc;
  1312. realloc_impl_t * realloc;
  1313. free_impl_t * free;
  1314. memalign_impl_t * memalign;
  1315. valloc_impl_t * valloc;
  1316. malloc_usable_size_impl_t * malloc_usable_size;
  1317. malloc_good_size_impl_t * malloc_good_size;
  1318.  
  1319.  
  1320. jemalloc_stats_impl_t * jemalloc_stats;
  1321. jemalloc_purge_freed_pages_impl_t * jemalloc_purge_freed_pages;
  1322. jemalloc_free_dirty_pages_impl_t * jemalloc_free_dirty_pages;
  1323. # 80 "../../../dist/include/replace_malloc.h" 2
  1324. } malloc_table_t;
  1325.  
  1326.  
  1327. /* MOZ_NO_REPLACE_FUNC_DECL and MOZ_REPLACE_WEAK are only defined in
  1328. * replace_malloc.c. Normally including this header will add function
  1329. * definitions. */
  1330. # 96 "../../../dist/include/replace_malloc.h"
  1331. # 1 "../../../dist/include/malloc_decls.h" 1
  1332. /* This Source Code Form is subject to the terms of the Mozilla Public
  1333. * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  1334. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  1335.  
  1336. /*
  1337. * Helper header to declare all the supported malloc functions.
  1338. * MALLOC_DECL arguments are:
  1339. * - function name
  1340. * - return type
  1341. * - argument types
  1342. */
  1343. # 37 "../../../dist/include/malloc_decls.h"
  1344. __attribute__((visibility("default"))) void replace_init(const malloc_table_t *) ;
  1345.  
  1346.  
  1347. __attribute__((visibility("default"))) void * replace_malloc(size_t) ;
  1348. __attribute__((visibility("default"))) int replace_posix_memalign(void **, size_t, size_t) ;
  1349. __attribute__((visibility("default"))) void * replace_aligned_alloc(size_t, size_t) ;
  1350. __attribute__((visibility("default"))) void * replace_calloc(size_t, size_t) ;
  1351. __attribute__((visibility("default"))) void * replace_realloc(void *, size_t) ;
  1352. __attribute__((visibility("default"))) void replace_free(void *) ;
  1353. __attribute__((visibility("default"))) void * replace_memalign(size_t, size_t) ;
  1354. __attribute__((visibility("default"))) void * replace_valloc(size_t) ;
  1355. __attribute__((visibility("default"))) size_t replace_malloc_usable_size(usable_ptr_t) ;
  1356. __attribute__((visibility("default"))) size_t replace_malloc_good_size(size_t) ;
  1357.  
  1358.  
  1359. __attribute__((visibility("default"))) void replace_jemalloc_stats(jemalloc_stats_t *) ;
  1360. __attribute__((visibility("default"))) void replace_jemalloc_purge_freed_pages(void) ;
  1361. __attribute__((visibility("default"))) void replace_jemalloc_free_dirty_pages(void) ;
  1362. # 97 "../../../dist/include/replace_malloc.h" 2
  1363.  
  1364.  
  1365.  
  1366. /*
  1367. * posix_memalign, aligned_alloc, memalign and valloc all implement some
  1368. * kind of aligned memory allocation. For convenience, replace_posix_memalign,
  1369. * replace_aligned_alloc and replace_valloc can be automatically derived from
  1370. * memalign when MOZ_REPLACE_ONLY_MEMALIGN is defined before including this
  1371. * header. PAGE_SIZE also needs to be defined to the appropriate expression.
  1372. */
  1373. # 137 "../../../dist/include/replace_malloc.h"
  1374.  
  1375. # 4 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/memory/replace/realloc/realloc.c" 2
  1376. # 1 "../../../dist/system_wrappers/stdlib.h" 1
  1377.  
  1378. # 2 "../../../dist/system_wrappers/stdlib.h" 3
  1379. #pragma GCC visibility push(default)
  1380. # 1 "/usr/include/stdlib.h" 1 3 4
  1381. /* Copyright (C) 1991-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
  1382. This file is part of the GNU C Library.
  1383.  
  1384. The GNU C Library is free software; you can redistribute it and/or
  1385. modify it under the terms of the GNU Lesser General Public
  1386. License as published by the Free Software Foundation; either
  1387. version 2.1 of the License, or (at your option) any later version.
  1388.  
  1389. The GNU C Library is distributed in the hope that it will be useful,
  1390. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1391. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1392. Lesser General Public License for more details.
  1393.  
  1394. You should have received a copy of the GNU Lesser General Public
  1395. License along with the GNU C Library; if not, write to the Free
  1396. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1397. 02111-1307 USA. */
  1398.  
  1399. /*
  1400. * ISO C99 Standard: 7.20 General utilities <stdlib.h>
  1401. */
  1402.  
  1403.  
  1404.  
  1405. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  1406.  
  1407. # 2 "../../../dist/system_wrappers/features.h" 3
  1408. #pragma GCC visibility push(default)
  1409. # 1 "/usr/include/features.h" 1 3 4
  1410. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  1411. Free Software Foundation, Inc.
  1412. This file is part of the GNU C Library.
  1413.  
  1414. The GNU C Library is free software; you can redistribute it and/or
  1415. modify it under the terms of the GNU Lesser General Public
  1416. License as published by the Free Software Foundation; either
  1417. version 2.1 of the License, or (at your option) any later version.
  1418.  
  1419. The GNU C Library is distributed in the hope that it will be useful,
  1420. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1421. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1422. Lesser General Public License for more details.
  1423.  
  1424. You should have received a copy of the GNU Lesser General Public
  1425. License along with the GNU C Library; if not, write to the Free
  1426. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1427. 02111-1307 USA. */
  1428. # 4 "../../../dist/system_wrappers/features.h" 2 3
  1429. #pragma GCC visibility pop
  1430. # 26 "/usr/include/stdlib.h" 2 3 4
  1431.  
  1432. /* Get size_t, wchar_t and NULL from <stddef.h>. */
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438. # 1 "../../../dist/system_wrappers/stddef.h" 1 3 4
  1439.  
  1440. # 2 "../../../dist/system_wrappers/stddef.h" 3
  1441. #pragma GCC visibility push(default)
  1442. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  1443. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  1444. Free Software Foundation, Inc.
  1445.  
  1446. This file is part of GCC.
  1447.  
  1448. GCC is free software; you can redistribute it and/or modify
  1449. it under the terms of the GNU General Public License as published by
  1450. the Free Software Foundation; either version 3, or (at your option)
  1451. any later version.
  1452.  
  1453. GCC is distributed in the hope that it will be useful,
  1454. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1455. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  1456. GNU General Public License for more details.
  1457.  
  1458. Under Section 7 of GPL version 3, you are granted additional
  1459. permissions described in the GCC Runtime Library Exception, version
  1460. 3.1, as published by the Free Software Foundation.
  1461.  
  1462. You should have received a copy of the GNU General Public License and
  1463. a copy of the GCC Runtime Library Exception along with this program;
  1464. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  1465. <http://www.gnu.org/licenses/>. */
  1466.  
  1467. /*
  1468. * ISO C Standard: 7.17 Common definitions <stddef.h>
  1469. */
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476. /* Any one of these symbols __need_* means that GNU libc
  1477. wants us just to define one data type. So don't define
  1478. the symbols that indicate this file's entire job has been done. */
  1479. # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1480. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  1481. There's no way to win with the other order! Sun lossage. */
  1482.  
  1483. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  1484. one less case to deal with in the following. */
  1485.  
  1486.  
  1487.  
  1488. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  1489.  
  1490.  
  1491.  
  1492.  
  1493. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  1494. defined if the corresponding type is *not* defined.
  1495. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  1496. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  1497. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1498. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  1499. Just ignore it. */
  1500.  
  1501.  
  1502.  
  1503.  
  1504. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  1505. _TYPE_size_t which will typedef size_t. fixincludes patched the
  1506. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  1507. not defined, and so that defining this macro defines _GCC_SIZE_T.
  1508. If we find that the macros are still defined at this point, we must
  1509. invoke them so that the type is defined as expected. */
  1510. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1511. /* In case nobody has defined these types, but we aren't running under
  1512. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  1513. __WCHAR_TYPE__ have reasonable values. This can happen if the
  1514. parts of GCC is compiled by an older compiler, that actually
  1515. include gstddef.h, such as collect2. */
  1516.  
  1517. /* Signed type of difference of two pointers. */
  1518.  
  1519. /* Define this type if we are doing the whole job,
  1520. or if we want this type in particular. */
  1521. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1522. /* If this symbol has done its job, get rid of it. */
  1523.  
  1524.  
  1525.  
  1526.  
  1527. /* Unsigned type of `sizeof' something. */
  1528.  
  1529. /* Define this type if we are doing the whole job,
  1530. or if we want this type in particular. */
  1531. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1532. /* Wide character type.
  1533. Locale-writers should change this as necessary to
  1534. be big enough to hold unique values not between 0 and 127,
  1535. and not (wchar_t) -1, for each defined multibyte character. */
  1536.  
  1537. /* Define this type if we are doing the whole job,
  1538. or if we want this type in particular. */
  1539. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1540. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  1541. are already defined. */
  1542. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  1543. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  1544. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1545. /* A null pointer constant. */
  1546. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  1547. /* Offset of member MEMBER in a struct of type TYPE. */
  1548. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  1549. #pragma GCC visibility pop
  1550. # 34 "/usr/include/stdlib.h" 2 3 4
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558. /* XPG requires a few symbols from <sys/wait.h> being defined. */
  1559. # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4
  1560. /* Definitions of flag bits for `waitpid' et al.
  1561. Copyright (C) 1992,1996,1997,2000,2004,2005 Free Software Foundation, Inc.
  1562. This file is part of the GNU C Library.
  1563.  
  1564. The GNU C Library is free software; you can redistribute it and/or
  1565. modify it under the terms of the GNU Lesser General Public
  1566. License as published by the Free Software Foundation; either
  1567. version 2.1 of the License, or (at your option) any later version.
  1568.  
  1569. The GNU C Library is distributed in the hope that it will be useful,
  1570. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1571. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1572. Lesser General Public License for more details.
  1573.  
  1574. You should have received a copy of the GNU Lesser General Public
  1575. License along with the GNU C Library; if not, write to the Free
  1576. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1577. 02111-1307 USA. */
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584. /* Bits in the third argument to `waitpid'. */
  1585.  
  1586.  
  1587.  
  1588. /* Bits in the fourth argument to `waitid'. */
  1589. # 43 "/usr/include/stdlib.h" 2 3 4
  1590. # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4
  1591. /* Definitions of status bits for `wait' et al.
  1592. Copyright (C) 1992,1994,1996,1997,2000,2004 Free Software Foundation, Inc.
  1593. This file is part of the GNU C Library.
  1594.  
  1595. The GNU C Library is free software; you can redistribute it and/or
  1596. modify it under the terms of the GNU Lesser General Public
  1597. License as published by the Free Software Foundation; either
  1598. version 2.1 of the License, or (at your option) any later version.
  1599.  
  1600. The GNU C Library is distributed in the hope that it will be useful,
  1601. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1602. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1603. Lesser General Public License for more details.
  1604.  
  1605. You should have received a copy of the GNU Lesser General Public
  1606. License along with the GNU C Library; if not, write to the Free
  1607. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1608. 02111-1307 USA. */
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615. /* Everything extant so far uses these same bits. */
  1616.  
  1617.  
  1618. /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
  1619.  
  1620.  
  1621. /* If WIFSIGNALED(STATUS), the terminating signal. */
  1622.  
  1623.  
  1624. /* If WIFSTOPPED(STATUS), the signal that stopped the child. */
  1625.  
  1626.  
  1627. /* Nonzero if STATUS indicates normal termination. */
  1628.  
  1629.  
  1630. /* Nonzero if STATUS indicates termination by a signal. */
  1631.  
  1632.  
  1633.  
  1634. /* Nonzero if STATUS indicates the child is stopped. */
  1635.  
  1636.  
  1637. /* Nonzero if STATUS indicates the child continued after a stop. We only
  1638. define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
  1639.  
  1640.  
  1641.  
  1642.  
  1643. /* Nonzero if STATUS indicates the child dumped core. */
  1644.  
  1645.  
  1646. /* Macros for constructing status values. */
  1647. # 65 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4
  1648. # 1 "../../../dist/system_wrappers/endian.h" 1 3 4
  1649.  
  1650. # 2 "../../../dist/system_wrappers/endian.h" 3
  1651. #pragma GCC visibility push(default)
  1652. # 1 "/usr/include/endian.h" 1 3 4
  1653. /* Copyright (C) 1992, 1996, 1997, 2000, 2008 Free Software Foundation, Inc.
  1654. This file is part of the GNU C Library.
  1655.  
  1656. The GNU C Library is free software; you can redistribute it and/or
  1657. modify it under the terms of the GNU Lesser General Public
  1658. License as published by the Free Software Foundation; either
  1659. version 2.1 of the License, or (at your option) any later version.
  1660.  
  1661. The GNU C Library is distributed in the hope that it will be useful,
  1662. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1663. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1664. Lesser General Public License for more details.
  1665.  
  1666. You should have received a copy of the GNU Lesser General Public
  1667. License along with the GNU C Library; if not, write to the Free
  1668. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1669. 02111-1307 USA. */
  1670.  
  1671.  
  1672.  
  1673.  
  1674. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  1675.  
  1676. # 2 "../../../dist/system_wrappers/features.h" 3
  1677. #pragma GCC visibility push(default)
  1678. # 1 "/usr/include/features.h" 1 3 4
  1679. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  1680. Free Software Foundation, Inc.
  1681. This file is part of the GNU C Library.
  1682.  
  1683. The GNU C Library is free software; you can redistribute it and/or
  1684. modify it under the terms of the GNU Lesser General Public
  1685. License as published by the Free Software Foundation; either
  1686. version 2.1 of the License, or (at your option) any later version.
  1687.  
  1688. The GNU C Library is distributed in the hope that it will be useful,
  1689. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1690. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1691. Lesser General Public License for more details.
  1692.  
  1693. You should have received a copy of the GNU Lesser General Public
  1694. License along with the GNU C Library; if not, write to the Free
  1695. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1696. 02111-1307 USA. */
  1697. # 4 "../../../dist/system_wrappers/features.h" 2 3
  1698. #pragma GCC visibility pop
  1699. # 23 "/usr/include/endian.h" 2 3 4
  1700.  
  1701. /* Definitions for byte order, according to significance of bytes,
  1702. from low addresses to high addresses. The value is what you get by
  1703. putting '4' in the most significant byte, '3' in the second most
  1704. significant byte, '2' in the second least significant byte, and '1'
  1705. in the least significant byte, and then writing down one digit for
  1706. each byte, starting with the byte at the lowest address at the left,
  1707. and proceeding to the byte with the highest address at the right. */
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713. /* This file defines `__BYTE_ORDER' for the particular machine. */
  1714. # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
  1715. /* x86_64 is little-endian. */
  1716. # 38 "/usr/include/endian.h" 2 3 4
  1717.  
  1718. /* Some machines may need to use a different endianness for floating point
  1719. values. */
  1720. # 60 "/usr/include/endian.h" 3 4
  1721. /* Conversion interfaces. */
  1722. # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
  1723. /* Macros to swap the order of bytes in integer values.
  1724. Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008, 2010, 2011
  1725. Free Software Foundation, Inc.
  1726. This file is part of the GNU C Library.
  1727.  
  1728. The GNU C Library is free software; you can redistribute it and/or
  1729. modify it under the terms of the GNU Lesser General Public
  1730. License as published by the Free Software Foundation; either
  1731. version 2.1 of the License, or (at your option) any later version.
  1732.  
  1733. The GNU C Library is distributed in the hope that it will be useful,
  1734. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1735. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1736. Lesser General Public License for more details.
  1737.  
  1738. You should have received a copy of the GNU Lesser General Public
  1739. License along with the GNU C Library; if not, write to the Free
  1740. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1741. 02111-1307 USA. */
  1742. # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  1743. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  1744. /* Determine the wordsize from the preprocessor defines. */
  1745. # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
  1746.  
  1747. /* Swap bytes in 16 bit value. */
  1748. # 55 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  1749. /* Swap bytes in 32 bit value. */
  1750. # 67 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  1751. /* To swap the bytes in a word the i486 processors and up provide the
  1752. `bswap' opcode. On i386 we have to use three instructions. */
  1753. # 100 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  1754. /* Swap bytes in 64 bit value. */
  1755. # 62 "/usr/include/endian.h" 2 3 4
  1756. # 4 "../../../dist/system_wrappers/endian.h" 2 3
  1757. #pragma GCC visibility pop
  1758. # 66 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 2 3 4
  1759.  
  1760. union wait
  1761. {
  1762. int w_status;
  1763. struct
  1764. {
  1765.  
  1766. unsigned int __w_termsig:7; /* Terminating signal. */
  1767. unsigned int __w_coredump:1; /* Set if dumped core. */
  1768. unsigned int __w_retcode:8; /* Return code if exited normally. */
  1769. unsigned int:16;
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777. } __wait_terminated;
  1778. struct
  1779. {
  1780.  
  1781. unsigned int __w_stopval:8; /* W_STOPPED if stopped. */
  1782. unsigned int __w_stopsig:8; /* Stopping signal. */
  1783. unsigned int:16;
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790. } __wait_stopped;
  1791. };
  1792. # 44 "/usr/include/stdlib.h" 2 3 4
  1793.  
  1794.  
  1795.  
  1796. /* Lots of hair to allow traditional BSD use of `union wait'
  1797. as well as POSIX.1 use of `int' for the status word. */
  1798. # 58 "/usr/include/stdlib.h" 3 4
  1799. /* This is the type of the argument to `wait'. The funky union
  1800. causes redeclarations with either `int *' or `union wait *' to be
  1801. allowed without complaint. __WAIT_STATUS_DEFN is the type used in
  1802. the actual function definitions. */
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808. /* This works in GCC 2.6.1 and later. */
  1809. typedef union
  1810. {
  1811. union wait *__uptr;
  1812. int *__iptr;
  1813. } __WAIT_STATUS __attribute__ ((__transparent_union__));
  1814. # 84 "/usr/include/stdlib.h" 3 4
  1815. /* Define the macros <sys/wait.h> also would define this way. */
  1816. # 96 "/usr/include/stdlib.h" 3 4
  1817.  
  1818. /* Returned by `div'. */
  1819. typedef struct
  1820. {
  1821. int quot; /* Quotient. */
  1822. int rem; /* Remainder. */
  1823. } div_t;
  1824.  
  1825. /* Returned by `ldiv'. */
  1826.  
  1827. typedef struct
  1828. {
  1829. long int quot; /* Quotient. */
  1830. long int rem; /* Remainder. */
  1831. } ldiv_t;
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838. /* Returned by `lldiv'. */
  1839. __extension__ typedef struct
  1840. {
  1841. long long int quot; /* Quotient. */
  1842. long long int rem; /* Remainder. */
  1843. } lldiv_t;
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849. /* The largest number rand will return (same as INT_MAX). */
  1850.  
  1851.  
  1852.  
  1853. /* We define these the same for all machines.
  1854. Changes from this to the outside world should be done in `_exit'. */
  1855.  
  1856.  
  1857.  
  1858.  
  1859. /* Maximum length of a multibyte character in the current locale. */
  1860.  
  1861. extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  1862.  
  1863.  
  1864.  
  1865. /* Convert a string to a floating-point number. */
  1866. extern double atof (__const char *__nptr)
  1867. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1868. /* Convert a string to an integer. */
  1869. extern int atoi (__const char *__nptr)
  1870. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1871. /* Convert a string to a long integer. */
  1872. extern long int atol (__const char *__nptr)
  1873. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1874.  
  1875.  
  1876.  
  1877.  
  1878. /* Convert a string to a long long integer. */
  1879. __extension__ extern long long int atoll (__const char *__nptr)
  1880. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1881.  
  1882.  
  1883.  
  1884.  
  1885. /* Convert a string to a floating-point number. */
  1886. extern double strtod (__const char *__restrict __nptr,
  1887. char **__restrict __endptr)
  1888. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1889.  
  1890.  
  1891.  
  1892.  
  1893. /* Likewise for `float' and `long double' sizes of floating-point numbers. */
  1894. extern float strtof (__const char *__restrict __nptr,
  1895. char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1896.  
  1897. extern long double strtold (__const char *__restrict __nptr,
  1898. char **__restrict __endptr)
  1899. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1900.  
  1901.  
  1902.  
  1903.  
  1904. /* Convert a string to a long integer. */
  1905. extern long int strtol (__const char *__restrict __nptr,
  1906. char **__restrict __endptr, int __base)
  1907. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1908. /* Convert a string to an unsigned long integer. */
  1909. extern unsigned long int strtoul (__const char *__restrict __nptr,
  1910. char **__restrict __endptr, int __base)
  1911. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1912.  
  1913.  
  1914.  
  1915. /* Convert a string to a quadword integer. */
  1916. __extension__
  1917. extern long long int strtoq (__const char *__restrict __nptr,
  1918. char **__restrict __endptr, int __base)
  1919. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1920. /* Convert a string to an unsigned quadword integer. */
  1921. __extension__
  1922. extern unsigned long long int strtouq (__const char *__restrict __nptr,
  1923. char **__restrict __endptr, int __base)
  1924. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1925.  
  1926.  
  1927.  
  1928.  
  1929. /* Convert a string to a quadword integer. */
  1930. __extension__
  1931. extern long long int strtoll (__const char *__restrict __nptr,
  1932. char **__restrict __endptr, int __base)
  1933. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1934. /* Convert a string to an unsigned quadword integer. */
  1935. __extension__
  1936. extern unsigned long long int strtoull (__const char *__restrict __nptr,
  1937. char **__restrict __endptr, int __base)
  1938. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1939.  
  1940. # 308 "/usr/include/stdlib.h" 3 4
  1941. /* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
  1942. digit first. Returns a pointer to static storage overwritten by the
  1943. next call. */
  1944. extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  1945.  
  1946. /* Read a number from a string S in base 64 as above. */
  1947. extern long int a64l (__const char *__s)
  1948. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  1949.  
  1950.  
  1951.  
  1952.  
  1953. # 1 "../../../dist/system_wrappers/sys/types.h" 1 3 4
  1954.  
  1955. # 2 "../../../dist/system_wrappers/sys/types.h" 3
  1956. #pragma GCC visibility push(default)
  1957. # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4
  1958. /* Copyright (C) 1991,1992,1994-2002,2006,2010 Free Software Foundation, Inc.
  1959. This file is part of the GNU C Library.
  1960.  
  1961. The GNU C Library is free software; you can redistribute it and/or
  1962. modify it under the terms of the GNU Lesser General Public
  1963. License as published by the Free Software Foundation; either
  1964. version 2.1 of the License, or (at your option) any later version.
  1965.  
  1966. The GNU C Library is distributed in the hope that it will be useful,
  1967. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1968. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1969. Lesser General Public License for more details.
  1970.  
  1971. You should have received a copy of the GNU Lesser General Public
  1972. License along with the GNU C Library; if not, write to the Free
  1973. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  1974. 02111-1307 USA. */
  1975.  
  1976. /*
  1977. * POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
  1978. */
  1979.  
  1980.  
  1981.  
  1982.  
  1983. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  1984.  
  1985. # 2 "../../../dist/system_wrappers/features.h" 3
  1986. #pragma GCC visibility push(default)
  1987. # 1 "/usr/include/features.h" 1 3 4
  1988. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  1989. Free Software Foundation, Inc.
  1990. This file is part of the GNU C Library.
  1991.  
  1992. The GNU C Library is free software; you can redistribute it and/or
  1993. modify it under the terms of the GNU Lesser General Public
  1994. License as published by the Free Software Foundation; either
  1995. version 2.1 of the License, or (at your option) any later version.
  1996.  
  1997. The GNU C Library is distributed in the hope that it will be useful,
  1998. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1999. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2000. Lesser General Public License for more details.
  2001.  
  2002. You should have received a copy of the GNU Lesser General Public
  2003. License along with the GNU C Library; if not, write to the Free
  2004. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2005. 02111-1307 USA. */
  2006. # 4 "../../../dist/system_wrappers/features.h" 2 3
  2007. #pragma GCC visibility pop
  2008. # 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  2009.  
  2010.  
  2011.  
  2012. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2013. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2014. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2015. This file is part of the GNU C Library.
  2016.  
  2017. The GNU C Library is free software; you can redistribute it and/or
  2018. modify it under the terms of the GNU Lesser General Public
  2019. License as published by the Free Software Foundation; either
  2020. version 2.1 of the License, or (at your option) any later version.
  2021.  
  2022. The GNU C Library is distributed in the hope that it will be useful,
  2023. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2024. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2025. Lesser General Public License for more details.
  2026.  
  2027. You should have received a copy of the GNU Lesser General Public
  2028. License along with the GNU C Library; if not, write to the Free
  2029. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2030. 02111-1307 USA. */
  2031.  
  2032. /*
  2033. * Never include this file directly; use <sys/types.h> instead.
  2034. */
  2035.  
  2036.  
  2037.  
  2038.  
  2039. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  2040.  
  2041. # 2 "../../../dist/system_wrappers/features.h" 3
  2042. #pragma GCC visibility push(default)
  2043. # 1 "/usr/include/features.h" 1 3 4
  2044. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  2045. Free Software Foundation, Inc.
  2046. This file is part of the GNU C Library.
  2047.  
  2048. The GNU C Library is free software; you can redistribute it and/or
  2049. modify it under the terms of the GNU Lesser General Public
  2050. License as published by the Free Software Foundation; either
  2051. version 2.1 of the License, or (at your option) any later version.
  2052.  
  2053. The GNU C Library is distributed in the hope that it will be useful,
  2054. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2055. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2056. Lesser General Public License for more details.
  2057.  
  2058. You should have received a copy of the GNU Lesser General Public
  2059. License along with the GNU C Library; if not, write to the Free
  2060. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2061. 02111-1307 USA. */
  2062. # 4 "../../../dist/system_wrappers/features.h" 2 3
  2063. #pragma GCC visibility pop
  2064. # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  2065. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  2066. /* Determine the wordsize from the preprocessor defines. */
  2067. # 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  2068.  
  2069. /* Convenience types. */
  2070. typedef unsigned char __u_char;
  2071. typedef unsigned short int __u_short;
  2072. typedef unsigned int __u_int;
  2073. typedef unsigned long int __u_long;
  2074.  
  2075. /* Fixed-size types, underlying types depend on word size and compiler. */
  2076. typedef signed char __int8_t;
  2077. typedef unsigned char __uint8_t;
  2078. typedef signed short int __int16_t;
  2079. typedef unsigned short int __uint16_t;
  2080. typedef signed int __int32_t;
  2081. typedef unsigned int __uint32_t;
  2082.  
  2083. typedef signed long int __int64_t;
  2084. typedef unsigned long int __uint64_t;
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090. /* quad_t is also 64 bits. */
  2091.  
  2092. typedef long int __quad_t;
  2093. typedef unsigned long int __u_quad_t;
  2094. # 70 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  2095. /* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
  2096. macros for each of the OS types we define below. The definitions
  2097. of those macros must use the following macros for underlying types.
  2098. We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
  2099. variants of each of the following integer types on this machine.
  2100.  
  2101. 16 -- "natural" 16-bit type (always short)
  2102. 32 -- "natural" 32-bit type (always int)
  2103. 64 -- "natural" 64-bit type (long or long long)
  2104. LONG32 -- 32-bit type, traditionally long
  2105. QUAD -- 64-bit type, always long long
  2106. WORD -- natural type of __WORDSIZE bits (int or long)
  2107. LONGWORD -- type of __WORDSIZE bits, traditionally long
  2108.  
  2109. We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
  2110. conventional uses of `long' or `long long' type modifiers match the
  2111. types we define, even when a less-adorned type would be the same size.
  2112. This matters for (somewhat) portably writing printf/scanf formats for
  2113. these types, where using the appropriate l or ll format modifiers can
  2114. make the typedefs and the formats match up across all GNU platforms. If
  2115. we used `long' when it's 64 bits where `long long' is expected, then the
  2116. compiler would warn about the formats not matching the argument types,
  2117. and the programmer changing them to shut up the compiler would break the
  2118. program's portability.
  2119.  
  2120. Here we assume what is presently the case in all the GCC configurations
  2121. we support: long long is always 64 bits, long is always word/address size,
  2122. and int is always 32 bits. */
  2123. # 126 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  2124. /* No need to mark the typedef with __extension__. */
  2125.  
  2126.  
  2127.  
  2128.  
  2129. # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
  2130. /* bits/typesizes.h -- underlying types for *_t. Generic version.
  2131. Copyright (C) 2002, 2003 Free Software Foundation, Inc.
  2132. This file is part of the GNU C Library.
  2133.  
  2134. The GNU C Library is free software; you can redistribute it and/or
  2135. modify it under the terms of the GNU Lesser General Public
  2136. License as published by the Free Software Foundation; either
  2137. version 2.1 of the License, or (at your option) any later version.
  2138.  
  2139. The GNU C Library is distributed in the hope that it will be useful,
  2140. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2141. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2142. Lesser General Public License for more details.
  2143.  
  2144. You should have received a copy of the GNU Lesser General Public
  2145. License along with the GNU C Library; if not, write to the Free
  2146. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2147. 02111-1307 USA. */
  2148. # 27 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
  2149. /* See <bits/types.h> for the meaning of these macros. This file exists so
  2150. that <bits/types.h> need not vary across different GNU platforms. */
  2151. # 62 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
  2152. /* Number of descriptors that can fit in an `fd_set'. */
  2153. # 132 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  2154.  
  2155.  
  2156. typedef unsigned long int __dev_t; /* Type of device numbers. */
  2157. typedef unsigned int __uid_t; /* Type of user identifications. */
  2158. typedef unsigned int __gid_t; /* Type of group identifications. */
  2159. typedef unsigned long int __ino_t; /* Type of file serial numbers. */
  2160. typedef unsigned long int __ino64_t; /* Type of file serial numbers (LFS).*/
  2161. typedef unsigned int __mode_t; /* Type of file attribute bitmasks. */
  2162. typedef unsigned long int __nlink_t; /* Type of file link counts. */
  2163. typedef long int __off_t; /* Type of file sizes and offsets. */
  2164. typedef long int __off64_t; /* Type of file sizes and offsets (LFS). */
  2165. typedef int __pid_t; /* Type of process identifications. */
  2166. typedef struct { int __val[2]; } __fsid_t; /* Type of file system IDs. */
  2167. typedef long int __clock_t; /* Type of CPU usage counts. */
  2168. typedef unsigned long int __rlim_t; /* Type for resource measurement. */
  2169. typedef unsigned long int __rlim64_t; /* Type for resource measurement (LFS). */
  2170. typedef unsigned int __id_t; /* General type for IDs. */
  2171. typedef long int __time_t; /* Seconds since the Epoch. */
  2172. typedef unsigned int __useconds_t; /* Count of microseconds. */
  2173. typedef long int __suseconds_t; /* Signed count of microseconds. */
  2174.  
  2175. typedef int __daddr_t; /* The type of a disk address. */
  2176. typedef long int __swblk_t; /* Type of a swap block maybe? */
  2177. typedef int __key_t; /* Type of an IPC key. */
  2178.  
  2179. /* Clock ID used in clock and timer functions. */
  2180. typedef int __clockid_t;
  2181.  
  2182. /* Timer ID returned by `timer_create'. */
  2183. typedef void * __timer_t;
  2184.  
  2185. /* Type to represent block size. */
  2186. typedef long int __blksize_t;
  2187.  
  2188. /* Types from the Large File Support interface. */
  2189.  
  2190. /* Type to count number of disk blocks. */
  2191. typedef long int __blkcnt_t;
  2192. typedef long int __blkcnt64_t;
  2193.  
  2194. /* Type to count file system blocks. */
  2195. typedef unsigned long int __fsblkcnt_t;
  2196. typedef unsigned long int __fsblkcnt64_t;
  2197.  
  2198. /* Type to count file system nodes. */
  2199. typedef unsigned long int __fsfilcnt_t;
  2200. typedef unsigned long int __fsfilcnt64_t;
  2201.  
  2202. typedef long int __ssize_t; /* Type of a byte count, or error. */
  2203.  
  2204. /* These few don't really vary by system, they always correspond
  2205. to one of the other defined types. */
  2206. typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
  2207. typedef __quad_t *__qaddr_t;
  2208. typedef char *__caddr_t;
  2209.  
  2210. /* Duplicates info from stdint.h but this is used in unistd.h. */
  2211. typedef long int __intptr_t;
  2212.  
  2213. /* Duplicate info from sys/socket.h. */
  2214. typedef unsigned int __socklen_t;
  2215. # 31 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  2216.  
  2217.  
  2218.  
  2219. typedef __u_char u_char;
  2220. typedef __u_short u_short;
  2221. typedef __u_int u_int;
  2222. typedef __u_long u_long;
  2223. typedef __quad_t quad_t;
  2224. typedef __u_quad_t u_quad_t;
  2225. typedef __fsid_t fsid_t;
  2226.  
  2227.  
  2228.  
  2229.  
  2230. typedef __loff_t loff_t;
  2231.  
  2232.  
  2233.  
  2234. typedef __ino_t ino_t;
  2235. # 61 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2236. typedef __dev_t dev_t;
  2237.  
  2238.  
  2239.  
  2240.  
  2241. typedef __gid_t gid_t;
  2242.  
  2243.  
  2244.  
  2245.  
  2246. typedef __mode_t mode_t;
  2247.  
  2248.  
  2249.  
  2250.  
  2251. typedef __nlink_t nlink_t;
  2252.  
  2253.  
  2254.  
  2255.  
  2256. typedef __uid_t uid_t;
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262. typedef __off_t off_t;
  2263. # 99 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2264. typedef __pid_t pid_t;
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270. typedef __id_t id_t;
  2271.  
  2272.  
  2273.  
  2274.  
  2275. typedef __ssize_t ssize_t;
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281. typedef __daddr_t daddr_t;
  2282. typedef __caddr_t caddr_t;
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288. typedef __key_t key_t;
  2289. # 133 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2290. # 1 "../../../dist/system_wrappers/time.h" 1 3 4
  2291.  
  2292. # 2 "../../../dist/system_wrappers/time.h" 3
  2293. #pragma GCC visibility push(default)
  2294. # 1 "/usr/include/time.h" 1 3 4
  2295. /* Copyright (C) 1991-2003,2006,2009,2011 Free Software Foundation, Inc.
  2296. This file is part of the GNU C Library.
  2297.  
  2298. The GNU C Library is free software; you can redistribute it and/or
  2299. modify it under the terms of the GNU Lesser General Public
  2300. License as published by the Free Software Foundation; either
  2301. version 2.1 of the License, or (at your option) any later version.
  2302.  
  2303. The GNU C Library is distributed in the hope that it will be useful,
  2304. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2305. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2306. Lesser General Public License for more details.
  2307.  
  2308. You should have received a copy of the GNU Lesser General Public
  2309. License along with the GNU C Library; if not, write to the Free
  2310. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2311. 02111-1307 USA. */
  2312.  
  2313. /*
  2314. * ISO C99 Standard: 7.23 Date and time <time.h>
  2315. */
  2316. # 56 "/usr/include/time.h" 3 4
  2317. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2318. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2319. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2320. This file is part of the GNU C Library.
  2321.  
  2322. The GNU C Library is free software; you can redistribute it and/or
  2323. modify it under the terms of the GNU Lesser General Public
  2324. License as published by the Free Software Foundation; either
  2325. version 2.1 of the License, or (at your option) any later version.
  2326.  
  2327. The GNU C Library is distributed in the hope that it will be useful,
  2328. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2329. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2330. Lesser General Public License for more details.
  2331.  
  2332. You should have received a copy of the GNU Lesser General Public
  2333. License along with the GNU C Library; if not, write to the Free
  2334. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2335. 02111-1307 USA. */
  2336.  
  2337. /*
  2338. * Never include this file directly; use <sys/types.h> instead.
  2339. */
  2340. # 57 "/usr/include/time.h" 2 3 4
  2341.  
  2342.  
  2343. /* Returned by `clock'. */
  2344. typedef __clock_t clock_t;
  2345.  
  2346.  
  2347.  
  2348. # 72 "/usr/include/time.h" 3 4
  2349. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2350. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2351. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2352. This file is part of the GNU C Library.
  2353.  
  2354. The GNU C Library is free software; you can redistribute it and/or
  2355. modify it under the terms of the GNU Lesser General Public
  2356. License as published by the Free Software Foundation; either
  2357. version 2.1 of the License, or (at your option) any later version.
  2358.  
  2359. The GNU C Library is distributed in the hope that it will be useful,
  2360. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2361. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2362. Lesser General Public License for more details.
  2363.  
  2364. You should have received a copy of the GNU Lesser General Public
  2365. License along with the GNU C Library; if not, write to the Free
  2366. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2367. 02111-1307 USA. */
  2368.  
  2369. /*
  2370. * Never include this file directly; use <sys/types.h> instead.
  2371. */
  2372. # 73 "/usr/include/time.h" 2 3 4
  2373.  
  2374.  
  2375. /* Returned by `time'. */
  2376. typedef __time_t time_t;
  2377.  
  2378.  
  2379.  
  2380. # 89 "/usr/include/time.h" 3 4
  2381. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2382. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2383. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2384. This file is part of the GNU C Library.
  2385.  
  2386. The GNU C Library is free software; you can redistribute it and/or
  2387. modify it under the terms of the GNU Lesser General Public
  2388. License as published by the Free Software Foundation; either
  2389. version 2.1 of the License, or (at your option) any later version.
  2390.  
  2391. The GNU C Library is distributed in the hope that it will be useful,
  2392. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2393. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2394. Lesser General Public License for more details.
  2395.  
  2396. You should have received a copy of the GNU Lesser General Public
  2397. License along with the GNU C Library; if not, write to the Free
  2398. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2399. 02111-1307 USA. */
  2400.  
  2401. /*
  2402. * Never include this file directly; use <sys/types.h> instead.
  2403. */
  2404. # 90 "/usr/include/time.h" 2 3 4
  2405.  
  2406. /* Clock ID used in clock and timer functions. */
  2407. typedef __clockid_t clockid_t;
  2408. # 101 "/usr/include/time.h" 3 4
  2409. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2410. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2411. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2412. This file is part of the GNU C Library.
  2413.  
  2414. The GNU C Library is free software; you can redistribute it and/or
  2415. modify it under the terms of the GNU Lesser General Public
  2416. License as published by the Free Software Foundation; either
  2417. version 2.1 of the License, or (at your option) any later version.
  2418.  
  2419. The GNU C Library is distributed in the hope that it will be useful,
  2420. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2421. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2422. Lesser General Public License for more details.
  2423.  
  2424. You should have received a copy of the GNU Lesser General Public
  2425. License along with the GNU C Library; if not, write to the Free
  2426. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2427. 02111-1307 USA. */
  2428.  
  2429. /*
  2430. * Never include this file directly; use <sys/types.h> instead.
  2431. */
  2432. # 102 "/usr/include/time.h" 2 3 4
  2433.  
  2434. /* Timer ID returned by `timer_create'. */
  2435. typedef __timer_t timer_t;
  2436. # 4 "../../../dist/system_wrappers/time.h" 2 3
  2437. #pragma GCC visibility pop
  2438. # 134 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  2439. # 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2440. # 1 "../../../dist/system_wrappers/stddef.h" 1 3 4
  2441.  
  2442. # 2 "../../../dist/system_wrappers/stddef.h" 3
  2443. #pragma GCC visibility push(default)
  2444. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  2445. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  2446. Free Software Foundation, Inc.
  2447.  
  2448. This file is part of GCC.
  2449.  
  2450. GCC is free software; you can redistribute it and/or modify
  2451. it under the terms of the GNU General Public License as published by
  2452. the Free Software Foundation; either version 3, or (at your option)
  2453. any later version.
  2454.  
  2455. GCC is distributed in the hope that it will be useful,
  2456. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2457. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  2458. GNU General Public License for more details.
  2459.  
  2460. Under Section 7 of GPL version 3, you are granted additional
  2461. permissions described in the GCC Runtime Library Exception, version
  2462. 3.1, as published by the Free Software Foundation.
  2463.  
  2464. You should have received a copy of the GNU General Public License and
  2465. a copy of the GCC Runtime Library Exception along with this program;
  2466. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  2467. <http://www.gnu.org/licenses/>. */
  2468.  
  2469. /*
  2470. * ISO C Standard: 7.17 Common definitions <stddef.h>
  2471. */
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478. /* Any one of these symbols __need_* means that GNU libc
  2479. wants us just to define one data type. So don't define
  2480. the symbols that indicate this file's entire job has been done. */
  2481. # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2482. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  2483. There's no way to win with the other order! Sun lossage. */
  2484.  
  2485. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  2486. one less case to deal with in the following. */
  2487.  
  2488.  
  2489.  
  2490. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  2491.  
  2492.  
  2493.  
  2494.  
  2495. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  2496. defined if the corresponding type is *not* defined.
  2497. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  2498. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  2499. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2500. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  2501. Just ignore it. */
  2502.  
  2503.  
  2504.  
  2505.  
  2506. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  2507. _TYPE_size_t which will typedef size_t. fixincludes patched the
  2508. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  2509. not defined, and so that defining this macro defines _GCC_SIZE_T.
  2510. If we find that the macros are still defined at this point, we must
  2511. invoke them so that the type is defined as expected. */
  2512. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2513. /* In case nobody has defined these types, but we aren't running under
  2514. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  2515. __WCHAR_TYPE__ have reasonable values. This can happen if the
  2516. parts of GCC is compiled by an older compiler, that actually
  2517. include gstddef.h, such as collect2. */
  2518.  
  2519. /* Signed type of difference of two pointers. */
  2520.  
  2521. /* Define this type if we are doing the whole job,
  2522. or if we want this type in particular. */
  2523. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2524. /* If this symbol has done its job, get rid of it. */
  2525.  
  2526.  
  2527.  
  2528.  
  2529. /* Unsigned type of `sizeof' something. */
  2530.  
  2531. /* Define this type if we are doing the whole job,
  2532. or if we want this type in particular. */
  2533. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2534. /* Wide character type.
  2535. Locale-writers should change this as necessary to
  2536. be big enough to hold unique values not between 0 and 127,
  2537. and not (wchar_t) -1, for each defined multibyte character. */
  2538.  
  2539. /* Define this type if we are doing the whole job,
  2540. or if we want this type in particular. */
  2541. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2542. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  2543. are already defined. */
  2544. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  2545. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  2546. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2547. /* A null pointer constant. */
  2548. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  2549. /* Offset of member MEMBER in a struct of type TYPE. */
  2550. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  2551. #pragma GCC visibility pop
  2552. # 148 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  2553.  
  2554.  
  2555. /* Old compatibility names for C types. */
  2556. typedef unsigned long int ulong;
  2557. typedef unsigned short int ushort;
  2558. typedef unsigned int uint;
  2559.  
  2560.  
  2561. /* These size-specific names are used by some of the inet code. */
  2562. # 187 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2563. /* For GCC 2.7 and later, we can use specific type-size attributes. */
  2564. # 201 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  2565. typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
  2566. typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
  2567. typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
  2568. typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
  2569.  
  2570. typedef int register_t __attribute__ ((__mode__ (__word__)));
  2571.  
  2572.  
  2573. /* Some code from BIND tests this macro to see if the types above are
  2574. defined. */
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580. /* In BSD <sys/types.h> is expected to define BYTE_ORDER. */
  2581. # 1 "../../../dist/system_wrappers/endian.h" 1 3 4
  2582.  
  2583. # 2 "../../../dist/system_wrappers/endian.h" 3
  2584. #pragma GCC visibility push(default)
  2585. # 1 "/usr/include/endian.h" 1 3 4
  2586. /* Copyright (C) 1992, 1996, 1997, 2000, 2008 Free Software Foundation, Inc.
  2587. This file is part of the GNU C Library.
  2588.  
  2589. The GNU C Library is free software; you can redistribute it and/or
  2590. modify it under the terms of the GNU Lesser General Public
  2591. License as published by the Free Software Foundation; either
  2592. version 2.1 of the License, or (at your option) any later version.
  2593.  
  2594. The GNU C Library is distributed in the hope that it will be useful,
  2595. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2596. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2597. Lesser General Public License for more details.
  2598.  
  2599. You should have received a copy of the GNU Lesser General Public
  2600. License along with the GNU C Library; if not, write to the Free
  2601. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2602. 02111-1307 USA. */
  2603. # 4 "../../../dist/system_wrappers/endian.h" 2 3
  2604. #pragma GCC visibility pop
  2605. # 218 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  2606.  
  2607. /* It also defines `fd_set' and the FD_* macros for `select'. */
  2608. # 1 "../../../dist/system_wrappers/sys/select.h" 1 3 4
  2609.  
  2610. # 2 "../../../dist/system_wrappers/sys/select.h" 3
  2611. #pragma GCC visibility push(default)
  2612. # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4
  2613. /* `fd_set' type and related macros, and `select'/`pselect' declarations.
  2614. Copyright (C) 1996-2003, 2009, 2011 Free Software Foundation, Inc.
  2615. This file is part of the GNU C Library.
  2616.  
  2617. The GNU C Library is free software; you can redistribute it and/or
  2618. modify it under the terms of the GNU Lesser General Public
  2619. License as published by the Free Software Foundation; either
  2620. version 2.1 of the License, or (at your option) any later version.
  2621.  
  2622. The GNU C Library is distributed in the hope that it will be useful,
  2623. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2624. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2625. Lesser General Public License for more details.
  2626.  
  2627. You should have received a copy of the GNU Lesser General Public
  2628. License along with the GNU C Library; if not, write to the Free
  2629. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2630. 02111-1307 USA. */
  2631.  
  2632. /* POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> */
  2633.  
  2634.  
  2635.  
  2636.  
  2637. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  2638.  
  2639. # 2 "../../../dist/system_wrappers/features.h" 3
  2640. #pragma GCC visibility push(default)
  2641. # 1 "/usr/include/features.h" 1 3 4
  2642. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  2643. Free Software Foundation, Inc.
  2644. This file is part of the GNU C Library.
  2645.  
  2646. The GNU C Library is free software; you can redistribute it and/or
  2647. modify it under the terms of the GNU Lesser General Public
  2648. License as published by the Free Software Foundation; either
  2649. version 2.1 of the License, or (at your option) any later version.
  2650.  
  2651. The GNU C Library is distributed in the hope that it will be useful,
  2652. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2653. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2654. Lesser General Public License for more details.
  2655.  
  2656. You should have received a copy of the GNU Lesser General Public
  2657. License along with the GNU C Library; if not, write to the Free
  2658. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2659. 02111-1307 USA. */
  2660. # 4 "../../../dist/system_wrappers/features.h" 2 3
  2661. #pragma GCC visibility pop
  2662. # 26 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2663.  
  2664. /* Get definition of needed basic types. */
  2665. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2666. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2667. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2668. This file is part of the GNU C Library.
  2669.  
  2670. The GNU C Library is free software; you can redistribute it and/or
  2671. modify it under the terms of the GNU Lesser General Public
  2672. License as published by the Free Software Foundation; either
  2673. version 2.1 of the License, or (at your option) any later version.
  2674.  
  2675. The GNU C Library is distributed in the hope that it will be useful,
  2676. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2677. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2678. Lesser General Public License for more details.
  2679.  
  2680. You should have received a copy of the GNU Lesser General Public
  2681. License along with the GNU C Library; if not, write to the Free
  2682. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2683. 02111-1307 USA. */
  2684.  
  2685. /*
  2686. * Never include this file directly; use <sys/types.h> instead.
  2687. */
  2688. # 29 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2689.  
  2690. /* Get __FD_* definitions. */
  2691. # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4
  2692. /* Copyright (C) 1997-1999,2001,2008,2009,2011 Free Software Foundation, Inc.
  2693. This file is part of the GNU C Library.
  2694.  
  2695. The GNU C Library is free software; you can redistribute it and/or
  2696. modify it under the terms of the GNU Lesser General Public
  2697. License as published by the Free Software Foundation; either
  2698. version 2.1 of the License, or (at your option) any later version.
  2699.  
  2700. The GNU C Library is distributed in the hope that it will be useful,
  2701. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2702. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2703. Lesser General Public License for more details.
  2704.  
  2705. You should have received a copy of the GNU Lesser General Public
  2706. License along with the GNU C Library; if not, write to the Free
  2707. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2708. 02111-1307 USA. */
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  2715. /* Determine the wordsize from the preprocessor defines. */
  2716. # 24 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4
  2717. # 32 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2718.  
  2719. /* Get __sigset_t. */
  2720. # 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
  2721. /* __sig_atomic_t, __sigset_t, and related definitions. Linux version.
  2722. Copyright (C) 1991, 1992, 1994, 1996, 1997, 2007
  2723. Free Software Foundation, Inc.
  2724. This file is part of the GNU C Library.
  2725.  
  2726. The GNU C Library is free software; you can redistribute it and/or
  2727. modify it under the terms of the GNU Lesser General Public
  2728. License as published by the Free Software Foundation; either
  2729. version 2.1 of the License, or (at your option) any later version.
  2730.  
  2731. The GNU C Library is distributed in the hope that it will be useful,
  2732. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2733. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2734. Lesser General Public License for more details.
  2735.  
  2736. You should have received a copy of the GNU Lesser General Public
  2737. License along with the GNU C Library; if not, write to the Free
  2738. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2739. 02111-1307 USA. */
  2740.  
  2741.  
  2742.  
  2743.  
  2744. typedef int __sig_atomic_t;
  2745.  
  2746. /* A `sigset_t' has a bit for each signal. */
  2747.  
  2748.  
  2749. typedef struct
  2750. {
  2751. unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  2752. } __sigset_t;
  2753.  
  2754.  
  2755.  
  2756.  
  2757. /* We only want to define these functions if <signal.h> was actually
  2758. included; otherwise we were included just to define the types. Since we
  2759. are namespace-clean, it wouldn't hurt to define extra macros. But
  2760. trouble can be caused by functions being defined (e.g., any global
  2761. register vars declared later will cause compilation errors). */
  2762. # 35 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2763.  
  2764.  
  2765.  
  2766. typedef __sigset_t sigset_t;
  2767.  
  2768.  
  2769. /* Get definition of timer specification structures. */
  2770.  
  2771.  
  2772. # 1 "../../../dist/system_wrappers/time.h" 1 3 4
  2773.  
  2774. # 2 "../../../dist/system_wrappers/time.h" 3
  2775. #pragma GCC visibility push(default)
  2776. # 1 "/usr/include/time.h" 1 3 4
  2777. /* Copyright (C) 1991-2003,2006,2009,2011 Free Software Foundation, Inc.
  2778. This file is part of the GNU C Library.
  2779.  
  2780. The GNU C Library is free software; you can redistribute it and/or
  2781. modify it under the terms of the GNU Lesser General Public
  2782. License as published by the Free Software Foundation; either
  2783. version 2.1 of the License, or (at your option) any later version.
  2784.  
  2785. The GNU C Library is distributed in the hope that it will be useful,
  2786. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2787. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2788. Lesser General Public License for more details.
  2789.  
  2790. You should have received a copy of the GNU Lesser General Public
  2791. License along with the GNU C Library; if not, write to the Free
  2792. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2793. 02111-1307 USA. */
  2794.  
  2795. /*
  2796. * ISO C99 Standard: 7.23 Date and time <time.h>
  2797. */
  2798. # 116 "/usr/include/time.h" 3 4
  2799. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2800. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2801. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2802. This file is part of the GNU C Library.
  2803.  
  2804. The GNU C Library is free software; you can redistribute it and/or
  2805. modify it under the terms of the GNU Lesser General Public
  2806. License as published by the Free Software Foundation; either
  2807. version 2.1 of the License, or (at your option) any later version.
  2808.  
  2809. The GNU C Library is distributed in the hope that it will be useful,
  2810. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2811. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2812. Lesser General Public License for more details.
  2813.  
  2814. You should have received a copy of the GNU Lesser General Public
  2815. License along with the GNU C Library; if not, write to the Free
  2816. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2817. 02111-1307 USA. */
  2818.  
  2819. /*
  2820. * Never include this file directly; use <sys/types.h> instead.
  2821. */
  2822. # 117 "/usr/include/time.h" 2 3 4
  2823.  
  2824. /* POSIX.1b structure for a time value. This is like a `struct timeval' but
  2825. has nanoseconds instead of microseconds. */
  2826. struct timespec
  2827. {
  2828. __time_t tv_sec; /* Seconds. */
  2829. long int tv_nsec; /* Nanoseconds. */
  2830. };
  2831. # 4 "../../../dist/system_wrappers/time.h" 2 3
  2832. #pragma GCC visibility pop
  2833. # 45 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2834.  
  2835. # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
  2836. /* System-dependent timing definitions. Linux version.
  2837. Copyright (C) 1996,1997,1999-2003,2010,2011 Free Software Foundation, Inc.
  2838. This file is part of the GNU C Library.
  2839.  
  2840. The GNU C Library is free software; you can redistribute it and/or
  2841. modify it under the terms of the GNU Lesser General Public
  2842. License as published by the Free Software Foundation; either
  2843. version 2.1 of the License, or (at your option) any later version.
  2844.  
  2845. The GNU C Library is distributed in the hope that it will be useful,
  2846. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2847. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2848. Lesser General Public License for more details.
  2849.  
  2850. You should have received a copy of the GNU Lesser General Public
  2851. License along with the GNU C Library; if not, write to the Free
  2852. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2853. 02111-1307 USA. */
  2854.  
  2855. /*
  2856. * Never include this file directly; use <time.h> instead.
  2857. */
  2858.  
  2859.  
  2860.  
  2861.  
  2862. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  2863. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  2864. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  2865. This file is part of the GNU C Library.
  2866.  
  2867. The GNU C Library is free software; you can redistribute it and/or
  2868. modify it under the terms of the GNU Lesser General Public
  2869. License as published by the Free Software Foundation; either
  2870. version 2.1 of the License, or (at your option) any later version.
  2871.  
  2872. The GNU C Library is distributed in the hope that it will be useful,
  2873. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2874. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2875. Lesser General Public License for more details.
  2876.  
  2877. You should have received a copy of the GNU Lesser General Public
  2878. License along with the GNU C Library; if not, write to the Free
  2879. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2880. 02111-1307 USA. */
  2881.  
  2882. /*
  2883. * Never include this file directly; use <sys/types.h> instead.
  2884. */
  2885. # 28 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4
  2886.  
  2887. /* A time value that is accurate to the nearest
  2888. microsecond but also has a range of years. */
  2889. struct timeval
  2890. {
  2891. __time_t tv_sec; /* Seconds. */
  2892. __suseconds_t tv_usec; /* Microseconds. */
  2893. };
  2894. # 47 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  2895.  
  2896.  
  2897. typedef __suseconds_t suseconds_t;
  2898.  
  2899.  
  2900.  
  2901.  
  2902. /* The fd_set member is required to be an array of longs. */
  2903. typedef long int __fd_mask;
  2904.  
  2905. /* Some versions of <linux/posix_types.h> define this macros. */
  2906.  
  2907. /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
  2908.  
  2909.  
  2910.  
  2911.  
  2912. /* fd_set for select and pselect. */
  2913. typedef struct
  2914. {
  2915. /* XPG4.2 requires this member name. Otherwise avoid the name
  2916. from the global namespace. */
  2917.  
  2918.  
  2919.  
  2920.  
  2921. __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
  2922.  
  2923.  
  2924. } fd_set;
  2925.  
  2926. /* Maximum number of file descriptors in `fd_set'. */
  2927.  
  2928.  
  2929.  
  2930. /* Sometimes the fd_set member is assumed to have this type. */
  2931. typedef __fd_mask fd_mask;
  2932.  
  2933. /* Number of bits per word of `fd_set' (some code assumes this is 32). */
  2934.  
  2935.  
  2936.  
  2937.  
  2938. /* Access macros for `fd_set'. */
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947. /* Check the first NFDS descriptors each in READFDS (if not NULL) for read
  2948. readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
  2949. (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
  2950. after waiting the interval specified therein. Returns the number of ready
  2951. descriptors, or -1 for errors.
  2952.  
  2953. This function is a cancellation point and therefore not marked with
  2954. __THROW. */
  2955. extern int select (int __nfds, fd_set *__restrict __readfds,
  2956. fd_set *__restrict __writefds,
  2957. fd_set *__restrict __exceptfds,
  2958. struct timeval *__restrict __timeout);
  2959.  
  2960.  
  2961. /* Same as above only that the TIMEOUT value is given with higher
  2962. resolution and a sigmask which is been set temporarily. This version
  2963. should be used.
  2964.  
  2965. This function is a cancellation point and therefore not marked with
  2966. __THROW. */
  2967. extern int pselect (int __nfds, fd_set *__restrict __readfds,
  2968. fd_set *__restrict __writefds,
  2969. fd_set *__restrict __exceptfds,
  2970. const struct timespec *__restrict __timeout,
  2971. const __sigset_t *__restrict __sigmask);
  2972.  
  2973.  
  2974.  
  2975. /* Define some inlines helping to catch common problems. */
  2976.  
  2977. # 1 "/usr/include/x86_64-linux-gnu/bits/select2.h" 1 3 4
  2978. /* Checking macros for select functions.
  2979. Copyright (C) 2011 Free Software Foundation, Inc.
  2980. This file is part of the GNU C Library.
  2981.  
  2982. The GNU C Library is free software; you can redistribute it and/or
  2983. modify it under the terms of the GNU Lesser General Public
  2984. License as published by the Free Software Foundation; either
  2985. version 2.1 of the License, or (at your option) any later version.
  2986.  
  2987. The GNU C Library is distributed in the hope that it will be useful,
  2988. but WITHOUT ANY WARRANTY; without even the implied warranty of
  2989. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2990. Lesser General Public License for more details.
  2991.  
  2992. You should have received a copy of the GNU Lesser General Public
  2993. License along with the GNU C Library; if not, write to the Free
  2994. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  2995. 02111-1307 USA. */
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001. /* Helper functions to issue warnings and errors when needed. */
  3002. extern unsigned long int __fdelt_chk (unsigned long int __d);
  3003. extern unsigned long int __fdelt_warn (unsigned long int __d)
  3004. __attribute__((__warning__ ("bit outside of fd_set selected")));
  3005. # 130 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  3006.  
  3007.  
  3008.  
  3009. # 4 "../../../dist/system_wrappers/sys/select.h" 2 3
  3010. #pragma GCC visibility pop
  3011. # 221 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  3012.  
  3013. /* BSD defines these symbols, so we follow. */
  3014. # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4
  3015. /* Definitions of macros to access `dev_t' values.
  3016. Copyright (C) 1996, 1997, 1999, 2003, 2004, 2007, 2011
  3017. Free Software Foundation, Inc.
  3018. This file is part of the GNU C Library.
  3019.  
  3020. The GNU C Library is free software; you can redistribute it and/or
  3021. modify it under the terms of the GNU Lesser General Public
  3022. License as published by the Free Software Foundation; either
  3023. version 2.1 of the License, or (at your option) any later version.
  3024.  
  3025. The GNU C Library is distributed in the hope that it will be useful,
  3026. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3027. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3028. Lesser General Public License for more details.
  3029.  
  3030. You should have received a copy of the GNU Lesser General Public
  3031. License along with the GNU C Library; if not, write to the Free
  3032. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3033. 02111-1307 USA. */
  3034.  
  3035.  
  3036.  
  3037.  
  3038. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  3039.  
  3040. # 2 "../../../dist/system_wrappers/features.h" 3
  3041. #pragma GCC visibility push(default)
  3042. # 1 "/usr/include/features.h" 1 3 4
  3043. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  3044. Free Software Foundation, Inc.
  3045. This file is part of the GNU C Library.
  3046.  
  3047. The GNU C Library is free software; you can redistribute it and/or
  3048. modify it under the terms of the GNU Lesser General Public
  3049. License as published by the Free Software Foundation; either
  3050. version 2.1 of the License, or (at your option) any later version.
  3051.  
  3052. The GNU C Library is distributed in the hope that it will be useful,
  3053. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3054. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3055. Lesser General Public License for more details.
  3056.  
  3057. You should have received a copy of the GNU Lesser General Public
  3058. License along with the GNU C Library; if not, write to the Free
  3059. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3060. 02111-1307 USA. */
  3061. # 4 "../../../dist/system_wrappers/features.h" 2 3
  3062. #pragma GCC visibility pop
  3063. # 25 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 2 3 4
  3064.  
  3065. /* If the compiler does not know long long it is out of luck. We are
  3066. not going to hack weird hacks to support the dev_t representation
  3067. they need. */
  3068.  
  3069.  
  3070.  
  3071. __extension__
  3072. extern unsigned int gnu_dev_major (unsigned long long int __dev)
  3073. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
  3074. __extension__
  3075. extern unsigned int gnu_dev_minor (unsigned long long int __dev)
  3076. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
  3077. __extension__
  3078. extern unsigned long long int gnu_dev_makedev (unsigned int __major,
  3079. unsigned int __minor)
  3080. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
  3081. # 64 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
  3082.  
  3083.  
  3084. /* Access the functions with their traditional names. */
  3085. # 224 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091. typedef __blksize_t blksize_t;
  3092.  
  3093.  
  3094.  
  3095. /* Types from the Large File Support interface. */
  3096.  
  3097.  
  3098. typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */
  3099.  
  3100.  
  3101.  
  3102. typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */
  3103.  
  3104.  
  3105.  
  3106. typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */
  3107. # 269 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  3108. /* Now add the thread types. */
  3109.  
  3110. # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
  3111. /* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
  3112. This file is part of the GNU C Library.
  3113. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
  3114.  
  3115. The GNU C Library is free software; you can redistribute it and/or
  3116. modify it under the terms of the GNU Lesser General Public
  3117. License as published by the Free Software Foundation; either
  3118. version 2.1 of the License, or (at your option) any later version.
  3119.  
  3120. The GNU C Library is distributed in the hope that it will be useful,
  3121. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3122. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3123. Lesser General Public License for more details.
  3124.  
  3125. You should have received a copy of the GNU Lesser General Public
  3126. License along with the GNU C Library; if not, write to the Free
  3127. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3128. 02111-1307 USA. */
  3129.  
  3130.  
  3131.  
  3132.  
  3133. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  3134. /* Determine the wordsize from the preprocessor defines. */
  3135. # 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
  3136. # 48 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  3137. /* Thread identifiers. The structure of the attribute type is not
  3138. exposed on purpose. */
  3139. typedef unsigned long int pthread_t;
  3140.  
  3141.  
  3142. typedef union
  3143. {
  3144. char __size[56];
  3145. long int __align;
  3146. } pthread_attr_t;
  3147.  
  3148.  
  3149.  
  3150. typedef struct __pthread_internal_list
  3151. {
  3152. struct __pthread_internal_list *__prev;
  3153. struct __pthread_internal_list *__next;
  3154. } __pthread_list_t;
  3155. # 74 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  3156. /* Data structures for mutex handling. The structure of the attribute
  3157. type is not exposed on purpose. */
  3158. typedef union
  3159. {
  3160. struct __pthread_mutex_s
  3161. {
  3162. int __lock;
  3163. unsigned int __count;
  3164. int __owner;
  3165.  
  3166. unsigned int __nusers;
  3167.  
  3168. /* KIND must stay at this position in the structure to maintain
  3169. binary compatibility. */
  3170. int __kind;
  3171.  
  3172. int __spins;
  3173. __pthread_list_t __list;
  3174. # 101 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  3175. } __data;
  3176. char __size[40];
  3177. long int __align;
  3178. } pthread_mutex_t;
  3179.  
  3180. typedef union
  3181. {
  3182. char __size[4];
  3183. int __align;
  3184. } pthread_mutexattr_t;
  3185.  
  3186.  
  3187. /* Data structure for conditional variable handling. The structure of
  3188. the attribute type is not exposed on purpose. */
  3189. typedef union
  3190. {
  3191. struct
  3192. {
  3193. int __lock;
  3194. unsigned int __futex;
  3195. __extension__ unsigned long long int __total_seq;
  3196. __extension__ unsigned long long int __wakeup_seq;
  3197. __extension__ unsigned long long int __woken_seq;
  3198. void *__mutex;
  3199. unsigned int __nwaiters;
  3200. unsigned int __broadcast_seq;
  3201. } __data;
  3202. char __size[48];
  3203. __extension__ long long int __align;
  3204. } pthread_cond_t;
  3205.  
  3206. typedef union
  3207. {
  3208. char __size[4];
  3209. int __align;
  3210. } pthread_condattr_t;
  3211.  
  3212.  
  3213. /* Keys for thread-specific data */
  3214. typedef unsigned int pthread_key_t;
  3215.  
  3216.  
  3217. /* Once-only execution */
  3218. typedef int pthread_once_t;
  3219.  
  3220.  
  3221.  
  3222. /* Data structure for read-write lock variable handling. The
  3223. structure of the attribute type is not exposed on purpose. */
  3224. typedef union
  3225. {
  3226.  
  3227. struct
  3228. {
  3229. int __lock;
  3230. unsigned int __nr_readers;
  3231. unsigned int __readers_wakeup;
  3232. unsigned int __writer_wakeup;
  3233. unsigned int __nr_readers_queued;
  3234. unsigned int __nr_writers_queued;
  3235. int __writer;
  3236. int __shared;
  3237. unsigned long int __pad1;
  3238. unsigned long int __pad2;
  3239. /* FLAGS must stay at this position in the structure to maintain
  3240. binary compatibility. */
  3241. unsigned int __flags;
  3242. } __data;
  3243. # 187 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  3244. char __size[56];
  3245. long int __align;
  3246. } pthread_rwlock_t;
  3247.  
  3248. typedef union
  3249. {
  3250. char __size[8];
  3251. long int __align;
  3252. } pthread_rwlockattr_t;
  3253.  
  3254.  
  3255.  
  3256.  
  3257. /* POSIX spinlock data type. */
  3258. typedef volatile int pthread_spinlock_t;
  3259.  
  3260.  
  3261. /* POSIX barriers data type. The structure of the type is
  3262. deliberately not exposed. */
  3263. typedef union
  3264. {
  3265. char __size[32];
  3266. long int __align;
  3267. } pthread_barrier_t;
  3268.  
  3269. typedef union
  3270. {
  3271. char __size[4];
  3272. int __align;
  3273. } pthread_barrierattr_t;
  3274. # 272 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  3275.  
  3276.  
  3277.  
  3278. # 4 "../../../dist/system_wrappers/sys/types.h" 2 3
  3279. #pragma GCC visibility pop
  3280. # 321 "/usr/include/stdlib.h" 2 3 4
  3281.  
  3282. /* These are the functions that actually do things. The `random', `srandom',
  3283. `initstate' and `setstate' functions are those from BSD Unices.
  3284. The `rand' and `srand' functions are required by the ANSI standard.
  3285. We provide both interfaces to the same random number generator. */
  3286. /* Return a random long integer between 0 and RAND_MAX inclusive. */
  3287. extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
  3288.  
  3289. /* Seed the random number generator with the given number. */
  3290. extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
  3291.  
  3292. /* Initialize the random number generator to use state buffer STATEBUF,
  3293. of length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,
  3294. 32, 64, 128 and 256, the bigger the better; values less than 8 will
  3295. cause an error and values greater than 256 will be rounded down. */
  3296. extern char *initstate (unsigned int __seed, char *__statebuf,
  3297. size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
  3298.  
  3299. /* Switch the random number generator to state buffer STATEBUF,
  3300. which should have been previously initialized by `initstate'. */
  3301. extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3302.  
  3303.  
  3304.  
  3305. /* Reentrant versions of the `random' family of functions.
  3306. These functions all use the following data structure to contain
  3307. state, rather than global state variables. */
  3308.  
  3309. struct random_data
  3310. {
  3311. int32_t *fptr; /* Front pointer. */
  3312. int32_t *rptr; /* Rear pointer. */
  3313. int32_t *state; /* Array of state values. */
  3314. int rand_type; /* Type of random number generator. */
  3315. int rand_deg; /* Degree of random number generator. */
  3316. int rand_sep; /* Distance between front and rear. */
  3317. int32_t *end_ptr; /* Pointer behind state table. */
  3318. };
  3319.  
  3320. extern int random_r (struct random_data *__restrict __buf,
  3321. int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3322.  
  3323. extern int srandom_r (unsigned int __seed, struct random_data *__buf)
  3324. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
  3325.  
  3326. extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
  3327. size_t __statelen,
  3328. struct random_data *__restrict __buf)
  3329. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
  3330.  
  3331. extern int setstate_r (char *__restrict __statebuf,
  3332. struct random_data *__restrict __buf)
  3333. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339. /* Return a random integer between 0 and RAND_MAX inclusive. */
  3340. extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
  3341. /* Seed the random number generator with the given number. */
  3342. extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
  3343.  
  3344.  
  3345.  
  3346. /* Reentrant interface according to POSIX.1. */
  3347. extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
  3348.  
  3349.  
  3350.  
  3351.  
  3352. /* System V style 48-bit random number generator functions. */
  3353.  
  3354. /* Return non-negative, double-precision floating-point value in [0.0,1.0). */
  3355. extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
  3356. extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3357.  
  3358. /* Return non-negative, long integer in [0,2^31). */
  3359. extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
  3360. extern long int nrand48 (unsigned short int __xsubi[3])
  3361. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3362.  
  3363. /* Return signed, long integers in [-2^31,2^31). */
  3364. extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
  3365. extern long int jrand48 (unsigned short int __xsubi[3])
  3366. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3367.  
  3368. /* Seed random number generator. */
  3369. extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
  3370. extern unsigned short int *seed48 (unsigned short int __seed16v[3])
  3371. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3372. extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3373.  
  3374.  
  3375. /* Data structure for communication with thread safe versions. This
  3376. type is to be regarded as opaque. It's only exported because users
  3377. have to allocate objects of this type. */
  3378. struct drand48_data
  3379. {
  3380. unsigned short int __x[3]; /* Current state. */
  3381. unsigned short int __old_x[3]; /* Old state. */
  3382. unsigned short int __c; /* Additive const. in congruential formula. */
  3383. unsigned short int __init; /* Flag for initializing. */
  3384. unsigned long long int __a; /* Factor in congruential formula. */
  3385. };
  3386.  
  3387. /* Return non-negative, double-precision floating-point value in [0.0,1.0). */
  3388. extern int drand48_r (struct drand48_data *__restrict __buffer,
  3389. double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3390. extern int erand48_r (unsigned short int __xsubi[3],
  3391. struct drand48_data *__restrict __buffer,
  3392. double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3393.  
  3394. /* Return non-negative, long integer in [0,2^31). */
  3395. extern int lrand48_r (struct drand48_data *__restrict __buffer,
  3396. long int *__restrict __result)
  3397. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3398. extern int nrand48_r (unsigned short int __xsubi[3],
  3399. struct drand48_data *__restrict __buffer,
  3400. long int *__restrict __result)
  3401. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3402.  
  3403. /* Return signed, long integers in [-2^31,2^31). */
  3404. extern int mrand48_r (struct drand48_data *__restrict __buffer,
  3405. long int *__restrict __result)
  3406. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3407. extern int jrand48_r (unsigned short int __xsubi[3],
  3408. struct drand48_data *__restrict __buffer,
  3409. long int *__restrict __result)
  3410. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3411.  
  3412. /* Seed random number generator. */
  3413. extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
  3414. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
  3415.  
  3416. extern int seed48_r (unsigned short int __seed16v[3],
  3417. struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3418.  
  3419. extern int lcong48_r (unsigned short int __param[7],
  3420. struct drand48_data *__buffer)
  3421. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430. /* Allocate SIZE bytes of memory. */
  3431. extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
  3432. /* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
  3433. extern void *calloc (size_t __nmemb, size_t __size)
  3434. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440. /* Re-allocate the previously allocated block
  3441. in PTR, making the new block SIZE bytes long. */
  3442. /* __attribute_malloc__ is not used, because if realloc returns
  3443. the same pointer that was passed to it, aliasing needs to be allowed
  3444. between objects pointed by the old and new pointers. */
  3445. extern void *realloc (void *__ptr, size_t __size)
  3446. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3447. /* Free a block allocated by `malloc', `realloc' or `calloc'. */
  3448. extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
  3449.  
  3450.  
  3451.  
  3452. /* Free a block. An alias for `free'. (Sun Unices). */
  3453. extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
  3454.  
  3455.  
  3456.  
  3457. # 1 "../../../dist/system_wrappers/alloca.h" 1 3 4
  3458.  
  3459. # 2 "../../../dist/system_wrappers/alloca.h" 3
  3460. #pragma GCC visibility push(default)
  3461. # 1 "/usr/include/alloca.h" 1 3 4
  3462. /* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  3463. This file is part of the GNU C Library.
  3464.  
  3465. The GNU C Library is free software; you can redistribute it and/or
  3466. modify it under the terms of the GNU Lesser General Public
  3467. License as published by the Free Software Foundation; either
  3468. version 2.1 of the License, or (at your option) any later version.
  3469.  
  3470. The GNU C Library is distributed in the hope that it will be useful,
  3471. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3472. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3473. Lesser General Public License for more details.
  3474.  
  3475. You should have received a copy of the GNU Lesser General Public
  3476. License along with the GNU C Library; if not, write to the Free
  3477. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3478. 02111-1307 USA. */
  3479.  
  3480.  
  3481.  
  3482.  
  3483. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  3484.  
  3485. # 2 "../../../dist/system_wrappers/features.h" 3
  3486. #pragma GCC visibility push(default)
  3487. # 1 "/usr/include/features.h" 1 3 4
  3488. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  3489. Free Software Foundation, Inc.
  3490. This file is part of the GNU C Library.
  3491.  
  3492. The GNU C Library is free software; you can redistribute it and/or
  3493. modify it under the terms of the GNU Lesser General Public
  3494. License as published by the Free Software Foundation; either
  3495. version 2.1 of the License, or (at your option) any later version.
  3496.  
  3497. The GNU C Library is distributed in the hope that it will be useful,
  3498. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3499. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3500. Lesser General Public License for more details.
  3501.  
  3502. You should have received a copy of the GNU Lesser General Public
  3503. License along with the GNU C Library; if not, write to the Free
  3504. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3505. 02111-1307 USA. */
  3506. # 4 "../../../dist/system_wrappers/features.h" 2 3
  3507. #pragma GCC visibility pop
  3508. # 23 "/usr/include/alloca.h" 2 3 4
  3509.  
  3510.  
  3511. # 1 "../../../dist/system_wrappers/stddef.h" 1 3 4
  3512.  
  3513. # 2 "../../../dist/system_wrappers/stddef.h" 3
  3514. #pragma GCC visibility push(default)
  3515. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  3516. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  3517. Free Software Foundation, Inc.
  3518.  
  3519. This file is part of GCC.
  3520.  
  3521. GCC is free software; you can redistribute it and/or modify
  3522. it under the terms of the GNU General Public License as published by
  3523. the Free Software Foundation; either version 3, or (at your option)
  3524. any later version.
  3525.  
  3526. GCC is distributed in the hope that it will be useful,
  3527. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3528. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  3529. GNU General Public License for more details.
  3530.  
  3531. Under Section 7 of GPL version 3, you are granted additional
  3532. permissions described in the GCC Runtime Library Exception, version
  3533. 3.1, as published by the Free Software Foundation.
  3534.  
  3535. You should have received a copy of the GNU General Public License and
  3536. a copy of the GCC Runtime Library Exception along with this program;
  3537. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  3538. <http://www.gnu.org/licenses/>. */
  3539.  
  3540. /*
  3541. * ISO C Standard: 7.17 Common definitions <stddef.h>
  3542. */
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549. /* Any one of these symbols __need_* means that GNU libc
  3550. wants us just to define one data type. So don't define
  3551. the symbols that indicate this file's entire job has been done. */
  3552. # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3553. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  3554. There's no way to win with the other order! Sun lossage. */
  3555.  
  3556. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  3557. one less case to deal with in the following. */
  3558.  
  3559.  
  3560.  
  3561. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  3562.  
  3563.  
  3564.  
  3565.  
  3566. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  3567. defined if the corresponding type is *not* defined.
  3568. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  3569. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  3570. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3571. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  3572. Just ignore it. */
  3573.  
  3574.  
  3575.  
  3576.  
  3577. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  3578. _TYPE_size_t which will typedef size_t. fixincludes patched the
  3579. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  3580. not defined, and so that defining this macro defines _GCC_SIZE_T.
  3581. If we find that the macros are still defined at this point, we must
  3582. invoke them so that the type is defined as expected. */
  3583. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3584. /* In case nobody has defined these types, but we aren't running under
  3585. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  3586. __WCHAR_TYPE__ have reasonable values. This can happen if the
  3587. parts of GCC is compiled by an older compiler, that actually
  3588. include gstddef.h, such as collect2. */
  3589.  
  3590. /* Signed type of difference of two pointers. */
  3591.  
  3592. /* Define this type if we are doing the whole job,
  3593. or if we want this type in particular. */
  3594. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3595. /* If this symbol has done its job, get rid of it. */
  3596.  
  3597.  
  3598.  
  3599.  
  3600. /* Unsigned type of `sizeof' something. */
  3601.  
  3602. /* Define this type if we are doing the whole job,
  3603. or if we want this type in particular. */
  3604. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3605. /* Wide character type.
  3606. Locale-writers should change this as necessary to
  3607. be big enough to hold unique values not between 0 and 127,
  3608. and not (wchar_t) -1, for each defined multibyte character. */
  3609.  
  3610. /* Define this type if we are doing the whole job,
  3611. or if we want this type in particular. */
  3612. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3613. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  3614. are already defined. */
  3615. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  3616. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  3617. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3618. /* A null pointer constant. */
  3619. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  3620. /* Offset of member MEMBER in a struct of type TYPE. */
  3621. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  3622. #pragma GCC visibility pop
  3623. # 26 "/usr/include/alloca.h" 2 3 4
  3624.  
  3625.  
  3626.  
  3627. /* Remove any previous definitions. */
  3628.  
  3629.  
  3630. /* Allocate a block that will be freed when the calling function exits. */
  3631. extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638. # 4 "../../../dist/system_wrappers/alloca.h" 2 3
  3639. #pragma GCC visibility pop
  3640. # 498 "/usr/include/stdlib.h" 2 3 4
  3641.  
  3642.  
  3643.  
  3644.  
  3645. /* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */
  3646. extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
  3647.  
  3648.  
  3649.  
  3650. /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */
  3651. extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
  3652. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3653.  
  3654.  
  3655.  
  3656. /* Abort execution and generate a core-dump. */
  3657. extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
  3658.  
  3659.  
  3660. /* Register a function to be called when `exit' is called. */
  3661. extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3662. # 531 "/usr/include/stdlib.h" 3 4
  3663.  
  3664.  
  3665.  
  3666. /* Register a function to be called with the status
  3667. given to `exit' and the given argument. */
  3668. extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
  3669. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3670.  
  3671.  
  3672.  
  3673. /* Call all functions registered with `atexit' and `on_exit',
  3674. in the reverse of the order in which they were registered,
  3675. perform stdio cleanup, and terminate program execution with STATUS. */
  3676. extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
  3677. # 554 "/usr/include/stdlib.h" 3 4
  3678.  
  3679.  
  3680.  
  3681.  
  3682. /* Terminate the program with STATUS without calling any of the
  3683. functions registered with `atexit' or `on_exit'. */
  3684. extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690. /* Return the value of envariable NAME, or NULL if it doesn't exist. */
  3691. extern char *getenv (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3692.  
  3693.  
  3694. /* This function is similar to the above but returns NULL if the
  3695. programs is running with SUID or SGID enabled. */
  3696. extern char *__secure_getenv (__const char *__name)
  3697. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3698.  
  3699.  
  3700. /* The SVID says this is in <stdio.h>, but this seems a better place. */
  3701. /* Put STRING, which is of the form "NAME=VALUE", in the environment.
  3702. If there is no `=', remove NAME from the environment. */
  3703. extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3704.  
  3705.  
  3706.  
  3707. /* Set NAME to VALUE in the environment.
  3708. If REPLACE is nonzero, overwrite an existing value. */
  3709. extern int setenv (__const char *__name, __const char *__value, int __replace)
  3710. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
  3711.  
  3712. /* Remove the variable NAME from the environment. */
  3713. extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3714.  
  3715.  
  3716.  
  3717. /* The `clearenv' was planned to be added to POSIX.1 but probably
  3718. never made it. Nevertheless the POSIX.9 standard (POSIX bindings
  3719. for Fortran 77) requires this function. */
  3720. extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726. /* Generate a unique temporary file name from TEMPLATE.
  3727. The last six characters of TEMPLATE must be "XXXXXX";
  3728. they are replaced with a string that makes the file name unique.
  3729. Returns TEMPLATE, or a null pointer if it cannot get a unique file name. */
  3730. extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3731.  
  3732.  
  3733.  
  3734.  
  3735. /* Generate a unique temporary file name from TEMPLATE.
  3736. The last six characters of TEMPLATE must be "XXXXXX";
  3737. they are replaced with a string that makes the filename unique.
  3738. Returns a file descriptor open on the file for reading and writing,
  3739. or -1 if it cannot create a uniquely-named file.
  3740.  
  3741. This function is a possible cancellation point and therefore not
  3742. marked with __THROW. */
  3743.  
  3744. extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3745. # 635 "/usr/include/stdlib.h" 3 4
  3746. /* Similar to mkstemp, but the template can have a suffix after the
  3747. XXXXXX. The length of the suffix is specified in the second
  3748. parameter.
  3749.  
  3750. This function is a possible cancellation point and therefore not
  3751. marked with __THROW. */
  3752.  
  3753. extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3754. # 658 "/usr/include/stdlib.h" 3 4
  3755. /* Create a unique temporary directory from TEMPLATE.
  3756. The last six characters of TEMPLATE must be "XXXXXX";
  3757. they are replaced with a string that makes the directory name unique.
  3758. Returns TEMPLATE, or a null pointer if it cannot get a unique name.
  3759. The directory is created mode 700. */
  3760. extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3761. # 712 "/usr/include/stdlib.h" 3 4
  3762.  
  3763. /* Execute the given line as a shell command.
  3764.  
  3765. This function is a cancellation point and therefore not marked with
  3766. __THROW. */
  3767. extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
  3768.  
  3769. # 729 "/usr/include/stdlib.h" 3 4
  3770. /* Return the canonical absolute name of file NAME. If RESOLVED is
  3771. null, the result is malloc'd; otherwise, if the canonical name is
  3772. PATH_MAX chars or more, returns null with `errno' set to
  3773. ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
  3774. returns the name in RESOLVED. */
  3775. extern char *realpath (__const char *__restrict __name,
  3776. char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3777.  
  3778.  
  3779.  
  3780. /* Shorthand for type of comparison functions. */
  3781.  
  3782.  
  3783. typedef int (*__compar_fn_t) (__const void *, __const void *);
  3784. # 752 "/usr/include/stdlib.h" 3 4
  3785.  
  3786. /* Do a binary search for KEY in BASE, which consists of NMEMB elements
  3787. of SIZE bytes each, using COMPAR to perform the comparisons. */
  3788. extern void *bsearch (__const void *__key, __const void *__base,
  3789. size_t __nmemb, size_t __size, __compar_fn_t __compar)
  3790. __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
  3791.  
  3792. /* Sort NMEMB elements of BASE, of SIZE bytes each,
  3793. using COMPAR to perform the comparisons. */
  3794. extern void qsort (void *__base, size_t __nmemb, size_t __size,
  3795. __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803. /* Return the absolute value of X. */
  3804. extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3805. extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3806.  
  3807.  
  3808.  
  3809. __extension__ extern long long int llabs (long long int __x)
  3810. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3811.  
  3812.  
  3813.  
  3814.  
  3815. /* Return the `div_t', `ldiv_t' or `lldiv_t' representation
  3816. of the value of NUMER over DENOM. */
  3817. /* GCC may have built-ins for these someday. */
  3818. extern div_t div (int __numer, int __denom)
  3819. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3820. extern ldiv_t ldiv (long int __numer, long int __denom)
  3821. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3822.  
  3823.  
  3824.  
  3825.  
  3826. __extension__ extern lldiv_t lldiv (long long int __numer,
  3827. long long int __denom)
  3828. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835. /* Convert floating point numbers to strings. The returned values are
  3836. valid only until another call to the same function. */
  3837.  
  3838. /* Convert VALUE to a string with NDIGIT digits and return a pointer to
  3839. this. Set *DECPT with the position of the decimal character and *SIGN
  3840. with the sign of the number. */
  3841. extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
  3842. int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
  3843.  
  3844. /* Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT
  3845. with the position of the decimal character and *SIGN with the sign of
  3846. the number. */
  3847. extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
  3848. int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
  3849.  
  3850. /* If possible convert VALUE to a string with NDIGIT significant digits.
  3851. Otherwise use exponential representation. The resulting string will
  3852. be written to BUF. */
  3853. extern char *gcvt (double __value, int __ndigit, char *__buf)
  3854. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
  3855.  
  3856.  
  3857.  
  3858. /* Long double versions of above functions. */
  3859. extern char *qecvt (long double __value, int __ndigit,
  3860. int *__restrict __decpt, int *__restrict __sign)
  3861. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
  3862. extern char *qfcvt (long double __value, int __ndigit,
  3863. int *__restrict __decpt, int *__restrict __sign)
  3864. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
  3865. extern char *qgcvt (long double __value, int __ndigit, char *__buf)
  3866. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
  3867.  
  3868.  
  3869. /* Reentrant version of the functions above which provide their own
  3870. buffers. */
  3871. extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
  3872. int *__restrict __sign, char *__restrict __buf,
  3873. size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
  3874. extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
  3875. int *__restrict __sign, char *__restrict __buf,
  3876. size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
  3877.  
  3878. extern int qecvt_r (long double __value, int __ndigit,
  3879. int *__restrict __decpt, int *__restrict __sign,
  3880. char *__restrict __buf, size_t __len)
  3881. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
  3882. extern int qfcvt_r (long double __value, int __ndigit,
  3883. int *__restrict __decpt, int *__restrict __sign,
  3884. char *__restrict __buf, size_t __len)
  3885. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891. /* Return the length of the multibyte character
  3892. in S, which is no longer than N. */
  3893. extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3894. /* Return the length of the given multibyte character,
  3895. putting its `wchar_t' representation in *PWC. */
  3896. extern int mbtowc (wchar_t *__restrict __pwc,
  3897. __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3898. /* Put the multibyte character represented
  3899. by WCHAR in S, returning its length. */
  3900. extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3901.  
  3902.  
  3903. /* Convert a multibyte string to a wide char string. */
  3904. extern size_t mbstowcs (wchar_t *__restrict __pwcs,
  3905. __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
  3906. /* Convert a wide char string to multibyte string. */
  3907. extern size_t wcstombs (char *__restrict __s,
  3908. __const wchar_t *__restrict __pwcs, size_t __n)
  3909. __attribute__ ((__nothrow__ , __leaf__));
  3910.  
  3911.  
  3912.  
  3913.  
  3914. /* Determine whether the string value of RESPONSE matches the affirmation
  3915. or negative response expression as specified by the LC_MESSAGES category
  3916. in the program's current locale. Returns 1 if affirmative, 0 if
  3917. negative, and -1 if not matching. */
  3918. extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
  3919.  
  3920.  
  3921.  
  3922.  
  3923. /* Parse comma separated suboption from *OPTIONP and match against
  3924. strings in TOKENS. If found return index and set *VALUEP to
  3925. optional value introduced by an equal sign. If the suboption is
  3926. not part of TOKENS return in *VALUEP beginning of unknown
  3927. suboption. On exit *OPTIONP is set to the beginning of the next
  3928. token or at the terminating NUL character. */
  3929. extern int getsubopt (char **__restrict __optionp,
  3930. char *__const *__restrict __tokens,
  3931. char **__restrict __valuep)
  3932. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
  3933. # 909 "/usr/include/stdlib.h" 3 4
  3934. /* X/Open pseudo terminal handling. */
  3935. # 945 "/usr/include/stdlib.h" 3 4
  3936. /* Put the 1 minute, 5 minute and 15 minute load averages into the first
  3937. NELEM elements of LOADAVG. Return the number written (never more than
  3938. three, but may be less than NELEM), or -1 if an error occurred. */
  3939. extern int getloadavg (double __loadavg[], int __nelem)
  3940. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
  3941.  
  3942.  
  3943.  
  3944. /* Define some macros helping to catch buffer overflows. */
  3945.  
  3946. # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1 3 4
  3947. /* Checking macros for stdlib functions.
  3948. Copyright (C) 2005, 2007 Free Software Foundation, Inc.
  3949. This file is part of the GNU C Library.
  3950.  
  3951. The GNU C Library is free software; you can redistribute it and/or
  3952. modify it under the terms of the GNU Lesser General Public
  3953. License as published by the Free Software Foundation; either
  3954. version 2.1 of the License, or (at your option) any later version.
  3955.  
  3956. The GNU C Library is distributed in the hope that it will be useful,
  3957. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3958. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  3959. Lesser General Public License for more details.
  3960.  
  3961. You should have received a copy of the GNU Lesser General Public
  3962. License along with the GNU C Library; if not, write to the Free
  3963. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  3964. 02111-1307 USA. */
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970. extern char *__realpath_chk (__const char *__restrict __name,
  3971. char *__restrict __resolved,
  3972. size_t __resolvedlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  3973. extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__ , __leaf__))
  3974.  
  3975. __attribute__ ((__warn_unused_result__));
  3976. extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__ , __leaf__))
  3977.  
  3978.  
  3979. __attribute__ ((__warn_unused_result__))
  3980. __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")))
  3981. ;
  3982.  
  3983. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
  3984. __attribute__ ((__nothrow__ , __leaf__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
  3985. {
  3986. if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
  3987. {
  3988.  
  3989.  
  3990.  
  3991.  
  3992. return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
  3993. }
  3994.  
  3995. return __realpath_alias (__name, __resolved);
  3996. }
  3997.  
  3998.  
  3999. extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
  4000. size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
  4001. extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__ , __leaf__))
  4002.  
  4003. __attribute__ ((__nonnull__ (2)));
  4004. extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__ , __leaf__))
  4005.  
  4006.  
  4007. __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")))
  4008. ;
  4009.  
  4010. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  4011. __attribute__ ((__nothrow__ , __leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
  4012. {
  4013. if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
  4014. {
  4015. if (!__builtin_constant_p (__buflen))
  4016. return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
  4017. if (__buflen > __builtin_object_size (__buf, 2 > 1))
  4018. return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
  4019. }
  4020. return __ptsname_r_alias (__fd, __buf, __buflen);
  4021. }
  4022.  
  4023.  
  4024. extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
  4025. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4026. extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__ , __leaf__))
  4027. __attribute__ ((__warn_unused_result__));
  4028.  
  4029. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int
  4030. __attribute__ ((__nothrow__ , __leaf__)) wctomb (char *__s, wchar_t __wchar)
  4031. {
  4032. /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
  4033. But this would only disturb the namespace. So we define our own
  4034. version here. */
  4035.  
  4036.  
  4037.  
  4038.  
  4039. if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
  4040. return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
  4041. return __wctomb_alias (__s, __wchar);
  4042. }
  4043.  
  4044.  
  4045. extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
  4046. __const char *__restrict __src,
  4047. size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__));
  4048. extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__ , __leaf__))
  4049.  
  4050.  
  4051. ;
  4052. extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__ , __leaf__))
  4053.  
  4054.  
  4055.  
  4056. __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")))
  4057. ;
  4058.  
  4059. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
  4060. __attribute__ ((__nothrow__ , __leaf__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
  4061.  
  4062. {
  4063. if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
  4064. {
  4065. if (!__builtin_constant_p (__len))
  4066. return __mbstowcs_chk (__dst, __src, __len,
  4067. __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
  4068.  
  4069. if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
  4070. return __mbstowcs_chk_warn (__dst, __src, __len,
  4071. __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
  4072. }
  4073. return __mbstowcs_alias (__dst, __src, __len);
  4074. }
  4075.  
  4076.  
  4077. extern size_t __wcstombs_chk (char *__restrict __dst,
  4078. __const wchar_t *__restrict __src,
  4079. size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__));
  4080. extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__ , __leaf__))
  4081.  
  4082.  
  4083. ;
  4084. extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__ , __leaf__))
  4085.  
  4086.  
  4087.  
  4088. __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
  4089.  
  4090. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
  4091. __attribute__ ((__nothrow__ , __leaf__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
  4092.  
  4093. {
  4094. if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
  4095. {
  4096. if (!__builtin_constant_p (__len))
  4097. return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
  4098. if (__len > __builtin_object_size (__dst, 2 > 1))
  4099. return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
  4100. }
  4101. return __wcstombs_alias (__dst, __src, __len);
  4102. }
  4103. # 956 "/usr/include/stdlib.h" 2 3 4
  4104. # 964 "/usr/include/stdlib.h" 3 4
  4105.  
  4106. # 4 "../../../dist/system_wrappers/stdlib.h" 2 3
  4107. #pragma GCC visibility pop
  4108. # 5 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/memory/replace/realloc/realloc.c" 2
  4109. # 1 "../../../dist/system_wrappers/stdio.h" 1
  4110.  
  4111. # 2 "../../../dist/system_wrappers/stdio.h" 3
  4112. #pragma GCC visibility push(default)
  4113. # 1 "/usr/include/stdio.h" 1 3 4
  4114. /* Define ISO C stdio on top of C++ iostreams.
  4115. Copyright (C) 1991, 1994-2010, 2011 Free Software Foundation, Inc.
  4116. This file is part of the GNU C Library.
  4117.  
  4118. The GNU C Library is free software; you can redistribute it and/or
  4119. modify it under the terms of the GNU Lesser General Public
  4120. License as published by the Free Software Foundation; either
  4121. version 2.1 of the License, or (at your option) any later version.
  4122.  
  4123. The GNU C Library is distributed in the hope that it will be useful,
  4124. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4125. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4126. Lesser General Public License for more details.
  4127.  
  4128. You should have received a copy of the GNU Lesser General Public
  4129. License along with the GNU C Library; if not, write to the Free
  4130. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4131. 02111-1307 USA. */
  4132.  
  4133. /*
  4134. * ISO C99 Standard: 7.19 Input/output <stdio.h>
  4135. */
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141. # 1 "../../../dist/system_wrappers/features.h" 1 3 4
  4142.  
  4143. # 2 "../../../dist/system_wrappers/features.h" 3
  4144. #pragma GCC visibility push(default)
  4145. # 1 "/usr/include/features.h" 1 3 4
  4146. /* Copyright (C) 1991-1993,1995-2007,2009,2010,2011
  4147. Free Software Foundation, Inc.
  4148. This file is part of the GNU C Library.
  4149.  
  4150. The GNU C Library is free software; you can redistribute it and/or
  4151. modify it under the terms of the GNU Lesser General Public
  4152. License as published by the Free Software Foundation; either
  4153. version 2.1 of the License, or (at your option) any later version.
  4154.  
  4155. The GNU C Library is distributed in the hope that it will be useful,
  4156. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4157. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4158. Lesser General Public License for more details.
  4159.  
  4160. You should have received a copy of the GNU Lesser General Public
  4161. License along with the GNU C Library; if not, write to the Free
  4162. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4163. 02111-1307 USA. */
  4164. # 4 "../../../dist/system_wrappers/features.h" 2 3
  4165. #pragma GCC visibility pop
  4166. # 29 "/usr/include/stdio.h" 2 3 4
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172. # 1 "../../../dist/system_wrappers/stddef.h" 1 3 4
  4173.  
  4174. # 2 "../../../dist/system_wrappers/stddef.h" 3
  4175. #pragma GCC visibility push(default)
  4176. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  4177. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  4178. Free Software Foundation, Inc.
  4179.  
  4180. This file is part of GCC.
  4181.  
  4182. GCC is free software; you can redistribute it and/or modify
  4183. it under the terms of the GNU General Public License as published by
  4184. the Free Software Foundation; either version 3, or (at your option)
  4185. any later version.
  4186.  
  4187. GCC is distributed in the hope that it will be useful,
  4188. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4189. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  4190. GNU General Public License for more details.
  4191.  
  4192. Under Section 7 of GPL version 3, you are granted additional
  4193. permissions described in the GCC Runtime Library Exception, version
  4194. 3.1, as published by the Free Software Foundation.
  4195.  
  4196. You should have received a copy of the GNU General Public License and
  4197. a copy of the GCC Runtime Library Exception along with this program;
  4198. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  4199. <http://www.gnu.org/licenses/>. */
  4200.  
  4201. /*
  4202. * ISO C Standard: 7.17 Common definitions <stddef.h>
  4203. */
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210. /* Any one of these symbols __need_* means that GNU libc
  4211. wants us just to define one data type. So don't define
  4212. the symbols that indicate this file's entire job has been done. */
  4213. # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4214. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  4215. There's no way to win with the other order! Sun lossage. */
  4216.  
  4217. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  4218. one less case to deal with in the following. */
  4219.  
  4220.  
  4221.  
  4222. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  4223.  
  4224.  
  4225.  
  4226.  
  4227. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  4228. defined if the corresponding type is *not* defined.
  4229. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  4230. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  4231. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4232. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  4233. Just ignore it. */
  4234.  
  4235.  
  4236.  
  4237.  
  4238. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  4239. _TYPE_size_t which will typedef size_t. fixincludes patched the
  4240. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  4241. not defined, and so that defining this macro defines _GCC_SIZE_T.
  4242. If we find that the macros are still defined at this point, we must
  4243. invoke them so that the type is defined as expected. */
  4244. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4245. /* In case nobody has defined these types, but we aren't running under
  4246. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  4247. __WCHAR_TYPE__ have reasonable values. This can happen if the
  4248. parts of GCC is compiled by an older compiler, that actually
  4249. include gstddef.h, such as collect2. */
  4250.  
  4251. /* Signed type of difference of two pointers. */
  4252.  
  4253. /* Define this type if we are doing the whole job,
  4254. or if we want this type in particular. */
  4255. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4256. /* If this symbol has done its job, get rid of it. */
  4257.  
  4258.  
  4259.  
  4260.  
  4261. /* Unsigned type of `sizeof' something. */
  4262.  
  4263. /* Define this type if we are doing the whole job,
  4264. or if we want this type in particular. */
  4265. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4266. /* Wide character type.
  4267. Locale-writers should change this as necessary to
  4268. be big enough to hold unique values not between 0 and 127,
  4269. and not (wchar_t) -1, for each defined multibyte character. */
  4270.  
  4271. /* Define this type if we are doing the whole job,
  4272. or if we want this type in particular. */
  4273. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4274. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  4275. are already defined. */
  4276. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  4277. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  4278. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4279. /* A null pointer constant. */
  4280. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4281. /* Offset of member MEMBER in a struct of type TYPE. */
  4282. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  4283. #pragma GCC visibility pop
  4284. # 35 "/usr/include/stdio.h" 2 3 4
  4285.  
  4286. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  4287. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  4288. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  4289. This file is part of the GNU C Library.
  4290.  
  4291. The GNU C Library is free software; you can redistribute it and/or
  4292. modify it under the terms of the GNU Lesser General Public
  4293. License as published by the Free Software Foundation; either
  4294. version 2.1 of the License, or (at your option) any later version.
  4295.  
  4296. The GNU C Library is distributed in the hope that it will be useful,
  4297. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4298. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4299. Lesser General Public License for more details.
  4300.  
  4301. You should have received a copy of the GNU Lesser General Public
  4302. License along with the GNU C Library; if not, write to the Free
  4303. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4304. 02111-1307 USA. */
  4305.  
  4306. /*
  4307. * Never include this file directly; use <sys/types.h> instead.
  4308. */
  4309. # 37 "/usr/include/stdio.h" 2 3 4
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317. /* Define outside of namespace so the C++ is happy. */
  4318. struct _IO_FILE;
  4319.  
  4320.  
  4321. /* The opaque type of streams. This is the definition used elsewhere. */
  4322. typedef struct _IO_FILE FILE;
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328. # 64 "/usr/include/stdio.h" 3 4
  4329. /* The opaque type of streams. This is the definition used elsewhere. */
  4330. typedef struct _IO_FILE __FILE;
  4331. # 75 "/usr/include/stdio.h" 3 4
  4332. # 1 "/usr/include/libio.h" 1 3 4
  4333. /* Copyright (C) 1991-1995,1997-2006,2007,2009,2011 Free Software Foundation, Inc.
  4334. This file is part of the GNU C Library.
  4335. Written by Per Bothner <bothner@cygnus.com>.
  4336.  
  4337. The GNU C Library is free software; you can redistribute it and/or
  4338. modify it under the terms of the GNU Lesser General Public
  4339. License as published by the Free Software Foundation; either
  4340. version 2.1 of the License, or (at your option) any later version.
  4341.  
  4342. The GNU C Library is distributed in the hope that it will be useful,
  4343. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4344. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4345. Lesser General Public License for more details.
  4346.  
  4347. You should have received a copy of the GNU Lesser General Public
  4348. License along with the GNU C Library; if not, write to the Free
  4349. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4350. 02111-1307 USA.
  4351.  
  4352. As a special exception, if you link the code in this file with
  4353. files compiled with a GNU compiler to produce an executable,
  4354. that does not cause the resulting executable to be covered by
  4355. the GNU Lesser General Public License. This exception does not
  4356. however invalidate any other reasons why the executable file
  4357. might be covered by the GNU Lesser General Public License.
  4358. This exception applies to code released by its copyright holders
  4359. in files containing the exception. */
  4360.  
  4361.  
  4362.  
  4363.  
  4364. # 1 "/usr/include/_G_config.h" 1 3 4
  4365. /* This file is needed by libio to define various configuration parameters.
  4366. These are always the same in the GNU C library. */
  4367.  
  4368.  
  4369.  
  4370.  
  4371. /* Define types for libio in terms of the standard internal type names. */
  4372.  
  4373. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  4374. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  4375. Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  4376. This file is part of the GNU C Library.
  4377.  
  4378. The GNU C Library is free software; you can redistribute it and/or
  4379. modify it under the terms of the GNU Lesser General Public
  4380. License as published by the Free Software Foundation; either
  4381. version 2.1 of the License, or (at your option) any later version.
  4382.  
  4383. The GNU C Library is distributed in the hope that it will be useful,
  4384. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4385. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4386. Lesser General Public License for more details.
  4387.  
  4388. You should have received a copy of the GNU Lesser General Public
  4389. License along with the GNU C Library; if not, write to the Free
  4390. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4391. 02111-1307 USA. */
  4392.  
  4393. /*
  4394. * Never include this file directly; use <sys/types.h> instead.
  4395. */
  4396. # 10 "/usr/include/_G_config.h" 2 3 4
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402. # 1 "../../../dist/system_wrappers/stddef.h" 1 3 4
  4403.  
  4404. # 2 "../../../dist/system_wrappers/stddef.h" 3
  4405. #pragma GCC visibility push(default)
  4406. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 1 3 4
  4407. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
  4408. Free Software Foundation, Inc.
  4409.  
  4410. This file is part of GCC.
  4411.  
  4412. GCC is free software; you can redistribute it and/or modify
  4413. it under the terms of the GNU General Public License as published by
  4414. the Free Software Foundation; either version 3, or (at your option)
  4415. any later version.
  4416.  
  4417. GCC is distributed in the hope that it will be useful,
  4418. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4419. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  4420. GNU General Public License for more details.
  4421.  
  4422. Under Section 7 of GPL version 3, you are granted additional
  4423. permissions described in the GCC Runtime Library Exception, version
  4424. 3.1, as published by the Free Software Foundation.
  4425.  
  4426. You should have received a copy of the GNU General Public License and
  4427. a copy of the GCC Runtime Library Exception along with this program;
  4428. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  4429. <http://www.gnu.org/licenses/>. */
  4430.  
  4431. /*
  4432. * ISO C Standard: 7.17 Common definitions <stddef.h>
  4433. */
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440. /* Any one of these symbols __need_* means that GNU libc
  4441. wants us just to define one data type. So don't define
  4442. the symbols that indicate this file's entire job has been done. */
  4443. # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4444. /* This avoids lossage on SunOS but only if stdtypes.h comes first.
  4445. There's no way to win with the other order! Sun lossage. */
  4446.  
  4447. /* On 4.3bsd-net2, make sure ansi.h is included, so we have
  4448. one less case to deal with in the following. */
  4449.  
  4450.  
  4451.  
  4452. /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
  4453.  
  4454.  
  4455.  
  4456.  
  4457. /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
  4458. defined if the corresponding type is *not* defined.
  4459. FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
  4460. NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
  4461. # 95 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4462. /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  4463. Just ignore it. */
  4464.  
  4465.  
  4466.  
  4467.  
  4468. /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
  4469. _TYPE_size_t which will typedef size_t. fixincludes patched the
  4470. vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  4471. not defined, and so that defining this macro defines _GCC_SIZE_T.
  4472. If we find that the macros are still defined at this point, we must
  4473. invoke them so that the type is defined as expected. */
  4474. # 120 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4475. /* In case nobody has defined these types, but we aren't running under
  4476. GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  4477. __WCHAR_TYPE__ have reasonable values. This can happen if the
  4478. parts of GCC is compiled by an older compiler, that actually
  4479. include gstddef.h, such as collect2. */
  4480.  
  4481. /* Signed type of difference of two pointers. */
  4482.  
  4483. /* Define this type if we are doing the whole job,
  4484. or if we want this type in particular. */
  4485. # 160 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4486. /* If this symbol has done its job, get rid of it. */
  4487.  
  4488.  
  4489.  
  4490.  
  4491. /* Unsigned type of `sizeof' something. */
  4492.  
  4493. /* Define this type if we are doing the whole job,
  4494. or if we want this type in particular. */
  4495. # 238 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4496. /* Wide character type.
  4497. Locale-writers should change this as necessary to
  4498. be big enough to hold unique values not between 0 and 127,
  4499. and not (wchar_t) -1, for each defined multibyte character. */
  4500.  
  4501. /* Define this type if we are doing the whole job,
  4502. or if we want this type in particular. */
  4503. # 358 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4504. /* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
  4505. are already defined. */
  4506. /* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
  4507. /* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
  4508. # 394 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4509. /* A null pointer constant. */
  4510. # 412 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h" 3 4
  4511. /* Offset of member MEMBER in a struct of type TYPE. */
  4512. # 4 "../../../dist/system_wrappers/stddef.h" 2 3
  4513. #pragma GCC visibility pop
  4514. # 16 "/usr/include/_G_config.h" 2 3 4
  4515.  
  4516.  
  4517.  
  4518.  
  4519. # 1 "../../../dist/system_wrappers/wchar.h" 1 3 4
  4520.  
  4521. # 2 "../../../dist/system_wrappers/wchar.h" 3
  4522. #pragma GCC visibility push(default)
  4523. # 1 "/usr/include/wchar.h" 1 3 4
  4524. /* Copyright (C) 1995-2008, 2009, 2010, 2011 Free Software Foundation, Inc.
  4525. This file is part of the GNU C Library.
  4526.  
  4527. The GNU C Library is free software; you can redistribute it and/or
  4528. modify it under the terms of the GNU Lesser General Public
  4529. License as published by the Free Software Foundation; either
  4530. version 2.1 of the License, or (at your option) any later version.
  4531.  
  4532. The GNU C Library is distributed in the hope that it will be useful,
  4533. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4534. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4535. Lesser General Public License for more details.
  4536.  
  4537. You should have received a copy of the GNU Lesser General Public
  4538. License along with the GNU C Library; if not, write to the Free
  4539. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4540. 02111-1307 USA. */
  4541.  
  4542. /*
  4543. * ISO C99 Standard: 7.24
  4544. * Extended multibyte and wide character utilities <wchar.h>
  4545. */
  4546. # 82 "/usr/include/wchar.h" 3 4
  4547. /* Conversion state information. */
  4548. typedef struct
  4549. {
  4550. int __count;
  4551. union
  4552. {
  4553.  
  4554. unsigned int __wch;
  4555.  
  4556.  
  4557.  
  4558. char __wchb[4];
  4559. } __value; /* Value so far. */
  4560. } __mbstate_t;
  4561.  
  4562.  
  4563.  
  4564.  
  4565. /* The rest of the file is only used if used if __need_mbstate_t is not
  4566. defined. */
  4567. # 894 "/usr/include/wchar.h" 3 4
  4568. /* Undefine all __need_* constants in case we are included to get those
  4569. constants but the whole file was already read. */
  4570. # 4 "../../../dist/system_wrappers/wchar.h" 2 3
  4571. #pragma GCC visibility pop
  4572. # 21 "/usr/include/_G_config.h" 2 3 4
  4573.  
  4574. typedef struct
  4575. {
  4576. __off_t __pos;
  4577. __mbstate_t __state;
  4578. } _G_fpos_t;
  4579. typedef struct
  4580. {
  4581. __off64_t __pos;
  4582. __mbstate_t __state;
  4583. } _G_fpos64_t;
  4584. # 53 "/usr/include/_G_config.h" 3 4
  4585. typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
  4586. typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
  4587. typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
  4588. typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
  4589.  
  4590.  
  4591.  
  4592.  
  4593. /* These library features are always available in the GNU C library. */
  4594. # 82 "/usr/include/_G_config.h" 3 4
  4595. /* This is defined by <bits/stat.h> if `st_blksize' exists. */
  4596.  
  4597.  
  4598.  
  4599.  
  4600. /* These are the vtbl details for ELF. */
  4601. # 33 "/usr/include/libio.h" 2 3 4
  4602. /* ALL of these should be defined in _G_config.h */
  4603. # 51 "/usr/include/libio.h" 3 4
  4604. /* This define avoids name pollution if we're using GNU stdarg.h */
  4605.  
  4606. # 1 "../../../dist/system_wrappers/stdarg.h" 1 3 4
  4607.  
  4608. # 2 "../../../dist/system_wrappers/stdarg.h" 3
  4609. #pragma GCC visibility push(default)
  4610. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h" 1 3 4
  4611. /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
  4612.  
  4613. This file is part of GCC.
  4614.  
  4615. GCC is free software; you can redistribute it and/or modify
  4616. it under the terms of the GNU General Public License as published by
  4617. the Free Software Foundation; either version 3, or (at your option)
  4618. any later version.
  4619.  
  4620. GCC is distributed in the hope that it will be useful,
  4621. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4622. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  4623. GNU General Public License for more details.
  4624.  
  4625. Under Section 7 of GPL version 3, you are granted additional
  4626. permissions described in the GCC Runtime Library Exception, version
  4627. 3.1, as published by the Free Software Foundation.
  4628.  
  4629. You should have received a copy of the GNU General Public License and
  4630. a copy of the GCC Runtime Library Exception along with this program;
  4631. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  4632. <http://www.gnu.org/licenses/>. */
  4633.  
  4634. /*
  4635. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  4636. */
  4637. # 36 "/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h" 3 4
  4638. /* Define __gnuc_va_list. */
  4639.  
  4640.  
  4641.  
  4642. typedef __builtin_va_list __gnuc_va_list;
  4643.  
  4644.  
  4645. /* Define the standard macros for the user,
  4646. if this invocation was from the user program. */
  4647. # 4 "../../../dist/system_wrappers/stdarg.h" 2 3
  4648. #pragma GCC visibility pop
  4649. # 54 "/usr/include/libio.h" 2 3 4
  4650. # 74 "/usr/include/libio.h" 3 4
  4651. /* For backward compatibility */
  4652. # 114 "/usr/include/libio.h" 3 4
  4653. /* Magic numbers and bits for the _flags field.
  4654. The magic numbers use the high-order bits of _flags;
  4655. the remaining bits are available for variable flags.
  4656. Note: The magic numbers must all be negative if stdio
  4657. emulation is desired. */
  4658. # 152 "/usr/include/libio.h" 3 4
  4659. /* These are "formatting flags" matching the iostream fmtflags enum values. */
  4660. # 172 "/usr/include/libio.h" 3 4
  4661. struct _IO_jump_t; struct _IO_FILE;
  4662.  
  4663. /* Handle lock. */
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671. typedef void _IO_lock_t;
  4672.  
  4673.  
  4674.  
  4675. /* A streammarker remembers a position in a buffer. */
  4676.  
  4677. struct _IO_marker {
  4678. struct _IO_marker *_next;
  4679. struct _IO_FILE *_sbuf;
  4680. /* If _pos >= 0
  4681. it points to _buf->Gbase()+_pos. FIXME comment */
  4682. /* if _pos < 0, it points to _buf->eBptr()+_pos. FIXME comment */
  4683. int _pos;
  4684. # 205 "/usr/include/libio.h" 3 4
  4685. };
  4686.  
  4687. /* This is the structure from the libstdc++ codecvt class. */
  4688. enum __codecvt_result
  4689. {
  4690. __codecvt_ok,
  4691. __codecvt_partial,
  4692. __codecvt_error,
  4693. __codecvt_noconv
  4694. };
  4695. # 273 "/usr/include/libio.h" 3 4
  4696. struct _IO_FILE {
  4697. int _flags; /* High-order word is _IO_MAGIC; rest is flags. */
  4698.  
  4699.  
  4700. /* The following pointers correspond to the C++ streambuf protocol. */
  4701. /* Note: Tk uses the _IO_read_ptr and _IO_read_end fields directly. */
  4702. char* _IO_read_ptr; /* Current read pointer */
  4703. char* _IO_read_end; /* End of get area. */
  4704. char* _IO_read_base; /* Start of putback+get area. */
  4705. char* _IO_write_base; /* Start of put area. */
  4706. char* _IO_write_ptr; /* Current put pointer. */
  4707. char* _IO_write_end; /* End of put area. */
  4708. char* _IO_buf_base; /* Start of reserve area. */
  4709. char* _IO_buf_end; /* End of reserve area. */
  4710. /* The following fields are used to support backing up and undo. */
  4711. char *_IO_save_base; /* Pointer to start of non-current get area. */
  4712. char *_IO_backup_base; /* Pointer to first valid character of backup area */
  4713. char *_IO_save_end; /* Pointer to end of non-current get area. */
  4714.  
  4715. struct _IO_marker *_markers;
  4716.  
  4717. struct _IO_FILE *_chain;
  4718.  
  4719. int _fileno;
  4720.  
  4721.  
  4722.  
  4723. int _flags2;
  4724.  
  4725. __off_t _old_offset; /* This used to be _offset but it's too small. */
  4726.  
  4727.  
  4728. /* 1+column number of pbase(); 0 is unknown. */
  4729. unsigned short _cur_column;
  4730. signed char _vtable_offset;
  4731. char _shortbuf[1];
  4732.  
  4733. /* char* _save_gptr; char* _save_egptr; */
  4734.  
  4735. _IO_lock_t *_lock;
  4736. # 321 "/usr/include/libio.h" 3 4
  4737. __off64_t _offset;
  4738. # 330 "/usr/include/libio.h" 3 4
  4739. void *__pad1;
  4740. void *__pad2;
  4741. void *__pad3;
  4742. void *__pad4;
  4743. size_t __pad5;
  4744.  
  4745. int _mode;
  4746. /* Make sure we don't get into trouble again. */
  4747. char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
  4748.  
  4749. };
  4750.  
  4751.  
  4752. typedef struct _IO_FILE _IO_FILE;
  4753.  
  4754.  
  4755. struct _IO_FILE_plus;
  4756.  
  4757. extern struct _IO_FILE_plus _IO_2_1_stdin_;
  4758. extern struct _IO_FILE_plus _IO_2_1_stdout_;
  4759. extern struct _IO_FILE_plus _IO_2_1_stderr_;
  4760. # 362 "/usr/include/libio.h" 3 4
  4761. /* Functions to do I/O and file management for a stream. */
  4762.  
  4763. /* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
  4764. Return number of bytes read. */
  4765. typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
  4766.  
  4767. /* Write N bytes pointed to by BUF to COOKIE. Write all N bytes
  4768. unless there is an error. Return number of bytes written, or -1 if
  4769. there is an error without writing anything. If the file has been
  4770. opened for append (__mode.__append set), then set the file pointer
  4771. to the end of the file and then do the write; if not, just write at
  4772. the current file pointer. */
  4773. typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
  4774. size_t __n);
  4775.  
  4776. /* Move COOKIE's file position to *POS bytes from the
  4777. beginning of the file (if W is SEEK_SET),
  4778. the current position (if W is SEEK_CUR),
  4779. or the end of the file (if W is SEEK_END).
  4780. Set *POS to the new file position.
  4781. Returns zero if successful, nonzero if not. */
  4782. typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
  4783.  
  4784. /* Close COOKIE. */
  4785. typedef int __io_close_fn (void *__cookie);
  4786. # 418 "/usr/include/libio.h" 3 4
  4787. extern int __underflow (_IO_FILE *);
  4788. extern int __uflow (_IO_FILE *);
  4789. extern int __overflow (_IO_FILE *, int);
  4790. # 462 "/usr/include/libio.h" 3 4
  4791. extern int _IO_getc (_IO_FILE *__fp);
  4792. extern int _IO_putc (int __c, _IO_FILE *__fp);
  4793. extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
  4794. extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
  4795.  
  4796. extern int _IO_peekc_locked (_IO_FILE *__fp);
  4797.  
  4798. /* This one is for Emacs. */
  4799.  
  4800.  
  4801.  
  4802. extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
  4803. extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
  4804. extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
  4805. # 492 "/usr/include/libio.h" 3 4
  4806. extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
  4807. __gnuc_va_list, int *__restrict);
  4808. extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
  4809. __gnuc_va_list);
  4810. extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
  4811. extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
  4812.  
  4813. extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
  4814. extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
  4815.  
  4816. extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
  4817. # 76 "/usr/include/stdio.h" 2 3 4
  4818.  
  4819.  
  4820.  
  4821.  
  4822. typedef __gnuc_va_list va_list;
  4823. # 108 "/usr/include/stdio.h" 3 4
  4824. /* The type of the second argument to `fgetpos' and `fsetpos'. */
  4825.  
  4826.  
  4827. typedef _G_fpos_t fpos_t;
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836. /* The possibilities for the third argument to `setvbuf'. */
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842. /* Default buffer size. */
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848. /* End of file character.
  4849. Some things throughout the library rely on this being -1. */
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855. /* The possibilities for the third argument to `fseek'.
  4856. These values should not be changed. */
  4857. # 151 "/usr/include/stdio.h" 3 4
  4858. /* Default path prefix for `tempnam' and `tmpnam'. */
  4859.  
  4860.  
  4861.  
  4862.  
  4863. /* Get the values:
  4864. L_tmpnam How long an array of chars must be to be passed to `tmpnam'.
  4865. TMP_MAX The minimum number of unique filenames generated by tmpnam
  4866. (and tempnam when it uses tmpnam's name space),
  4867. or tempnam (the two are separate).
  4868. L_ctermid How long an array to pass to `ctermid'.
  4869. L_cuserid How long an array to pass to `cuserid'.
  4870. FOPEN_MAX Minimum number of files that can be open at once.
  4871. FILENAME_MAX Maximum length of a filename. */
  4872. # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
  4873. /* Copyright (C) 1994, 1997, 1998, 1999, 2009 Free Software Foundation, Inc.
  4874. This file is part of the GNU C Library.
  4875.  
  4876. The GNU C Library is free software; you can redistribute it and/or
  4877. modify it under the terms of the GNU Lesser General Public
  4878. License as published by the Free Software Foundation; either
  4879. version 2.1 of the License, or (at your option) any later version.
  4880.  
  4881. The GNU C Library is distributed in the hope that it will be useful,
  4882. but WITHOUT ANY WARRANTY; without even the implied warranty of
  4883. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  4884. Lesser General Public License for more details.
  4885.  
  4886. You should have received a copy of the GNU Lesser General Public
  4887. License along with the GNU C Library; if not, write to the Free
  4888. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  4889. 02111-1307 USA. */
  4890. # 166 "/usr/include/stdio.h" 2 3 4
  4891.  
  4892.  
  4893. /* Standard streams. */
  4894. extern struct _IO_FILE *stdin; /* Standard input stream. */
  4895. extern struct _IO_FILE *stdout; /* Standard output stream. */
  4896. extern struct _IO_FILE *stderr; /* Standard error output stream. */
  4897. /* C89/C99 say they're macros. Make them happy. */
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903. /* Remove file FILENAME. */
  4904. extern int remove (__const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
  4905. /* Rename file OLD to NEW. */
  4906. extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__ , __leaf__));
  4907.  
  4908.  
  4909.  
  4910. /* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */
  4911. extern int renameat (int __oldfd, __const char *__old, int __newfd,
  4912. __const char *__new) __attribute__ ((__nothrow__ , __leaf__));
  4913.  
  4914.  
  4915.  
  4916. /* Create a temporary file and open it read/write.
  4917.  
  4918. This function is a possible cancellation point and therefore not
  4919. marked with __THROW. */
  4920.  
  4921. extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
  4922. # 209 "/usr/include/stdio.h" 3 4
  4923. /* Generate a temporary filename. */
  4924. extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4925.  
  4926.  
  4927.  
  4928. /* This is the reentrant variant of `tmpnam'. The only difference is
  4929. that it does not allow S to be NULL. */
  4930. extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4931.  
  4932.  
  4933.  
  4934.  
  4935. /* Generate a unique temporary filename using up to five characters of PFX
  4936. if it is not NULL. The directory to put this file in is searched for
  4937. as follows: First the environment variable "TMPDIR" is checked.
  4938. If it contains the name of a writable directory, that directory is used.
  4939. If not and if DIR is not NULL, that value is checked. If that fails,
  4940. P_tmpdir is tried and finally "/tmp". The storage for the filename
  4941. is allocated by `malloc'. */
  4942. extern char *tempnam (__const char *__dir, __const char *__pfx)
  4943. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
  4944.  
  4945.  
  4946.  
  4947.  
  4948. /* Close STREAM.
  4949.  
  4950. This function is a possible cancellation point and therefore not
  4951. marked with __THROW. */
  4952. extern int fclose (FILE *__stream);
  4953. /* Flush STREAM, or all streams if STREAM is NULL.
  4954.  
  4955. This function is a possible cancellation point and therefore not
  4956. marked with __THROW. */
  4957. extern int fflush (FILE *__stream);
  4958.  
  4959.  
  4960.  
  4961. /* Faster versions when locking is not required.
  4962.  
  4963. This function is not part of POSIX and therefore no official
  4964. cancellation point. But due to similarity with an POSIX interface
  4965. or due to the implementation it is a cancellation point and
  4966. therefore not marked with __THROW. */
  4967. extern int fflush_unlocked (FILE *__stream);
  4968. # 267 "/usr/include/stdio.h" 3 4
  4969.  
  4970.  
  4971. /* Open a file and create a new stream for it.
  4972.  
  4973. This function is a possible cancellation point and therefore not
  4974. marked with __THROW. */
  4975. extern FILE *fopen (__const char *__restrict __filename,
  4976. __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
  4977. /* Open a file, replacing an existing stream with it.
  4978.  
  4979. This function is a possible cancellation point and therefore not
  4980. marked with __THROW. */
  4981. extern FILE *freopen (__const char *__restrict __filename,
  4982. __const char *__restrict __modes,
  4983. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  4984. # 296 "/usr/include/stdio.h" 3 4
  4985.  
  4986. # 306 "/usr/include/stdio.h" 3 4
  4987. /* Create a new stream that refers to an existing system file descriptor. */
  4988. extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4989. # 319 "/usr/include/stdio.h" 3 4
  4990. /* Create a new stream that refers to a memory buffer. */
  4991. extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
  4992. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4993.  
  4994. /* Open a stream that writes into a malloc'd buffer that is expanded as
  4995. necessary. *BUFLOC and *SIZELOC are updated with the buffer's location
  4996. and the number of characters written on fflush or fclose. */
  4997. extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  4998.  
  4999.  
  5000.  
  5001.  
  5002. /* If BUF is NULL, make STREAM unbuffered.
  5003. Else make it use buffer BUF, of size BUFSIZ. */
  5004. extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
  5005. /* Make STREAM use buffering mode MODE.
  5006. If BUF is not NULL, use N bytes of it for buffering;
  5007. else allocate an internal buffer N bytes long. */
  5008. extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
  5009. int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
  5010.  
  5011.  
  5012.  
  5013. /* If BUF is NULL, make STREAM unbuffered.
  5014. Else make it use SIZE bytes of BUF for buffering. */
  5015. extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
  5016. size_t __size) __attribute__ ((__nothrow__ , __leaf__));
  5017.  
  5018. /* Make STREAM line-buffered. */
  5019. extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
  5020.  
  5021.  
  5022.  
  5023.  
  5024. /* Write formatted output to STREAM.
  5025.  
  5026. This function is a possible cancellation point and therefore not
  5027. marked with __THROW. */
  5028. extern int fprintf (FILE *__restrict __stream,
  5029. __const char *__restrict __format, ...);
  5030. /* Write formatted output to stdout.
  5031.  
  5032. This function is a possible cancellation point and therefore not
  5033. marked with __THROW. */
  5034. extern int printf (__const char *__restrict __format, ...);
  5035. /* Write formatted output to S. */
  5036. extern int sprintf (char *__restrict __s,
  5037. __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
  5038.  
  5039. /* Write formatted output to S from argument list ARG.
  5040.  
  5041. This function is a possible cancellation point and therefore not
  5042. marked with __THROW. */
  5043. extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
  5044. __gnuc_va_list __arg);
  5045. /* Write formatted output to stdout from argument list ARG.
  5046.  
  5047. This function is a possible cancellation point and therefore not
  5048. marked with __THROW. */
  5049. extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
  5050. /* Write formatted output to S from argument list ARG. */
  5051. extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
  5052. __gnuc_va_list __arg) __attribute__ ((__nothrow__));
  5053.  
  5054.  
  5055.  
  5056.  
  5057. /* Maximum chars of output to write in MAXLEN. */
  5058. extern int snprintf (char *__restrict __s, size_t __maxlen,
  5059. __const char *__restrict __format, ...)
  5060. __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
  5061.  
  5062. extern int vsnprintf (char *__restrict __s, size_t __maxlen,
  5063. __const char *__restrict __format, __gnuc_va_list __arg)
  5064. __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
  5065.  
  5066. # 412 "/usr/include/stdio.h" 3 4
  5067. /* Write formatted output to a file descriptor.
  5068.  
  5069. These functions are not part of POSIX and therefore no official
  5070. cancellation point. But due to similarity with an POSIX interface
  5071. or due to the implementation they are cancellation points and
  5072. therefore not marked with __THROW. */
  5073. extern int vdprintf (int __fd, __const char *__restrict __fmt,
  5074. __gnuc_va_list __arg)
  5075. __attribute__ ((__format__ (__printf__, 2, 0)));
  5076. extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
  5077. __attribute__ ((__format__ (__printf__, 2, 3)));
  5078.  
  5079.  
  5080.  
  5081.  
  5082. /* Read formatted input from STREAM.
  5083.  
  5084. This function is a possible cancellation point and therefore not
  5085. marked with __THROW. */
  5086. extern int fscanf (FILE *__restrict __stream,
  5087. __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
  5088. /* Read formatted input from stdin.
  5089.  
  5090. This function is a possible cancellation point and therefore not
  5091. marked with __THROW. */
  5092. extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
  5093. /* Read formatted input from S. */
  5094. extern int sscanf (__const char *__restrict __s,
  5095. __const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101. /* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
  5102. GNU extension which conflicts with valid %a followed by letter
  5103. s, S or [. */
  5104. extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
  5105.  
  5106. __attribute__ ((__warn_unused_result__));
  5107. extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
  5108. __attribute__ ((__warn_unused_result__));
  5109. extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
  5110.  
  5111. ;
  5112. # 469 "/usr/include/stdio.h" 3 4
  5113.  
  5114.  
  5115.  
  5116.  
  5117. /* Read formatted input from S into argument list ARG.
  5118.  
  5119. This function is a possible cancellation point and therefore not
  5120. marked with __THROW. */
  5121. extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
  5122. __gnuc_va_list __arg)
  5123. __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
  5124.  
  5125. /* Read formatted input from stdin into argument list ARG.
  5126.  
  5127. This function is a possible cancellation point and therefore not
  5128. marked with __THROW. */
  5129. extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
  5130. __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
  5131.  
  5132. /* Read formatted input from S into argument list ARG. */
  5133. extern int vsscanf (__const char *__restrict __s,
  5134. __const char *__restrict __format, __gnuc_va_list __arg)
  5135. __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141. /* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
  5142. GNU extension which conflicts with valid %a followed by letter
  5143. s, S or [. */
  5144. extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
  5145.  
  5146.  
  5147.  
  5148. __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
  5149. extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
  5150.  
  5151. __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
  5152. extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
  5153.  
  5154.  
  5155.  
  5156. __attribute__ ((__format__ (__scanf__, 2, 0)));
  5157. # 528 "/usr/include/stdio.h" 3 4
  5158.  
  5159.  
  5160.  
  5161.  
  5162.  
  5163. /* Read a character from STREAM.
  5164.  
  5165. These functions are possible cancellation points and therefore not
  5166. marked with __THROW. */
  5167. extern int fgetc (FILE *__stream);
  5168. extern int getc (FILE *__stream);
  5169.  
  5170. /* Read a character from stdin.
  5171.  
  5172. This function is a possible cancellation point and therefore not
  5173. marked with __THROW. */
  5174. extern int getchar (void);
  5175.  
  5176.  
  5177. /* The C standard explicitly says this is a macro, so we always do the
  5178. optimization for it. */
  5179.  
  5180.  
  5181.  
  5182. /* These are defined in POSIX.1:1996.
  5183.  
  5184. These functions are possible cancellation points and therefore not
  5185. marked with __THROW. */
  5186. extern int getc_unlocked (FILE *__stream);
  5187. extern int getchar_unlocked (void);
  5188.  
  5189.  
  5190.  
  5191. /* Faster version when locking is not necessary.
  5192.  
  5193. This function is not part of POSIX and therefore no official
  5194. cancellation point. But due to similarity with an POSIX interface
  5195. or due to the implementation it is a cancellation point and
  5196. therefore not marked with __THROW. */
  5197. extern int fgetc_unlocked (FILE *__stream);
  5198.  
  5199.  
  5200.  
  5201.  
  5202. /* Write a character to STREAM.
  5203.  
  5204. These functions are possible cancellation points and therefore not
  5205. marked with __THROW.
  5206.  
  5207. These functions is a possible cancellation point and therefore not
  5208. marked with __THROW. */
  5209. extern int fputc (int __c, FILE *__stream);
  5210. extern int putc (int __c, FILE *__stream);
  5211.  
  5212. /* Write a character to stdout.
  5213.  
  5214. This function is a possible cancellation point and therefore not
  5215. marked with __THROW. */
  5216. extern int putchar (int __c);
  5217.  
  5218.  
  5219. /* The C standard explicitly says this can be a macro,
  5220. so we always do the optimization for it. */
  5221.  
  5222.  
  5223.  
  5224. /* Faster version when locking is not necessary.
  5225.  
  5226. This function is not part of POSIX and therefore no official
  5227. cancellation point. But due to similarity with an POSIX interface
  5228. or due to the implementation it is a cancellation point and
  5229. therefore not marked with __THROW. */
  5230. extern int fputc_unlocked (int __c, FILE *__stream);
  5231.  
  5232.  
  5233.  
  5234. /* These are defined in POSIX.1:1996.
  5235.  
  5236. These functions are possible cancellation points and therefore not
  5237. marked with __THROW. */
  5238. extern int putc_unlocked (int __c, FILE *__stream);
  5239. extern int putchar_unlocked (int __c);
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245. /* Get a word (int) from STREAM. */
  5246. extern int getw (FILE *__stream);
  5247.  
  5248. /* Write a word (int) to STREAM. */
  5249. extern int putw (int __w, FILE *__stream);
  5250.  
  5251.  
  5252.  
  5253.  
  5254. /* Get a newline-terminated string of finite length from STREAM.
  5255.  
  5256. This function is a possible cancellation point and therefore not
  5257. marked with __THROW. */
  5258. extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
  5259. __attribute__ ((__warn_unused_result__));
  5260.  
  5261. /* Get a newline-terminated string from stdin, removing the newline.
  5262. DO NOT USE THIS FUNCTION!! There is no limit on how much it will read.
  5263.  
  5264. This function is a possible cancellation point and therefore not
  5265. marked with __THROW. */
  5266. extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
  5267.  
  5268. # 652 "/usr/include/stdio.h" 3 4
  5269. /* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
  5270. (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
  5271. NULL), pointing to *N characters of space. It is realloc'd as
  5272. necessary. Returns the number of characters read (not including the
  5273. null terminator), or -1 on error or EOF.
  5274.  
  5275. These functions are not part of POSIX and therefore no official
  5276. cancellation point. But due to similarity with an POSIX interface
  5277. or due to the implementation they are cancellation points and
  5278. therefore not marked with __THROW. */
  5279. extern __ssize_t __getdelim (char **__restrict __lineptr,
  5280. size_t *__restrict __n, int __delimiter,
  5281. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5282. extern __ssize_t getdelim (char **__restrict __lineptr,
  5283. size_t *__restrict __n, int __delimiter,
  5284. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5285.  
  5286. /* Like `getdelim', but reads up to a newline.
  5287.  
  5288. This function is not part of POSIX and therefore no official
  5289. cancellation point. But due to similarity with an POSIX interface
  5290. or due to the implementation it is a cancellation point and
  5291. therefore not marked with __THROW. */
  5292. extern __ssize_t getline (char **__restrict __lineptr,
  5293. size_t *__restrict __n,
  5294. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5295.  
  5296.  
  5297.  
  5298.  
  5299. /* Write a string to STREAM.
  5300.  
  5301. This function is a possible cancellation point and therefore not
  5302. marked with __THROW. */
  5303. extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
  5304.  
  5305. /* Write a string, followed by a newline, to stdout.
  5306.  
  5307. This function is a possible cancellation point and therefore not
  5308. marked with __THROW. */
  5309. extern int puts (__const char *__s);
  5310.  
  5311.  
  5312. /* Push a character back onto the input buffer of STREAM.
  5313.  
  5314. This function is a possible cancellation point and therefore not
  5315. marked with __THROW. */
  5316. extern int ungetc (int __c, FILE *__stream);
  5317.  
  5318.  
  5319. /* Read chunks of generic data from STREAM.
  5320.  
  5321. This function is a possible cancellation point and therefore not
  5322. marked with __THROW. */
  5323. extern size_t fread (void *__restrict __ptr, size_t __size,
  5324. size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5325. /* Write chunks of generic data to STREAM.
  5326.  
  5327. This function is a possible cancellation point and therefore not
  5328. marked with __THROW. */
  5329. extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
  5330. size_t __n, FILE *__restrict __s);
  5331.  
  5332. # 728 "/usr/include/stdio.h" 3 4
  5333. /* Faster versions when locking is not necessary.
  5334.  
  5335. These functions are not part of POSIX and therefore no official
  5336. cancellation point. But due to similarity with an POSIX interface
  5337. or due to the implementation they are cancellation points and
  5338. therefore not marked with __THROW. */
  5339. extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
  5340. size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5341. extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
  5342. size_t __n, FILE *__restrict __stream);
  5343.  
  5344.  
  5345.  
  5346.  
  5347. /* Seek to a certain position on STREAM.
  5348.  
  5349. This function is a possible cancellation point and therefore not
  5350. marked with __THROW. */
  5351. extern int fseek (FILE *__stream, long int __off, int __whence);
  5352. /* Return the current position of STREAM.
  5353.  
  5354. This function is a possible cancellation point and therefore not
  5355. marked with __THROW. */
  5356. extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
  5357. /* Rewind to the beginning of STREAM.
  5358.  
  5359. This function is a possible cancellation point and therefore not
  5360. marked with __THROW. */
  5361. extern void rewind (FILE *__stream);
  5362.  
  5363.  
  5364. /* The Single Unix Specification, Version 2, specifies an alternative,
  5365. more adequate interface for the two functions above which deal with
  5366. file offset. `long int' is not the right type. These definitions
  5367. are originally defined in the Large File Support API. */
  5368.  
  5369.  
  5370.  
  5371. /* Seek to a certain position on STREAM.
  5372.  
  5373. This function is a possible cancellation point and therefore not
  5374. marked with __THROW. */
  5375. extern int fseeko (FILE *__stream, __off_t __off, int __whence);
  5376. /* Return the current position of STREAM.
  5377.  
  5378. This function is a possible cancellation point and therefore not
  5379. marked with __THROW. */
  5380. extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
  5381. # 789 "/usr/include/stdio.h" 3 4
  5382.  
  5383.  
  5384. /* Get STREAM's position.
  5385.  
  5386. This function is a possible cancellation point and therefore not
  5387. marked with __THROW. */
  5388. extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
  5389. /* Set STREAM's position.
  5390.  
  5391. This function is a possible cancellation point and therefore not
  5392. marked with __THROW. */
  5393. extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
  5394. # 812 "/usr/include/stdio.h" 3 4
  5395.  
  5396. # 821 "/usr/include/stdio.h" 3 4
  5397.  
  5398. /* Clear the error and EOF indicators for STREAM. */
  5399. extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
  5400. /* Return the EOF indicator for STREAM. */
  5401. extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5402. /* Return the error indicator for STREAM. */
  5403. extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5404.  
  5405.  
  5406.  
  5407. /* Faster versions when locking is not required. */
  5408. extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
  5409. extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5410. extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5411.  
  5412.  
  5413.  
  5414.  
  5415. /* Print a message describing the meaning of the value of errno.
  5416.  
  5417. This function is a possible cancellation point and therefore not
  5418. marked with __THROW. */
  5419. extern void perror (__const char *__s);
  5420.  
  5421.  
  5422. /* Provide the declarations for `sys_errlist' and `sys_nerr' if they
  5423. are available on this system. Even if available, these variables
  5424. should not be used directly. The `strerror' function provides
  5425. all the necessary functionality. */
  5426. # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4
  5427. /* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version.
  5428. Copyright (C) 2002 Free Software Foundation, Inc.
  5429. This file is part of the GNU C Library.
  5430.  
  5431. The GNU C Library is free software; you can redistribute it and/or
  5432. modify it under the terms of the GNU Lesser General Public
  5433. License as published by the Free Software Foundation; either
  5434. version 2.1 of the License, or (at your option) any later version.
  5435.  
  5436. The GNU C Library is distributed in the hope that it will be useful,
  5437. but WITHOUT ANY WARRANTY; without even the implied warranty of
  5438. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  5439. Lesser General Public License for more details.
  5440.  
  5441. You should have received a copy of the GNU Lesser General Public
  5442. License along with the GNU C Library; if not, write to the Free
  5443. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  5444. 02111-1307 USA. */
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450. /* sys_errlist and sys_nerr are deprecated. Use strerror instead. */
  5451.  
  5452.  
  5453. extern int sys_nerr;
  5454. extern __const char *__const sys_errlist[];
  5455. # 851 "/usr/include/stdio.h" 2 3 4
  5456.  
  5457.  
  5458.  
  5459. /* Return the system file descriptor for STREAM. */
  5460. extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5461.  
  5462.  
  5463.  
  5464. /* Faster version when locking is not required. */
  5465. extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471. /* Create a new stream connected to a pipe running the given command.
  5472.  
  5473. This function is a possible cancellation point and therefore not
  5474. marked with __THROW. */
  5475. extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
  5476.  
  5477. /* Close a stream opened by popen and return the status of its child.
  5478.  
  5479. This function is a possible cancellation point and therefore not
  5480. marked with __THROW. */
  5481. extern int pclose (FILE *__stream);
  5482.  
  5483.  
  5484.  
  5485.  
  5486. /* Return the name of the controlling terminal. */
  5487. extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
  5488. # 907 "/usr/include/stdio.h" 3 4
  5489. /* These are defined in POSIX.1:1996. */
  5490.  
  5491. /* Acquire ownership of STREAM. */
  5492. extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
  5493.  
  5494. /* Try to acquire ownership of STREAM but do not block if it is not
  5495. possible. */
  5496. extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));
  5497.  
  5498. /* Relinquish the ownership granted for STREAM. */
  5499. extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
  5500. # 928 "/usr/include/stdio.h" 3 4
  5501. /* If we are compiling with optimizing read this file. It contains
  5502. several optimizing inline functions and macros. */
  5503.  
  5504.  
  5505.  
  5506.  
  5507. # 1 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 1 3 4
  5508. /* Checking macros for stdio functions.
  5509. Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
  5510. This file is part of the GNU C Library.
  5511.  
  5512. The GNU C Library is free software; you can redistribute it and/or
  5513. modify it under the terms of the GNU Lesser General Public
  5514. License as published by the Free Software Foundation; either
  5515. version 2.1 of the License, or (at your option) any later version.
  5516.  
  5517. The GNU C Library is distributed in the hope that it will be useful,
  5518. but WITHOUT ANY WARRANTY; without even the implied warranty of
  5519. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  5520. Lesser General Public License for more details.
  5521.  
  5522. You should have received a copy of the GNU Lesser General Public
  5523. License along with the GNU C Library; if not, write to the Free
  5524. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  5525. 02111-1307 USA. */
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531. extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
  5532. __const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
  5533. extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
  5534. __const char *__restrict __format,
  5535. __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__));
  5536.  
  5537.  
  5538. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5539. __attribute__ ((__nothrow__ , __leaf__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
  5540. {
  5541. return __builtin___sprintf_chk (__s, 2 - 1,
  5542. __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
  5543. }
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5551. __attribute__ ((__nothrow__ , __leaf__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
  5552.  
  5553. {
  5554. return __builtin___vsprintf_chk (__s, 2 - 1,
  5555. __builtin_object_size (__s, 2 > 1), __fmt, __ap);
  5556. }
  5557.  
  5558.  
  5559.  
  5560. extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
  5561. size_t __slen, __const char *__restrict __format,
  5562. ...) __attribute__ ((__nothrow__ , __leaf__));
  5563. extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
  5564. size_t __slen, __const char *__restrict __format,
  5565. __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__));
  5566.  
  5567.  
  5568. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5569. __attribute__ ((__nothrow__ , __leaf__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
  5570.  
  5571. {
  5572. return __builtin___snprintf_chk (__s, __n, 2 - 1,
  5573. __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
  5574. }
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.  
  5581. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5582. __attribute__ ((__nothrow__ , __leaf__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
  5583.  
  5584. {
  5585. return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
  5586. __builtin_object_size (__s, 2 > 1), __fmt, __ap);
  5587. }
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593. extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
  5594. __const char *__restrict __format, ...);
  5595. extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
  5596. extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
  5597. __const char *__restrict __format, __gnuc_va_list __ap);
  5598. extern int __vprintf_chk (int __flag, __const char *__restrict __format,
  5599. __gnuc_va_list __ap);
  5600.  
  5601.  
  5602. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5603. fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
  5604. {
  5605. return __fprintf_chk (__stream, 2 - 1, __fmt,
  5606. __builtin_va_arg_pack ());
  5607. }
  5608.  
  5609. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5610. printf (__const char *__restrict __fmt, ...)
  5611. {
  5612. return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
  5613. }
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5622. vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
  5623. {
  5624.  
  5625.  
  5626.  
  5627. return __vprintf_chk (2 - 1, __fmt, __ap);
  5628.  
  5629. }
  5630.  
  5631. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
  5632. vfprintf (FILE *__restrict __stream,
  5633. __const char *__restrict __fmt, __gnuc_va_list __ap)
  5634. {
  5635. return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
  5636. }
  5637. # 220 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4
  5638. extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
  5639. extern char *__gets_warn (char *__str) __asm__ ("" "gets")
  5640. __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")))
  5641. ;
  5642.  
  5643. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
  5644. gets (char *__str)
  5645. {
  5646. if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
  5647. return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
  5648. return __gets_warn (__str);
  5649. }
  5650.  
  5651. extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
  5652. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5653. extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
  5654.  
  5655. __attribute__ ((__warn_unused_result__));
  5656. extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
  5657.  
  5658.  
  5659. __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")))
  5660. ;
  5661.  
  5662. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
  5663. fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
  5664. {
  5665. if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
  5666. {
  5667. if (!__builtin_constant_p (__n) || __n <= 0)
  5668. return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
  5669.  
  5670. if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
  5671. return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
  5672. }
  5673. return __fgets_alias (__s, __n, __stream);
  5674. }
  5675.  
  5676. extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
  5677. size_t __size, size_t __n,
  5678. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5679. extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
  5680.  
  5681.  
  5682. __attribute__ ((__warn_unused_result__));
  5683. extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
  5684.  
  5685.  
  5686.  
  5687.  
  5688. __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")))
  5689. ;
  5690.  
  5691. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
  5692. fread (void *__restrict __ptr, size_t __size, size_t __n,
  5693. FILE *__restrict __stream)
  5694. {
  5695. if (__builtin_object_size (__ptr, 0) != (size_t) -1)
  5696. {
  5697. if (!__builtin_constant_p (__size)
  5698. || !__builtin_constant_p (__n)
  5699. || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
  5700. return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
  5701.  
  5702. if (__size * __n > __builtin_object_size (__ptr, 0))
  5703. return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
  5704. }
  5705. return __fread_alias (__ptr, __size, __n, __stream);
  5706. }
  5707. # 319 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4
  5708. extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
  5709. size_t __size, size_t __n,
  5710. FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
  5711. extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked")
  5712.  
  5713.  
  5714. __attribute__ ((__warn_unused_result__));
  5715. extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk")
  5716.  
  5717.  
  5718.  
  5719.  
  5720. __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")))
  5721. ;
  5722.  
  5723. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
  5724. fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
  5725. FILE *__restrict __stream)
  5726. {
  5727. if (__builtin_object_size (__ptr, 0) != (size_t) -1)
  5728. {
  5729. if (!__builtin_constant_p (__size)
  5730. || !__builtin_constant_p (__n)
  5731. || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
  5732. return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
  5733. __stream);
  5734.  
  5735. if (__size * __n > __builtin_object_size (__ptr, 0))
  5736. return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
  5737. __stream);
  5738. }
  5739. # 372 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4
  5740. return __fread_unlocked_alias (__ptr, __size, __n, __stream);
  5741. }
  5742. # 935 "/usr/include/stdio.h" 2 3 4
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749. # 4 "../../../dist/system_wrappers/stdio.h" 2 3
  5750. #pragma GCC visibility pop
  5751. # 6 "/home/ubuntu/tor-browser-build/gitian-builder/inputs/tor-browser/memory/replace/realloc/realloc.c" 2
  5752.  
  5753. static const malloc_table_t *funcs = ((void *)0);
  5754. static unsigned int total = 0, copies = 0;
  5755.  
  5756. void replace_jemalloc_stats(jemalloc_stats_t *stats)
  5757. {
  5758. printf("%d reallocs, %d copies\n", total, copies);
  5759. funcs->jemalloc_stats(stats);
  5760. }
  5761.  
  5762. void
  5763. replace_init(const malloc_table_t *table)
  5764. {
  5765. funcs = table;
  5766. printf("In init!\n");
  5767. }
  5768.  
  5769. void *replace_realloc(void *ptr, size_t size)
  5770. {
  5771. void *newptr = funcs->realloc(ptr, size);
  5772. // Not thread-safe, but it's only an example.
  5773. total++;
  5774. // We don't want to count deallocations as copies.
  5775. if (newptr && newptr != ptr)
  5776. copies++;
  5777. return newptr;
  5778. }
Add Comment
Please, Sign In to add comment