more ices
[ICEs.git] / 287391 / svolume_mmx.i.1
1 typedef signed char int8_t;
2 typedef short int int16_t;
3 typedef int int32_t;
4 typedef long int int64_t;
5 typedef unsigned char uint8_t;
6 typedef unsigned short int uint16_t;
7 typedef unsigned int uint32_t;
8 typedef unsigned long int uint64_t;
9 typedef signed char int_least8_t;
10 typedef short int int_least16_t;
11 typedef int int_least32_t;
12 typedef long int int_least64_t;
13 typedef unsigned char uint_least8_t;
14 typedef unsigned short int uint_least16_t;
15 typedef unsigned int uint_least32_t;
16 typedef unsigned long int uint_least64_t;
17 typedef signed char int_fast8_t;
18 typedef long int int_fast16_t;
19 typedef long int int_fast32_t;
20 typedef long int int_fast64_t;
21 typedef unsigned char uint_fast8_t;
22 typedef unsigned long int uint_fast16_t;
23 typedef unsigned long int uint_fast32_t;
24 typedef unsigned long int uint_fast64_t;
25 typedef long int intptr_t;
26 typedef unsigned long int uintptr_t;
27 typedef long int intmax_t;
28 typedef unsigned long int uintmax_t;
29 typedef int __gwchar_t;
30 typedef struct
31 {
32 long int quot;
33 long int rem;
34 } imaxdiv_t;
35 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
36 extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
37 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
38 extern intmax_t strtoimax (__const char *__restrict __nptr,
39 char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
40 extern uintmax_t strtoumax (__const char *__restrict __nptr,
41 char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
42 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
43 __gwchar_t **__restrict __endptr, int __base)
44 __attribute__ ((__nothrow__));
45 extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
46 __gwchar_t ** __restrict __endptr, int __base)
47 __attribute__ ((__nothrow__));
48 extern long int __strtol_internal (__const char *__restrict __nptr,
49 char **__restrict __endptr,
50 int __base, int __group)
51 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
52 extern __inline __attribute__ ((__gnu_inline__)) intmax_t
53 __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)
54 {
55 return __strtol_internal (nptr, endptr, base, 0);
56 }
57 extern unsigned long int __strtoul_internal (__const char *
58 __restrict __nptr,
59 char ** __restrict __endptr,
60 int __base, int __group)
61 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
62 extern __inline __attribute__ ((__gnu_inline__)) uintmax_t
63 __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)
64 {
65 return __strtoul_internal (nptr, endptr, base, 0);
66 }
67 extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
68 __gwchar_t **__restrict __endptr,
69 int __base, int __group)
70 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
71 extern __inline __attribute__ ((__gnu_inline__)) intmax_t
72 __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
73 {
74 return __wcstol_internal (nptr, endptr, base, 0);
75 }
76 extern unsigned long int __wcstoul_internal (__const __gwchar_t *
77 __restrict __nptr,
78 __gwchar_t **
79 __restrict __endptr,
80 int __base, int __group)
81 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
82 extern __inline __attribute__ ((__gnu_inline__)) uintmax_t
83 __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
84 {
85 return __wcstoul_internal (nptr, endptr, base, 0);
86 }
87 typedef unsigned char __u_char;
88 typedef unsigned short int __u_short;
89 typedef unsigned int __u_int;
90 typedef unsigned long int __u_long;
91 typedef signed char __int8_t;
92 typedef unsigned char __uint8_t;
93 typedef signed short int __int16_t;
94 typedef unsigned short int __uint16_t;
95 typedef signed int __int32_t;
96 typedef unsigned int __uint32_t;
97 typedef signed long int __int64_t;
98 typedef unsigned long int __uint64_t;
99 typedef long int __quad_t;
100 typedef unsigned long int __u_quad_t;
101 typedef unsigned long int __dev_t;
102 typedef unsigned int __uid_t;
103 typedef unsigned int __gid_t;
104 typedef unsigned long int __ino_t;
105 typedef unsigned long int __ino64_t;
106 typedef unsigned int __mode_t;
107 typedef unsigned long int __nlink_t;
108 typedef long int __off_t;
109 typedef long int __off64_t;
110 typedef int __pid_t;
111 typedef struct { int __val[2]; } __fsid_t;
112 typedef long int __clock_t;
113 typedef unsigned long int __rlim_t;
114 typedef unsigned long int __rlim64_t;
115 typedef unsigned int __id_t;
116 typedef long int __time_t;
117 typedef unsigned int __useconds_t;
118 typedef long int __suseconds_t;
119 typedef int __daddr_t;
120 typedef long int __swblk_t;
121 typedef int __key_t;
122 typedef int __clockid_t;
123 typedef void * __timer_t;
124 typedef long int __blksize_t;
125 typedef long int __blkcnt_t;
126 typedef long int __blkcnt64_t;
127 typedef unsigned long int __fsblkcnt_t;
128 typedef unsigned long int __fsblkcnt64_t;
129 typedef unsigned long int __fsfilcnt_t;
130 typedef unsigned long int __fsfilcnt64_t;
131 typedef long int __ssize_t;
132 typedef __off64_t __loff_t;
133 typedef __quad_t *__qaddr_t;
134 typedef char *__caddr_t;
135 typedef long int __intptr_t;
136 typedef unsigned int __socklen_t;
137 typedef __u_char u_char;
138 typedef __u_short u_short;
139 typedef __u_int u_int;
140 typedef __u_long u_long;
141 typedef __quad_t quad_t;
142 typedef __u_quad_t u_quad_t;
143 typedef __fsid_t fsid_t;
144 typedef __loff_t loff_t;
145 typedef __ino_t ino_t;
146 typedef __ino64_t ino64_t;
147 typedef __dev_t dev_t;
148 typedef __gid_t gid_t;
149 typedef __mode_t mode_t;
150 typedef __nlink_t nlink_t;
151 typedef __uid_t uid_t;
152 typedef __off_t off_t;
153 typedef __off64_t off64_t;
154 typedef __pid_t pid_t;
155 typedef __id_t id_t;
156 typedef __ssize_t ssize_t;
157 typedef __daddr_t daddr_t;
158 typedef __caddr_t caddr_t;
159 typedef __key_t key_t;
160 typedef __clock_t clock_t;
161 typedef __time_t time_t;
162 typedef __clockid_t clockid_t;
163 typedef __timer_t timer_t;
164 typedef __useconds_t useconds_t;
165 typedef __suseconds_t suseconds_t;
166 typedef long unsigned int size_t;
167 typedef unsigned long int ulong;
168 typedef unsigned short int ushort;
169 typedef unsigned int uint;
170 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
171 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
172 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
173 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
174 typedef int register_t __attribute__ ((__mode__ (__word__)));
175 typedef int __sig_atomic_t;
176 typedef struct
177 {
178 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
179 } __sigset_t;
180 typedef __sigset_t sigset_t;
181 struct timespec
182 {
183 __time_t tv_sec;
184 long int tv_nsec;
185 };
186 struct timeval
187 {
188 __time_t tv_sec;
189 __suseconds_t tv_usec;
190 };
191 typedef long int __fd_mask;
192 typedef struct
193 {
194 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
195 } fd_set;
196 typedef __fd_mask fd_mask;
197 extern int select (int __nfds, fd_set *__restrict __readfds,
198 fd_set *__restrict __writefds,
199 fd_set *__restrict __exceptfds,
200 struct timeval *__restrict __timeout);
201 extern int pselect (int __nfds, fd_set *__restrict __readfds,
202 fd_set *__restrict __writefds,
203 fd_set *__restrict __exceptfds,
204 const struct timespec *__restrict __timeout,
205 const __sigset_t *__restrict __sigmask);
206 __extension__
207 extern unsigned int gnu_dev_major (unsigned long long int __dev)
208 __attribute__ ((__nothrow__));
209 __extension__
210 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
211 __attribute__ ((__nothrow__));
212 __extension__
213 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
214 unsigned int __minor)
215 __attribute__ ((__nothrow__));
216 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
217 __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
218 {
219 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
220 }
221 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
222 __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
223 {
224 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
225 }
226 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned long long int
227 __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
228 {
229 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
230 | (((unsigned long long int) (__minor & ~0xff)) << 12)
231 | (((unsigned long long int) (__major & ~0xfff)) << 32));
232 }
233 typedef __blksize_t blksize_t;
234 typedef __blkcnt_t blkcnt_t;
235 typedef __fsblkcnt_t fsblkcnt_t;
236 typedef __fsfilcnt_t fsfilcnt_t;
237 typedef __blkcnt64_t blkcnt64_t;
238 typedef __fsblkcnt64_t fsblkcnt64_t;
239 typedef __fsfilcnt64_t fsfilcnt64_t;
240 typedef unsigned long int pthread_t;
241 typedef union
242 {
243 char __size[56];
244 long int __align;
245 } pthread_attr_t;
246 typedef struct __pthread_internal_list
247 {
248 struct __pthread_internal_list *__prev;
249 struct __pthread_internal_list *__next;
250 } __pthread_list_t;
251 typedef union
252 {
253 struct __pthread_mutex_s
254 {
255 int __lock;
256 unsigned int __count;
257 int __owner;
258 unsigned int __nusers;
259 int __kind;
260 int __spins;
261 __pthread_list_t __list;
262 } __data;
263 char __size[40];
264 long int __align;
265 } pthread_mutex_t;
266 typedef union
267 {
268 char __size[4];
269 int __align;
270 } pthread_mutexattr_t;
271 typedef union
272 {
273 struct
274 {
275 int __lock;
276 unsigned int __futex;
277 __extension__ unsigned long long int __total_seq;
278 __extension__ unsigned long long int __wakeup_seq;
279 __extension__ unsigned long long int __woken_seq;
280 void *__mutex;
281 unsigned int __nwaiters;
282 unsigned int __broadcast_seq;
283 } __data;
284 char __size[48];
285 __extension__ long long int __align;
286 } pthread_cond_t;
287 typedef union
288 {
289 char __size[4];
290 int __align;
291 } pthread_condattr_t;
292 typedef unsigned int pthread_key_t;
293 typedef int pthread_once_t;
294 typedef union
295 {
296 struct
297 {
298 int __lock;
299 unsigned int __nr_readers;
300 unsigned int __readers_wakeup;
301 unsigned int __writer_wakeup;
302 unsigned int __nr_readers_queued;
303 unsigned int __nr_writers_queued;
304 int __writer;
305 int __shared;
306 unsigned long int __pad1;
307 unsigned long int __pad2;
308 unsigned int __flags;
309 } __data;
310 char __size[56];
311 long int __align;
312 } pthread_rwlock_t;
313 typedef union
314 {
315 char __size[8];
316 long int __align;
317 } pthread_rwlockattr_t;
318 typedef volatile int pthread_spinlock_t;
319 typedef union
320 {
321 char __size[32];
322 long int __align;
323 } pthread_barrier_t;
324 typedef union
325 {
326 char __size[4];
327 int __align;
328 } pthread_barrierattr_t;
329 typedef float float_t;
330 typedef double double_t;
331 extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
332 extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
333 extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
334 extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
335 extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
336 extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
337 extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
338 extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
339 extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
340 extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
341 extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__));
342 extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
343 extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
344 extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
345 extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
346 extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
347 extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
348 extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
349 extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
350 extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
351 extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__));
352 extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__));
353 extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
354 extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
355 extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
356 extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
357 extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
358 extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
359 extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
360 extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
361 extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
362 extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
363 extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
364 extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
365 extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
366 extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
367 extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
368 extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
369 extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
370 extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
371 extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
372 extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
373 extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
374 extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
375 extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
376 extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
377 extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
378 extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
379 extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
380 extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
381 extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
382 extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
383 extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
384 extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
385 extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
386 extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
387 extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
388 extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
389 extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
390 extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
391 extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
392 extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
393 extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
394 extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
395 extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
396 extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
397 extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
398 extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
399 extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
400 extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
401 extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
402 extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
403 extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
404 extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
405 extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
406 extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
407 __attribute__ ((__const__));
408 extern int __signbit (double __value) __attribute__ ((__nothrow__))
409 __attribute__ ((__const__));
410 extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
411 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
412 extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
413 extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
414 extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
415 extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
416 extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
417 extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
418 extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
419 extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
420 extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
421 extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
422 extern void sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); extern void __sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__));
423 extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
424 extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
425 extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
426 extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
427 extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
428 extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
429 extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
430 extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
431 extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
432 extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__));
433 extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__));
434 extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
435 extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
436 extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
437 extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
438 extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
439 extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
440 extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
441 extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
442 extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
443 extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
444 extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
445 extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
446 extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
447 extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
448 extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
449 extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
450 extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
451 extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
452 extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
453 extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
454 extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
455 extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
456 extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
457 extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
458 extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
459 extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
460 extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
461 extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
462 extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
463 extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
464 extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
465 extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
466 extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
467 extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
468 extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
469 extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
470 extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
471 extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
472 extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
473 extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
474 extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
475 extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
476 extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
477 extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
478 extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
479 extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
480 extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
481 extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
482 extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
483 extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
484 extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
485 extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
486 extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
487 extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
488 __attribute__ ((__const__));
489 extern int __signbitf (float __value) __attribute__ ((__nothrow__))
490 __attribute__ ((__const__));
491 extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
492 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
493 extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
494 extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
495 extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
496 extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
497 extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
498 extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
499 extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
500 extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
501 extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
502 extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
503 extern void sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__)); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__));
504 extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
505 extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
506 extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
507 extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
508 extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
509 extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
510 extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
511 extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
512 extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
513 extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__));
514 extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__));
515 extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
516 extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
517 extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
518 extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
519 extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
520 extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
521 extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
522 extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
523 extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
524 extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
525 extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
526 extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
527 extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
528 extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
529 extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
530 extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
531 extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
532 extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
533 extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
534 extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
535 extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
536 extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
537 extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
538 extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
539 extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
540 extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
541 extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
542 extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
543 extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
544 extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
545 extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
546 extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
547 extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
548 extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
549 extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
550 extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
551 extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
552 extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
553 extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
554 extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
555 extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
556 extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
557 extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
558 extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
559 extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
560 extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__));
561 extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
562 extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
563 extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
564 extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
565 extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
566 extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
567 extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
568 extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
569 __attribute__ ((__const__));
570 extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
571 __attribute__ ((__const__));
572 extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__));
573 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
574 extern int signgam;
575 enum
576 {
577 FP_NAN,
578 FP_INFINITE,
579 FP_ZERO,
580 FP_SUBNORMAL,
581 FP_NORMAL
582 };
583 typedef enum
584 {
585 _IEEE_ = -1,
586 _SVID_,
587 _XOPEN_,
588 _POSIX_,
589 _ISOC_
590 } _LIB_VERSION_TYPE;
591 extern _LIB_VERSION_TYPE _LIB_VERSION;
592 struct exception
593 {
594 int type;
595 char *name;
596 double arg1;
597 double arg2;
598 double retval;
599 };
600 extern int matherr (struct exception *__exc);
601 extern __inline __attribute__ ((__gnu_inline__)) int
602 __attribute__ ((__nothrow__)) __signbitf (float __x)
603 {
604 __extension__ union { float __f; int __i; } __u = { __f: __x };
605 return __u.__i < 0;
606 }
607 extern __inline __attribute__ ((__gnu_inline__)) int
608 __attribute__ ((__nothrow__)) __signbit (double __x)
609 {
610 __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
611 return __u.__i[1] < 0;
612 }
613 extern __inline __attribute__ ((__gnu_inline__)) int
614 __attribute__ ((__nothrow__)) __signbitl (long double __x)
615 {
616 __extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
617 return (__u.__i[2] & 0x8000) != 0;
618 }
619 const char* pa_get_library_version(void);
620 typedef enum pa_sample_format {
621 PA_SAMPLE_U8,
622 PA_SAMPLE_ALAW,
623 PA_SAMPLE_ULAW,
624 PA_SAMPLE_S16LE,
625 PA_SAMPLE_S16BE,
626 PA_SAMPLE_FLOAT32LE,
627 PA_SAMPLE_FLOAT32BE,
628 PA_SAMPLE_S32LE,
629 PA_SAMPLE_S32BE,
630 PA_SAMPLE_S24LE,
631 PA_SAMPLE_S24BE,
632 PA_SAMPLE_S24_32LE,
633 PA_SAMPLE_S24_32BE,
634 PA_SAMPLE_MAX,
635 PA_SAMPLE_INVALID = -1
636 } pa_sample_format_t;
637 typedef struct pa_sample_spec {
638 pa_sample_format_t format;
639 uint32_t rate;
640 uint8_t channels;
641 } pa_sample_spec;
642 typedef uint64_t pa_usec_t;
643 size_t pa_bytes_per_second(const pa_sample_spec *spec) __attribute__ ((pure));
644 size_t pa_frame_size(const pa_sample_spec *spec) __attribute__ ((pure));
645 size_t pa_sample_size(const pa_sample_spec *spec) __attribute__ ((pure));
646 size_t pa_sample_size_of_format(pa_sample_format_t f) __attribute__ ((pure));
647 pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec) __attribute__ ((pure));
648 size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec) __attribute__ ((pure));
649 pa_sample_spec* pa_sample_spec_init(pa_sample_spec *spec);
650 int pa_sample_spec_valid(const pa_sample_spec *spec) __attribute__ ((pure));
651 int pa_sample_spec_equal(const pa_sample_spec*a, const pa_sample_spec*b) __attribute__ ((pure));
652 const char *pa_sample_format_to_string(pa_sample_format_t f) __attribute__ ((pure));
653 pa_sample_format_t pa_parse_sample_format(const char *format) __attribute__ ((pure));
654 char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
655 char* pa_bytes_snprint(char *s, size_t l, unsigned v);
656 int pa_sample_format_is_le(pa_sample_format_t f) __attribute__ ((pure));
657 int pa_sample_format_is_be(pa_sample_format_t f) __attribute__ ((pure));
658 struct timeval;
659 struct timeval *pa_gettimeofday(struct timeval *tv);
660 pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b) __attribute__ ((pure));
661 int pa_timeval_cmp(const struct timeval *a, const struct timeval *b) __attribute__ ((pure));
662 pa_usec_t pa_timeval_age(const struct timeval *tv);
663 struct timeval* pa_timeval_add(struct timeval *tv, pa_usec_t v);
664 struct timeval* pa_timeval_sub(struct timeval *tv, pa_usec_t v);
665 struct timeval* pa_timeval_store(struct timeval *tv, pa_usec_t v);
666 pa_usec_t pa_timeval_load(const struct timeval *tv);
667 void pa_random_seed(void);
668 void pa_random(void *ret_data, size_t length);
669 typedef __socklen_t socklen_t;
670 extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
671 extern int euidaccess (__const char *__name, int __type)
672 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
673 extern int eaccess (__const char *__name, int __type)
674 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
675 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
676 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
677 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
678 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
679 __attribute__ ((__nothrow__));
680 extern int close (int __fd);
681 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
682 extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
683 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
684 __off_t __offset) __attribute__ ((__warn_unused_result__));
685 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
686 __off_t __offset) __attribute__ ((__warn_unused_result__));
687 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
688 __off64_t __offset) __attribute__ ((__warn_unused_result__));
689 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
690 __off64_t __offset) __attribute__ ((__warn_unused_result__));
691 extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
692 extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
693 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
694 extern unsigned int sleep (unsigned int __seconds);
695 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
696 __attribute__ ((__nothrow__));
697 extern int usleep (__useconds_t __useconds);
698 extern int pause (void);
699 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
700 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
701 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
702 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
703 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
704 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
705 __gid_t __group, int __flag)
706 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
707 extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
708 extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
709 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
710 extern char *get_current_dir_name (void) __attribute__ ((__nothrow__));
711 extern char *getwd (char *__buf)
712 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
713 extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
714 extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
715 extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__));
716 extern char **__environ;
717 extern char **environ;
718 extern int execve (__const char *__path, char *__const __argv[],
719 char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
720 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
721 __attribute__ ((__nothrow__));
722 extern int execv (__const char *__path, char *__const __argv[])
723 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
724 extern int execle (__const char *__path, __const char *__arg, ...)
725 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
726 extern int execl (__const char *__path, __const char *__arg, ...)
727 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
728 extern int execvp (__const char *__file, char *__const __argv[])
729 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
730 extern int execlp (__const char *__file, __const char *__arg, ...)
731 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
732 extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
733 extern void _exit (int __status) __attribute__ ((__noreturn__));
734 enum
735 {
736 _PC_LINK_MAX,
737 _PC_MAX_CANON,
738 _PC_MAX_INPUT,
739 _PC_NAME_MAX,
740 _PC_PATH_MAX,
741 _PC_PIPE_BUF,
742 _PC_CHOWN_RESTRICTED,
743 _PC_NO_TRUNC,
744 _PC_VDISABLE,
745 _PC_SYNC_IO,
746 _PC_ASYNC_IO,
747 _PC_PRIO_IO,
748 _PC_SOCK_MAXBUF,
749 _PC_FILESIZEBITS,
750 _PC_REC_INCR_XFER_SIZE,
751 _PC_REC_MAX_XFER_SIZE,
752 _PC_REC_MIN_XFER_SIZE,
753 _PC_REC_XFER_ALIGN,
754 _PC_ALLOC_SIZE_MIN,
755 _PC_SYMLINK_MAX,
756 _PC_2_SYMLINKS
757 };
758 enum
759 {
760 _SC_ARG_MAX,
761 _SC_CHILD_MAX,
762 _SC_CLK_TCK,
763 _SC_NGROUPS_MAX,
764 _SC_OPEN_MAX,
765 _SC_STREAM_MAX,
766 _SC_TZNAME_MAX,
767 _SC_JOB_CONTROL,
768 _SC_SAVED_IDS,
769 _SC_REALTIME_SIGNALS,
770 _SC_PRIORITY_SCHEDULING,
771 _SC_TIMERS,
772 _SC_ASYNCHRONOUS_IO,
773 _SC_PRIORITIZED_IO,
774 _SC_SYNCHRONIZED_IO,
775 _SC_FSYNC,
776 _SC_MAPPED_FILES,
777 _SC_MEMLOCK,
778 _SC_MEMLOCK_RANGE,
779 _SC_MEMORY_PROTECTION,
780 _SC_MESSAGE_PASSING,
781 _SC_SEMAPHORES,
782 _SC_SHARED_MEMORY_OBJECTS,
783 _SC_AIO_LISTIO_MAX,
784 _SC_AIO_MAX,
785 _SC_AIO_PRIO_DELTA_MAX,
786 _SC_DELAYTIMER_MAX,
787 _SC_MQ_OPEN_MAX,
788 _SC_MQ_PRIO_MAX,
789 _SC_VERSION,
790 _SC_PAGESIZE,
791 _SC_RTSIG_MAX,
792 _SC_SEM_NSEMS_MAX,
793 _SC_SEM_VALUE_MAX,
794 _SC_SIGQUEUE_MAX,
795 _SC_TIMER_MAX,
796 _SC_BC_BASE_MAX,
797 _SC_BC_DIM_MAX,
798 _SC_BC_SCALE_MAX,
799 _SC_BC_STRING_MAX,
800 _SC_COLL_WEIGHTS_MAX,
801 _SC_EQUIV_CLASS_MAX,
802 _SC_EXPR_NEST_MAX,
803 _SC_LINE_MAX,
804 _SC_RE_DUP_MAX,
805 _SC_CHARCLASS_NAME_MAX,
806 _SC_2_VERSION,
807 _SC_2_C_BIND,
808 _SC_2_C_DEV,
809 _SC_2_FORT_DEV,
810 _SC_2_FORT_RUN,
811 _SC_2_SW_DEV,
812 _SC_2_LOCALEDEF,
813 _SC_PII,
814 _SC_PII_XTI,
815 _SC_PII_SOCKET,
816 _SC_PII_INTERNET,
817 _SC_PII_OSI,
818 _SC_POLL,
819 _SC_SELECT,
820 _SC_UIO_MAXIOV,
821 _SC_IOV_MAX = _SC_UIO_MAXIOV,
822 _SC_PII_INTERNET_STREAM,
823 _SC_PII_INTERNET_DGRAM,
824 _SC_PII_OSI_COTS,
825 _SC_PII_OSI_CLTS,
826 _SC_PII_OSI_M,
827 _SC_T_IOV_MAX,
828 _SC_THREADS,
829 _SC_THREAD_SAFE_FUNCTIONS,
830 _SC_GETGR_R_SIZE_MAX,
831 _SC_GETPW_R_SIZE_MAX,
832 _SC_LOGIN_NAME_MAX,
833 _SC_TTY_NAME_MAX,
834 _SC_THREAD_DESTRUCTOR_ITERATIONS,
835 _SC_THREAD_KEYS_MAX,
836 _SC_THREAD_STACK_MIN,
837 _SC_THREAD_THREADS_MAX,
838 _SC_THREAD_ATTR_STACKADDR,
839 _SC_THREAD_ATTR_STACKSIZE,
840 _SC_THREAD_PRIORITY_SCHEDULING,
841 _SC_THREAD_PRIO_INHERIT,
842 _SC_THREAD_PRIO_PROTECT,
843 _SC_THREAD_PROCESS_SHARED,
844 _SC_NPROCESSORS_CONF,
845 _SC_NPROCESSORS_ONLN,
846 _SC_PHYS_PAGES,
847 _SC_AVPHYS_PAGES,
848 _SC_ATEXIT_MAX,
849 _SC_PASS_MAX,
850 _SC_XOPEN_VERSION,
851 _SC_XOPEN_XCU_VERSION,
852 _SC_XOPEN_UNIX,
853 _SC_XOPEN_CRYPT,
854 _SC_XOPEN_ENH_I18N,
855 _SC_XOPEN_SHM,
856 _SC_2_CHAR_TERM,
857 _SC_2_C_VERSION,
858 _SC_2_UPE,
859 _SC_XOPEN_XPG2,
860 _SC_XOPEN_XPG3,
861 _SC_XOPEN_XPG4,
862 _SC_CHAR_BIT,
863 _SC_CHAR_MAX,
864 _SC_CHAR_MIN,
865 _SC_INT_MAX,
866 _SC_INT_MIN,
867 _SC_LONG_BIT,
868 _SC_WORD_BIT,
869 _SC_MB_LEN_MAX,
870 _SC_NZERO,
871 _SC_SSIZE_MAX,
872 _SC_SCHAR_MAX,
873 _SC_SCHAR_MIN,
874 _SC_SHRT_MAX,
875 _SC_SHRT_MIN,
876 _SC_UCHAR_MAX,
877 _SC_UINT_MAX,
878 _SC_ULONG_MAX,
879 _SC_USHRT_MAX,
880 _SC_NL_ARGMAX,
881 _SC_NL_LANGMAX,
882 _SC_NL_MSGMAX,
883 _SC_NL_NMAX,
884 _SC_NL_SETMAX,
885 _SC_NL_TEXTMAX,
886 _SC_XBS5_ILP32_OFF32,
887 _SC_XBS5_ILP32_OFFBIG,
888 _SC_XBS5_LP64_OFF64,
889 _SC_XBS5_LPBIG_OFFBIG,
890 _SC_XOPEN_LEGACY,
891 _SC_XOPEN_REALTIME,
892 _SC_XOPEN_REALTIME_THREADS,
893 _SC_ADVISORY_INFO,
894 _SC_BARRIERS,
895 _SC_BASE,
896 _SC_C_LANG_SUPPORT,
897 _SC_C_LANG_SUPPORT_R,
898 _SC_CLOCK_SELECTION,
899 _SC_CPUTIME,
900 _SC_THREAD_CPUTIME,
901 _SC_DEVICE_IO,
902 _SC_DEVICE_SPECIFIC,
903 _SC_DEVICE_SPECIFIC_R,
904 _SC_FD_MGMT,
905 _SC_FIFO,
906 _SC_PIPE,
907 _SC_FILE_ATTRIBUTES,
908 _SC_FILE_LOCKING,
909 _SC_FILE_SYSTEM,
910 _SC_MONOTONIC_CLOCK,
911 _SC_MULTI_PROCESS,
912 _SC_SINGLE_PROCESS,
913 _SC_NETWORKING,
914 _SC_READER_WRITER_LOCKS,
915 _SC_SPIN_LOCKS,
916 _SC_REGEXP,
917 _SC_REGEX_VERSION,
918 _SC_SHELL,
919 _SC_SIGNALS,
920 _SC_SPAWN,
921 _SC_SPORADIC_SERVER,
922 _SC_THREAD_SPORADIC_SERVER,
923 _SC_SYSTEM_DATABASE,
924 _SC_SYSTEM_DATABASE_R,
925 _SC_TIMEOUTS,
926 _SC_TYPED_MEMORY_OBJECTS,
927 _SC_USER_GROUPS,
928 _SC_USER_GROUPS_R,
929 _SC_2_PBS,
930 _SC_2_PBS_ACCOUNTING,
931 _SC_2_PBS_LOCATE,
932 _SC_2_PBS_MESSAGE,
933 _SC_2_PBS_TRACK,
934 _SC_SYMLOOP_MAX,
935 _SC_STREAMS,
936 _SC_2_PBS_CHECKPOINT,
937 _SC_V6_ILP32_OFF32,
938 _SC_V6_ILP32_OFFBIG,
939 _SC_V6_LP64_OFF64,
940 _SC_V6_LPBIG_OFFBIG,
941 _SC_HOST_NAME_MAX,
942 _SC_TRACE,
943 _SC_TRACE_EVENT_FILTER,
944 _SC_TRACE_INHERIT,
945 _SC_TRACE_LOG,
946 _SC_LEVEL1_ICACHE_SIZE,
947 _SC_LEVEL1_ICACHE_ASSOC,
948 _SC_LEVEL1_ICACHE_LINESIZE,
949 _SC_LEVEL1_DCACHE_SIZE,
950 _SC_LEVEL1_DCACHE_ASSOC,
951 _SC_LEVEL1_DCACHE_LINESIZE,
952 _SC_LEVEL2_CACHE_SIZE,
953 _SC_LEVEL2_CACHE_ASSOC,
954 _SC_LEVEL2_CACHE_LINESIZE,
955 _SC_LEVEL3_CACHE_SIZE,
956 _SC_LEVEL3_CACHE_ASSOC,
957 _SC_LEVEL3_CACHE_LINESIZE,
958 _SC_LEVEL4_CACHE_SIZE,
959 _SC_LEVEL4_CACHE_ASSOC,
960 _SC_LEVEL4_CACHE_LINESIZE,
961 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
962 _SC_RAW_SOCKETS,
963 _SC_V7_ILP32_OFF32,
964 _SC_V7_ILP32_OFFBIG,
965 _SC_V7_LP64_OFF64,
966 _SC_V7_LPBIG_OFFBIG,
967 _SC_SS_REPL_MAX,
968 _SC_TRACE_EVENT_NAME_MAX,
969 _SC_TRACE_NAME_MAX,
970 _SC_TRACE_SYS_MAX,
971 _SC_TRACE_USER_EVENT_MAX,
972 _SC_XOPEN_STREAMS,
973 _SC_THREAD_ROBUST_PRIO_INHERIT,
974 _SC_THREAD_ROBUST_PRIO_PROTECT,
975 };
976 enum
977 {
978 _CS_PATH,
979 _CS_V6_WIDTH_RESTRICTED_ENVS,
980 _CS_GNU_LIBC_VERSION,
981 _CS_GNU_LIBPTHREAD_VERSION,
982 _CS_V5_WIDTH_RESTRICTED_ENVS,
983 _CS_V7_WIDTH_RESTRICTED_ENVS,
984 _CS_LFS_CFLAGS = 1000,
985 _CS_LFS_LDFLAGS,
986 _CS_LFS_LIBS,
987 _CS_LFS_LINTFLAGS,
988 _CS_LFS64_CFLAGS,
989 _CS_LFS64_LDFLAGS,
990 _CS_LFS64_LIBS,
991 _CS_LFS64_LINTFLAGS,
992 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
993 _CS_XBS5_ILP32_OFF32_LDFLAGS,
994 _CS_XBS5_ILP32_OFF32_LIBS,
995 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
996 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
997 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
998 _CS_XBS5_ILP32_OFFBIG_LIBS,
999 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
1000 _CS_XBS5_LP64_OFF64_CFLAGS,
1001 _CS_XBS5_LP64_OFF64_LDFLAGS,
1002 _CS_XBS5_LP64_OFF64_LIBS,
1003 _CS_XBS5_LP64_OFF64_LINTFLAGS,
1004 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
1005 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
1006 _CS_XBS5_LPBIG_OFFBIG_LIBS,
1007 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
1008 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
1009 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
1010 _CS_POSIX_V6_ILP32_OFF32_LIBS,
1011 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
1012 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
1013 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
1014 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
1015 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
1016 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
1017 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
1018 _CS_POSIX_V6_LP64_OFF64_LIBS,
1019 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
1020 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
1021 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
1022 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
1023 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
1024 _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
1025 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
1026 _CS_POSIX_V7_ILP32_OFF32_LIBS,
1027 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
1028 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
1029 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
1030 _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
1031 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
1032 _CS_POSIX_V7_LP64_OFF64_CFLAGS,
1033 _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
1034 _CS_POSIX_V7_LP64_OFF64_LIBS,
1035 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
1036 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
1037 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
1038 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
1039 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
1040 };
1041 extern long int pathconf (__const char *__path, int __name)
1042 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1043 extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
1044 extern long int sysconf (int __name) __attribute__ ((__nothrow__));
1045 extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
1046 extern __pid_t getpid (void) __attribute__ ((__nothrow__));
1047 extern __pid_t getppid (void) __attribute__ ((__nothrow__));
1048 extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
1049 extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
1050 extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
1051 extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
1052 extern int setpgrp (void) __attribute__ ((__nothrow__));
1053 extern __pid_t setsid (void) __attribute__ ((__nothrow__));
1054 extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
1055 extern __uid_t getuid (void) __attribute__ ((__nothrow__));
1056 extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
1057 extern __gid_t getgid (void) __attribute__ ((__nothrow__));
1058 extern __gid_t getegid (void) __attribute__ ((__nothrow__));
1059 extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1060 extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__));
1061 extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
1062 extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
1063 extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
1064 extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
1065 extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
1066 extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
1067 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
1068 __attribute__ ((__nothrow__));
1069 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
1070 __attribute__ ((__nothrow__));
1071 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
1072 __attribute__ ((__nothrow__));
1073 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
1074 __attribute__ ((__nothrow__));
1075 extern __pid_t fork (void) __attribute__ ((__nothrow__));
1076 extern __pid_t vfork (void) __attribute__ ((__nothrow__));
1077 extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
1078 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
1079 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
1080 extern int isatty (int __fd) __attribute__ ((__nothrow__));
1081 extern int ttyslot (void) __attribute__ ((__nothrow__));
1082 extern int link (__const char *__from, __const char *__to)
1083 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1084 extern int linkat (int __fromfd, __const char *__from, int __tofd,
1085 __const char *__to, int __flags)
1086 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__));
1087 extern int symlink (__const char *__from, __const char *__to)
1088 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1089 extern ssize_t readlink (__const char *__restrict __path,
1090 char *__restrict __buf, size_t __len)
1091 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1092 extern int symlinkat (__const char *__from, int __tofd,
1093 __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
1094 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
1095 char *__restrict __buf, size_t __len)
1096 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
1097 extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1098 extern int unlinkat (int __fd, __const char *__name, int __flag)
1099 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1100 extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1101 extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
1102 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
1103 extern char *getlogin (void);
1104 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
1105 extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1106 extern char *optarg;
1107 extern int optind;
1108 extern int opterr;
1109 extern int optopt;
1110 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
1111 __attribute__ ((__nothrow__));
1112 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1113 extern int sethostname (__const char *__name, size_t __len)
1114 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1115 extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1116 extern int getdomainname (char *__name, size_t __len)
1117 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1118 extern int setdomainname (__const char *__name, size_t __len)
1119 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1120 extern int vhangup (void) __attribute__ ((__nothrow__));
1121 extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1122 extern int profil (unsigned short int *__sample_buffer, size_t __size,
1123 size_t __offset, unsigned int __scale)
1124 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1125 extern int acct (__const char *__name) __attribute__ ((__nothrow__));
1126 extern char *getusershell (void) __attribute__ ((__nothrow__));
1127 extern void endusershell (void) __attribute__ ((__nothrow__));
1128 extern void setusershell (void) __attribute__ ((__nothrow__));
1129 extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1130 extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1131 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
1132 extern int fsync (int __fd);
1133 extern long int gethostid (void);
1134 extern void sync (void) __attribute__ ((__nothrow__));
1135 extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1136 extern int getdtablesize (void) __attribute__ ((__nothrow__));
1137 extern int truncate (__const char *__file, __off_t __length)
1138 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1139 extern int truncate64 (__const char *__file, __off64_t __length)
1140 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1141 extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1142 extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1143 extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1144 extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
1145 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
1146 extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__));
1147 extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__));
1148 extern int fdatasync (int __fildes);
1149 extern char *crypt (__const char *__key, __const char *__salt)
1150 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1151 extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1152 extern void swab (__const void *__restrict __from, void *__restrict __to,
1153 ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1154 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
1155 extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
1156 size_t __buflen) __attribute__ ((__warn_unused_result__));
1157 extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__));
1158 extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk")
1159 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer")));
1160 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1161 read (int __fd, void *__buf, size_t __nbytes)
1162 {
1163 if (__builtin_object_size (__buf, 0) != (size_t) -1)
1164 {
1165 if (!__builtin_constant_p (__nbytes))
1166 return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
1167 if (__nbytes > __builtin_object_size (__buf, 0))
1168 return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
1169 }
1170 return __read_alias (__fd, __buf, __nbytes);
1171 }
1172 extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes,
1173 __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
1174 extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes,
1175 __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
1176 extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__));
1177 extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__));
1178 extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk")
1179 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer")));
1180 extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk")
1181 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer")));
1182 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1183 pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset)
1184 {
1185 if (__builtin_object_size (__buf, 0) != (size_t) -1)
1186 {
1187 if (!__builtin_constant_p (__nbytes))
1188 return __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0));
1189 if ( __nbytes > __builtin_object_size (__buf, 0))
1190 return __pread_chk_warn (__fd, __buf, __nbytes, __offset,
1191 __builtin_object_size (__buf, 0));
1192 }
1193 return __pread_alias (__fd, __buf, __nbytes, __offset);
1194 }
1195 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1196 pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset)
1197 {
1198 if (__builtin_object_size (__buf, 0) != (size_t) -1)
1199 {
1200 if (!__builtin_constant_p (__nbytes))
1201 return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0));
1202 if ( __nbytes > __builtin_object_size (__buf, 0))
1203 return __pread64_chk_warn (__fd, __buf, __nbytes, __offset,
1204 __builtin_object_size (__buf, 0));
1205 }
1206 return __pread64_alias (__fd, __buf, __nbytes, __offset);
1207 }
1208 extern ssize_t __readlink_chk (__const char *__restrict __path,
1209 char *__restrict __buf, size_t __len,
1210 size_t __buflen)
1211 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1212 extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__))
1213 __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1214 extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__))
1215 __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer")));
1216 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t
1217 __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len)
1218 {
1219 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1220 {
1221 if (!__builtin_constant_p (__len))
1222 return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
1223 if ( __len > __builtin_object_size (__buf, 2 > 1))
1224 return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
1225 }
1226 return __readlink_alias (__path, __buf, __len);
1227 }
1228 extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path,
1229 char *__restrict __buf, size_t __len,
1230 size_t __buflen)
1231 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
1232 extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__))
1233 __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
1234 extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__))
1235 __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer")));
1236 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t
1237 __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
1238 {
1239 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1240 {
1241 if (!__builtin_constant_p (__len))
1242 return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
1243 if (__len > __builtin_object_size (__buf, 2 > 1))
1244 return __readlinkat_chk_warn (__fd, __path, __buf, __len,
1245 __builtin_object_size (__buf, 2 > 1));
1246 }
1247 return __readlinkat_alias (__fd, __path, __buf, __len);
1248 }
1249 extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
1250 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1251 extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1252 extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__))
1253 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer")));
1254 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1255 __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size)
1256 {
1257 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1258 {
1259 if (!__builtin_constant_p (__size))
1260 return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1));
1261 if (__size > __builtin_object_size (__buf, 2 > 1))
1262 return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1));
1263 }
1264 return __getcwd_alias (__buf, __size);
1265 }
1266 extern char *__getwd_chk (char *__buf, size_t buflen)
1267 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1268 extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__))
1269 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size")));
1270 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char *
1271 __attribute__ ((__nothrow__)) getwd (char *__buf)
1272 {
1273 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1274 return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1));
1275 return __getwd_warn (__buf);
1276 }
1277 extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
1278 size_t __buflen) __attribute__ ((__nothrow__));
1279 extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__));
1280 extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__))
1281 __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer")));
1282 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t
1283 __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len)
1284 {
1285 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1286 {
1287 if (!__builtin_constant_p (__len))
1288 return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
1289 if (__builtin_object_size (__buf, 2 > 1) < __len)
1290 return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
1291 }
1292 return __confstr_alias (__name, __buf, __len);
1293 }
1294 extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
1295 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1296 extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1297 extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__))
1298 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer")));
1299 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1300 __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[])
1301 {
1302 if (__builtin_object_size (__list, 2 > 1) != (size_t) -1)
1303 {
1304 if (!__builtin_constant_p (__size) || __size < 0)
1305 return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1));
1306 if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1))
1307 return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1));
1308 }
1309 return __getgroups_alias (__size, __list);
1310 }
1311 extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
1312 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1313 extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
1314 __attribute__ ((__nonnull__ (2)));
1315 extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__))
1316 __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer")));
1317 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1318 __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen)
1319 {
1320 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1321 {
1322 if (!__builtin_constant_p (__buflen))
1323 return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1324 if (__buflen > __builtin_object_size (__buf, 2 > 1))
1325 return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1326 }
1327 return __ttyname_r_alias (__fd, __buf, __buflen);
1328 }
1329 extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
1330 __attribute__ ((__nonnull__ (1)));
1331 extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1)));
1332 extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk")
1333 __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer")));
1334 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1335 getlogin_r (char *__buf, size_t __buflen)
1336 {
1337 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1338 {
1339 if (!__builtin_constant_p (__buflen))
1340 return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1341 if (__buflen > __builtin_object_size (__buf, 2 > 1))
1342 return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1343 }
1344 return __getlogin_r_alias (__buf, __buflen);
1345 }
1346 extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
1347 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1348 extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1349 extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__))
1350 __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer")));
1351 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1352 __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen)
1353 {
1354 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1355 {
1356 if (!__builtin_constant_p (__buflen))
1357 return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1358 if (__buflen > __builtin_object_size (__buf, 2 > 1))
1359 return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1360 }
1361 return __gethostname_alias (__buf, __buflen);
1362 }
1363 extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
1364 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1365 extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1366 extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__))
1367 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer")));
1368 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1369 __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen)
1370 {
1371 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
1372 {
1373 if (!__builtin_constant_p (__buflen))
1374 return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1375 if (__buflen > __builtin_object_size (__buf, 2 > 1))
1376 return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
1377 }
1378 return __getdomainname_alias (__buf, __buflen);
1379 }
1380 extern void __assert_fail (__const char *__assertion, __const char *__file,
1381 unsigned int __line, __const char *__function)
1382 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1383 extern void __assert_perror_fail (int __errnum, __const char *__file,
1384 unsigned int __line,
1385 __const char *__function)
1386 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1387 extern void __assert (const char *__assertion, const char *__file, int __line)
1388 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1389 struct _IO_FILE;
1390 typedef struct _IO_FILE FILE;
1391 typedef struct _IO_FILE __FILE;
1392 typedef struct
1393 {
1394 int __count;
1395 union
1396 {
1397 unsigned int __wch;
1398 char __wchb[4];
1399 } __value;
1400 } __mbstate_t;
1401 typedef struct
1402 {
1403 __off_t __pos;
1404 __mbstate_t __state;
1405 } _G_fpos_t;
1406 typedef struct
1407 {
1408 __off64_t __pos;
1409 __mbstate_t __state;
1410 } _G_fpos64_t;
1411 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
1412 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
1413 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
1414 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
1415 typedef __builtin_va_list __gnuc_va_list;
1416 struct _IO_jump_t; struct _IO_FILE;
1417 typedef void _IO_lock_t;
1418 struct _IO_marker {
1419 struct _IO_marker *_next;
1420 struct _IO_FILE *_sbuf;
1421 int _pos;
1422 };
1423 enum __codecvt_result
1424 {
1425 __codecvt_ok,
1426 __codecvt_partial,
1427 __codecvt_error,
1428 __codecvt_noconv
1429 };
1430 struct _IO_FILE {
1431 int _flags;
1432 char* _IO_read_ptr;
1433 char* _IO_read_end;
1434 char* _IO_read_base;
1435 char* _IO_write_base;
1436 char* _IO_write_ptr;
1437 char* _IO_write_end;
1438 char* _IO_buf_base;
1439 char* _IO_buf_end;
1440 char *_IO_save_base;
1441 char *_IO_backup_base;
1442 char *_IO_save_end;
1443 struct _IO_marker *_markers;
1444 struct _IO_FILE *_chain;
1445 int _fileno;
1446 int _flags2;
1447 __off_t _old_offset;
1448 unsigned short _cur_column;
1449 signed char _vtable_offset;
1450 char _shortbuf[1];
1451 _IO_lock_t *_lock;
1452 __off64_t _offset;
1453 void *__pad1;
1454 void *__pad2;
1455 void *__pad3;
1456 void *__pad4;
1457 size_t __pad5;
1458 int _mode;
1459 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
1460 };
1461 typedef struct _IO_FILE _IO_FILE;
1462 struct _IO_FILE_plus;
1463 extern struct _IO_FILE_plus _IO_2_1_stdin_;
1464 extern struct _IO_FILE_plus _IO_2_1_stdout_;
1465 extern struct _IO_FILE_plus _IO_2_1_stderr_;
1466 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
1467 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
1468 size_t __n);
1469 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
1470 typedef int __io_close_fn (void *__cookie);
1471 typedef __io_read_fn cookie_read_function_t;
1472 typedef __io_write_fn cookie_write_function_t;
1473 typedef __io_seek_fn cookie_seek_function_t;
1474 typedef __io_close_fn cookie_close_function_t;
1475 typedef struct
1476 {
1477 __io_read_fn *read;
1478 __io_write_fn *write;
1479 __io_seek_fn *seek;
1480 __io_close_fn *close;
1481 } _IO_cookie_io_functions_t;
1482 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
1483 struct _IO_cookie_file;
1484 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
1485 void *__cookie, _IO_cookie_io_functions_t __fns);
1486 extern int __underflow (_IO_FILE *);
1487 extern int __uflow (_IO_FILE *);
1488 extern int __overflow (_IO_FILE *, int);
1489 extern int _IO_getc (_IO_FILE *__fp);
1490 extern int _IO_putc (int __c, _IO_FILE *__fp);
1491 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1492 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1493 extern int _IO_peekc_locked (_IO_FILE *__fp);
1494 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1495 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1496 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1497 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
1498 __gnuc_va_list, int *__restrict);
1499 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
1500 __gnuc_va_list);
1501 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
1502 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
1503 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
1504 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
1505 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
1506 typedef __gnuc_va_list va_list;
1507 typedef _G_fpos_t fpos_t;
1508 typedef _G_fpos64_t fpos64_t;
1509 extern struct _IO_FILE *stdin;
1510 extern struct _IO_FILE *stdout;
1511 extern struct _IO_FILE *stderr;
1512 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
1513 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
1514 extern int renameat (int __oldfd, __const char *__old, int __newfd,
1515 __const char *__new) __attribute__ ((__nothrow__));
1516 extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
1517 extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__));
1518 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1519 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1520 extern char *tempnam (__const char *__dir, __const char *__pfx)
1521 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
1522 extern int fclose (FILE *__stream);
1523 extern int fflush (FILE *__stream);
1524 extern int fflush_unlocked (FILE *__stream);
1525 extern int fcloseall (void);
1526 extern FILE *fopen (__const char *__restrict __filename,
1527 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1528 extern FILE *freopen (__const char *__restrict __filename,
1529 __const char *__restrict __modes,
1530 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1531 extern FILE *fopen64 (__const char *__restrict __filename,
1532 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1533 extern FILE *freopen64 (__const char *__restrict __filename,
1534 __const char *__restrict __modes,
1535 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1536 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1537 extern FILE *fopencookie (void *__restrict __magic_cookie,
1538 __const char *__restrict __modes,
1539 _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1540 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
1541 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1542 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1543 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
1544 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1545 int __modes, size_t __n) __attribute__ ((__nothrow__));
1546 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1547 size_t __size) __attribute__ ((__nothrow__));
1548 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
1549 extern int fprintf (FILE *__restrict __stream,
1550 __const char *__restrict __format, ...);
1551 extern int printf (__const char *__restrict __format, ...);
1552 extern int sprintf (char *__restrict __s,
1553 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1554 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1555 __gnuc_va_list __arg);
1556 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1557 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1558 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
1559 extern int snprintf (char *__restrict __s, size_t __maxlen,
1560 __const char *__restrict __format, ...)
1561 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1562 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
1563 __const char *__restrict __format, __gnuc_va_list __arg)
1564 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
1565 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
1566 __gnuc_va_list __arg)
1567 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__));
1568 extern int __asprintf (char **__restrict __ptr,
1569 __const char *__restrict __fmt, ...)
1570 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1571 extern int asprintf (char **__restrict __ptr,
1572 __const char *__restrict __fmt, ...)
1573 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1574 extern int vdprintf (int __fd, __const char *__restrict __fmt,
1575 __gnuc_va_list __arg)
1576 __attribute__ ((__format__ (__printf__, 2, 0)));
1577 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1578 __attribute__ ((__format__ (__printf__, 2, 3)));
1579 extern int fscanf (FILE *__restrict __stream,
1580 __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1581 extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1582 extern int sscanf (__const char *__restrict __s,
1583 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1584 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1585 __gnuc_va_list __arg)
1586 __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
1587 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
1588 __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
1589 extern int vsscanf (__const char *__restrict __s,
1590 __const char *__restrict __format, __gnuc_va_list __arg)
1591 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
1592 extern int fgetc (FILE *__stream);
1593 extern int getc (FILE *__stream);
1594 extern int getchar (void);
1595 extern int getc_unlocked (FILE *__stream);
1596 extern int getchar_unlocked (void);
1597 extern int fgetc_unlocked (FILE *__stream);
1598 extern int fputc (int __c, FILE *__stream);
1599 extern int putc (int __c, FILE *__stream);
1600 extern int putchar (int __c);
1601 extern int fputc_unlocked (int __c, FILE *__stream);
1602 extern int putc_unlocked (int __c, FILE *__stream);
1603 extern int putchar_unlocked (int __c);
1604 extern int getw (FILE *__stream);
1605 extern int putw (int __w, FILE *__stream);
1606 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
1607 __attribute__ ((__warn_unused_result__));
1608 extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
1609 extern char *fgets_unlocked (char *__restrict __s, int __n,
1610 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1611 extern __ssize_t __getdelim (char **__restrict __lineptr,
1612 size_t *__restrict __n, int __delimiter,
1613 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1614 extern __ssize_t getdelim (char **__restrict __lineptr,
1615 size_t *__restrict __n, int __delimiter,
1616 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1617 extern __ssize_t getline (char **__restrict __lineptr,
1618 size_t *__restrict __n,
1619 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1620 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
1621 extern int puts (__const char *__s);
1622 extern int ungetc (int __c, FILE *__stream);
1623 extern size_t fread (void *__restrict __ptr, size_t __size,
1624 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1625 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
1626 size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
1627 extern int fputs_unlocked (__const char *__restrict __s,
1628 FILE *__restrict __stream);
1629 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
1630 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1631 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
1632 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1633 extern int fseek (FILE *__stream, long int __off, int __whence);
1634 extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
1635 extern void rewind (FILE *__stream);
1636 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
1637 extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
1638 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1639 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1640 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1641 extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__));
1642 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1643 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1644 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
1645 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1646 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1647 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
1648 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1649 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1650 extern void perror (__const char *__s);
1651 extern int sys_nerr;
1652 extern __const char *__const sys_errlist[];
1653 extern int _sys_nerr;
1654 extern __const char *__const _sys_errlist[];
1655 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1656 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1657 extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
1658 extern int pclose (FILE *__stream);
1659 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
1660 extern char *cuserid (char *__s);
1661 struct obstack;
1662 extern int obstack_printf (struct obstack *__restrict __obstack,
1663 __const char *__restrict __format, ...)
1664 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
1665 extern int obstack_vprintf (struct obstack *__restrict __obstack,
1666 __const char *__restrict __format,
1667 __gnuc_va_list __args)
1668 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
1669 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
1670 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1671 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
1672 extern __inline __attribute__ ((__gnu_inline__)) int
1673 getchar (void)
1674 {
1675 return _IO_getc (stdin);
1676 }
1677 extern __inline __attribute__ ((__gnu_inline__)) int
1678 fgetc_unlocked (FILE *__fp)
1679 {
1680 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1681 }
1682 extern __inline __attribute__ ((__gnu_inline__)) int
1683 getc_unlocked (FILE *__fp)
1684 {
1685 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1686 }
1687 extern __inline __attribute__ ((__gnu_inline__)) int
1688 getchar_unlocked (void)
1689 {
1690 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
1691 }
1692 extern __inline __attribute__ ((__gnu_inline__)) int
1693 putchar (int __c)
1694 {
1695 return _IO_putc (__c, stdout);
1696 }
1697 extern __inline __attribute__ ((__gnu_inline__)) int
1698 fputc_unlocked (int __c, FILE *__stream)
1699 {
1700 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1701 }
1702 extern __inline __attribute__ ((__gnu_inline__)) int
1703 putc_unlocked (int __c, FILE *__stream)
1704 {
1705 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1706 }
1707 extern __inline __attribute__ ((__gnu_inline__)) int
1708 putchar_unlocked (int __c)
1709 {
1710 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
1711 }
1712 extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
1713 getline (char **__lineptr, size_t *__n, FILE *__stream)
1714 {
1715 return __getdelim (__lineptr, __n, '\n', __stream);
1716 }
1717 extern __inline __attribute__ ((__gnu_inline__)) int
1718 __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
1719 {
1720 return (((__stream)->_flags & 0x10) != 0);
1721 }
1722 extern __inline __attribute__ ((__gnu_inline__)) int
1723 __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
1724 {
1725 return (((__stream)->_flags & 0x20) != 0);
1726 }
1727 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
1728 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1729 extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
1730 __const char *__restrict __format,
1731 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
1732 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1733 __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
1734 {
1735 return __builtin___sprintf_chk (__s, 2 - 1,
1736 __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
1737 }
1738 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1739 __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
1740 {
1741 return __builtin___vsprintf_chk (__s, 2 - 1,
1742 __builtin_object_size (__s, 2 > 1), __fmt, __ap);
1743 }
1744 extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
1745 size_t __slen, __const char *__restrict __format,
1746 ...) __attribute__ ((__nothrow__));
1747 extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
1748 size_t __slen, __const char *__restrict __format,
1749 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
1750 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1751 __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
1752 {
1753 return __builtin___snprintf_chk (__s, __n, 2 - 1,
1754 __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
1755 }
1756 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1757 __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
1758 {
1759 return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
1760 __builtin_object_size (__s, 2 > 1), __fmt, __ap);
1761 }
1762 extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
1763 __const char *__restrict __format, ...);
1764 extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
1765 extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
1766 __const char *__restrict __format, __gnuc_va_list __ap);
1767 extern int __vprintf_chk (int __flag, __const char *__restrict __format,
1768 __gnuc_va_list __ap);
1769 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1770 fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
1771 {
1772 return __fprintf_chk (__stream, 2 - 1, __fmt,
1773 __builtin_va_arg_pack ());
1774 }
1775 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1776 printf (__const char *__restrict __fmt, ...)
1777 {
1778 return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
1779 }
1780 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1781 vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
1782 {
1783 return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
1784 }
1785 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1786 vfprintf (FILE *__restrict __stream,
1787 __const char *__restrict __fmt, __gnuc_va_list __ap)
1788 {
1789 return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
1790 }
1791 extern int __asprintf_chk (char **__restrict __ptr, int __flag,
1792 __const char *__restrict __fmt, ...)
1793 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__));
1794 extern int __vasprintf_chk (char **__restrict __ptr, int __flag,
1795 __const char *__restrict __fmt, __gnuc_va_list __arg)
1796 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__));
1797 extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt,
1798 ...) __attribute__ ((__format__ (__printf__, 3, 4)));
1799 extern int __vdprintf_chk (int __fd, int __flag,
1800 __const char *__restrict __fmt, __gnuc_va_list __arg)
1801 __attribute__ ((__format__ (__printf__, 3, 0)));
1802 extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
1803 int __flag, __const char *__restrict __format,
1804 ...)
1805 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1806 extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack,
1807 int __flag,
1808 __const char *__restrict __format,
1809 __gnuc_va_list __args)
1810 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
1811 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1812 __attribute__ ((__nothrow__)) asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
1813 {
1814 return __asprintf_chk (__ptr, 2 - 1, __fmt,
1815 __builtin_va_arg_pack ());
1816 }
1817 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1818 __attribute__ ((__nothrow__)) __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
1819 {
1820 return __asprintf_chk (__ptr, 2 - 1, __fmt,
1821 __builtin_va_arg_pack ());
1822 }
1823 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1824 dprintf (int __fd, __const char *__restrict __fmt, ...)
1825 {
1826 return __dprintf_chk (__fd, 2 - 1, __fmt,
1827 __builtin_va_arg_pack ());
1828 }
1829 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1830 __attribute__ ((__nothrow__)) obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, ...)
1831 {
1832 return __obstack_printf_chk (__obstack, 2 - 1, __fmt,
1833 __builtin_va_arg_pack ());
1834 }
1835 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1836 __attribute__ ((__nothrow__)) vasprintf (char **__restrict __ptr, __const char *__restrict __fmt, __gnuc_va_list __ap)
1837 {
1838 return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap);
1839 }
1840 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1841 vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap)
1842 {
1843 return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap);
1844 }
1845 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1846 __attribute__ ((__nothrow__)) obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, __gnuc_va_list __ap)
1847 {
1848 return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt,
1849 __ap);
1850 }
1851 extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
1852 extern char *__gets_warn (char *__str) __asm__ ("" "gets")
1853 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")));
1854 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1855 gets (char *__str)
1856 {
1857 if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
1858 return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
1859 return __gets_warn (__str);
1860 }
1861 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
1862 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1863 extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__));
1864 extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
1865 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")));
1866 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1867 fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
1868 {
1869 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
1870 {
1871 if (!__builtin_constant_p (__n) || __n <= 0)
1872 return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
1873 if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
1874 return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
1875 }
1876 return __fgets_alias (__s, __n, __stream);
1877 }
1878 extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
1879 size_t __size, size_t __n,
1880 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1881 extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__));
1882 extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
1883 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")));
1884 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
1885 fread (void *__restrict __ptr, size_t __size, size_t __n,
1886 FILE *__restrict __stream)
1887 {
1888 if (__builtin_object_size (__ptr, 0) != (size_t) -1)
1889 {
1890 if (!__builtin_constant_p (__size)
1891 || !__builtin_constant_p (__n)
1892 || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
1893 return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
1894 if (__size * __n > __builtin_object_size (__ptr, 0))
1895 return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
1896 }
1897 return __fread_alias (__ptr, __size, __n, __stream);
1898 }
1899 extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
1900 int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1901 extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__));
1902 extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk")
1903 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer")));
1904 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1905 fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
1906 {
1907 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
1908 {
1909 if (!__builtin_constant_p (__n) || __n <= 0)
1910 return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
1911 if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
1912 return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
1913 }
1914 return __fgets_unlocked_alias (__s, __n, __stream);
1915 }
1916 extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
1917 size_t __size, size_t __n,
1918 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1919 extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__));
1920 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")
1921 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")));
1922 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
1923 fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
1924 FILE *__restrict __stream)
1925 {
1926 if (__builtin_object_size (__ptr, 0) != (size_t) -1)
1927 {
1928 if (!__builtin_constant_p (__size)
1929 || !__builtin_constant_p (__n)
1930 || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
1931 return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
1932 __stream);
1933 if (__size * __n > __builtin_object_size (__ptr, 0))
1934 return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
1935 __stream);
1936 }
1937 if (__builtin_constant_p (__size)
1938 && __builtin_constant_p (__n)
1939 && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
1940 && __size * __n <= 8)
1941 {
1942 size_t __cnt = __size * __n;
1943 char *__cptr = (char *) __ptr;
1944 if (__cnt == 0)
1945 return 0;
1946 for (; __cnt > 0; --__cnt)
1947 {
1948 int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
1949 if (__c == (-1))
1950 break;
1951 *__cptr++ = __c;
1952 }
1953 return (__cptr - (char *) __ptr) / __size;
1954 }
1955 return __fread_unlocked_alias (__ptr, __size, __n, __stream);
1956 }
1957 typedef int wchar_t;
1958 union wait
1959 {
1960 int w_status;
1961 struct
1962 {
1963 unsigned int __w_termsig:7;
1964 unsigned int __w_coredump:1;
1965 unsigned int __w_retcode:8;
1966 unsigned int:16;
1967 } __wait_terminated;
1968 struct
1969 {
1970 unsigned int __w_stopval:8;
1971 unsigned int __w_stopsig:8;
1972 unsigned int:16;
1973 } __wait_stopped;
1974 };
1975 typedef union
1976 {
1977 union wait *__uptr;
1978 int *__iptr;
1979 } __WAIT_STATUS __attribute__ ((__transparent_union__));
1980 typedef struct
1981 {
1982 int quot;
1983 int rem;
1984 } div_t;
1985 typedef struct
1986 {
1987 long int quot;
1988 long int rem;
1989 } ldiv_t;
1990 __extension__ typedef struct
1991 {
1992 long long int quot;
1993 long long int rem;
1994 } lldiv_t;
1995 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1996 extern double atof (__const char *__nptr)
1997 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1998 extern int atoi (__const char *__nptr)
1999 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2000 extern long int atol (__const char *__nptr)
2001 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2002 __extension__ extern long long int atoll (__const char *__nptr)
2003 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2004 extern double strtod (__const char *__restrict __nptr,
2005 char **__restrict __endptr)
2006 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2007 extern float strtof (__const char *__restrict __nptr,
2008 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2009 extern long double strtold (__const char *__restrict __nptr,
2010 char **__restrict __endptr)
2011 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2012 extern long int strtol (__const char *__restrict __nptr,
2013 char **__restrict __endptr, int __base)
2014 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2015 extern unsigned long int strtoul (__const char *__restrict __nptr,
2016 char **__restrict __endptr, int __base)
2017 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2018 __extension__
2019 extern long long int strtoq (__const char *__restrict __nptr,
2020 char **__restrict __endptr, int __base)
2021 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2022 __extension__
2023 extern unsigned long long int strtouq (__const char *__restrict __nptr,
2024 char **__restrict __endptr, int __base)
2025 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2026 __extension__
2027 extern long long int strtoll (__const char *__restrict __nptr,
2028 char **__restrict __endptr, int __base)
2029 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2030 __extension__
2031 extern unsigned long long int strtoull (__const char *__restrict __nptr,
2032 char **__restrict __endptr, int __base)
2033 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2034 typedef struct __locale_struct
2035 {
2036 struct locale_data *__locales[13];
2037 const unsigned short int *__ctype_b;
2038 const int *__ctype_tolower;
2039 const int *__ctype_toupper;
2040 const char *__names[13];
2041 } *__locale_t;
2042 typedef __locale_t locale_t;
2043 extern long int strtol_l (__const char *__restrict __nptr,
2044 char **__restrict __endptr, int __base,
2045 __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2046 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
2047 char **__restrict __endptr,
2048 int __base, __locale_t __loc)
2049 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2050 __extension__
2051 extern long long int strtoll_l (__const char *__restrict __nptr,
2052 char **__restrict __endptr, int __base,
2053 __locale_t __loc)
2054 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2055 __extension__
2056 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
2057 char **__restrict __endptr,
2058 int __base, __locale_t __loc)
2059 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2060 extern double strtod_l (__const char *__restrict __nptr,
2061 char **__restrict __endptr, __locale_t __loc)
2062 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2063 extern float strtof_l (__const char *__restrict __nptr,
2064 char **__restrict __endptr, __locale_t __loc)
2065 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2066 extern long double strtold_l (__const char *__restrict __nptr,
2067 char **__restrict __endptr,
2068 __locale_t __loc)
2069 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2070 extern __inline __attribute__ ((__gnu_inline__)) double
2071 __attribute__ ((__nothrow__)) atof (__const char *__nptr)
2072 {
2073 return strtod (__nptr, (char **) ((void *)0));
2074 }
2075 extern __inline __attribute__ ((__gnu_inline__)) int
2076 __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
2077 {
2078 return (int) strtol (__nptr, (char **) ((void *)0), 10);
2079 }
2080 extern __inline __attribute__ ((__gnu_inline__)) long int
2081 __attribute__ ((__nothrow__)) atol (__const char *__nptr)
2082 {
2083 return strtol (__nptr, (char **) ((void *)0), 10);
2084 }
2085 __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
2086 __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
2087 {
2088 return strtoll (__nptr, (char **) ((void *)0), 10);
2089 }
2090 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2091 extern long int a64l (__const char *__s)
2092 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2093 extern long int random (void) __attribute__ ((__nothrow__));
2094 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
2095 extern char *initstate (unsigned int __seed, char *__statebuf,
2096 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2097 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2098 struct random_data
2099 {
2100 int32_t *fptr;
2101 int32_t *rptr;
2102 int32_t *state;
2103 int rand_type;
2104 int rand_deg;
2105 int rand_sep;
2106 int32_t *end_ptr;
2107 };
2108 extern int random_r (struct random_data *__restrict __buf,
2109 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2110 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2111 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2112 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
2113 size_t __statelen,
2114 struct random_data *__restrict __buf)
2115 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
2116 extern int setstate_r (char *__restrict __statebuf,
2117 struct random_data *__restrict __buf)
2118 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2119 extern int rand (void) __attribute__ ((__nothrow__));
2120 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
2121 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
2122 extern double drand48 (void) __attribute__ ((__nothrow__));
2123 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2124 extern long int lrand48 (void) __attribute__ ((__nothrow__));
2125 extern long int nrand48 (unsigned short int __xsubi[3])
2126 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2127 extern long int mrand48 (void) __attribute__ ((__nothrow__));
2128 extern long int jrand48 (unsigned short int __xsubi[3])
2129 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2130 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
2131 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
2132 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2133 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2134 struct drand48_data
2135 {
2136 unsigned short int __x[3];
2137 unsigned short int __old_x[3];
2138 unsigned short int __c;
2139 unsigned short int __init;
2140 unsigned long long int __a;
2141 };
2142 extern int drand48_r (struct drand48_data *__restrict __buffer,
2143 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2144 extern int erand48_r (unsigned short int __xsubi[3],
2145 struct drand48_data *__restrict __buffer,
2146 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2147 extern int lrand48_r (struct drand48_data *__restrict __buffer,
2148 long int *__restrict __result)
2149 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2150 extern int nrand48_r (unsigned short int __xsubi[3],
2151 struct drand48_data *__restrict __buffer,
2152 long int *__restrict __result)
2153 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2154 extern int mrand48_r (struct drand48_data *__restrict __buffer,
2155 long int *__restrict __result)
2156 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2157 extern int jrand48_r (unsigned short int __xsubi[3],
2158 struct drand48_data *__restrict __buffer,
2159 long int *__restrict __result)
2160 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2161 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2162 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2163 extern int seed48_r (unsigned short int __seed16v[3],
2164 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2165 extern int lcong48_r (unsigned short int __param[7],
2166 struct drand48_data *__buffer)
2167 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2168 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2169 extern void *calloc (size_t __nmemb, size_t __size)
2170 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2171 extern void *realloc (void *__ptr, size_t __size)
2172 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2173 extern void free (void *__ptr) __attribute__ ((__nothrow__));
2174 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
2175 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
2176 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2177 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2178 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2179 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2180 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2181 extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2182 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2183 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2184 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2185 extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2186 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2187 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2188 extern char *__secure_getenv (__const char *__name)
2189 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2190 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2191 extern int setenv (__const char *__name, __const char *__value, int __replace)
2192 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2193 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
2194 extern int clearenv (void) __attribute__ ((__nothrow__));
2195 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2196 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2197 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2198 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2199 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2200 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2201 extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
2202 extern char *canonicalize_file_name (__const char *__name)
2203 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2204 extern char *realpath (__const char *__restrict __name,
2205 char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2206 typedef int (*__compar_fn_t) (__const void *, __const void *);
2207 typedef __compar_fn_t comparison_fn_t;
2208 typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
2209 extern void *bsearch (__const void *__key, __const void *__base,
2210 size_t __nmemb, size_t __size, __compar_fn_t __compar)
2211 __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
2212 extern void qsort (void *__base, size_t __nmemb, size_t __size,
2213 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2214 extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
2215 __compar_d_fn_t __compar, void *__arg)
2216 __attribute__ ((__nonnull__ (1, 4)));
2217 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2218 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2219 __extension__ extern long long int llabs (long long int __x)
2220 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2221 extern div_t div (int __numer, int __denom)
2222 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2223 extern ldiv_t ldiv (long int __numer, long int __denom)
2224 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2225 __extension__ extern lldiv_t lldiv (long long int __numer,
2226 long long int __denom)
2227 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2228 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2229 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2230 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2231 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2232 extern char *gcvt (double __value, int __ndigit, char *__buf)
2233 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
2234 extern char *qecvt (long double __value, int __ndigit,
2235 int *__restrict __decpt, int *__restrict __sign)
2236 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2237 extern char *qfcvt (long double __value, int __ndigit,
2238 int *__restrict __decpt, int *__restrict __sign)
2239 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2240 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2241 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
2242 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2243 int *__restrict __sign, char *__restrict __buf,
2244 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2245 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2246 int *__restrict __sign, char *__restrict __buf,
2247 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2248 extern int qecvt_r (long double __value, int __ndigit,
2249 int *__restrict __decpt, int *__restrict __sign,
2250 char *__restrict __buf, size_t __len)
2251 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2252 extern int qfcvt_r (long double __value, int __ndigit,
2253 int *__restrict __decpt, int *__restrict __sign,
2254 char *__restrict __buf, size_t __len)
2255 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
2256 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2257 extern int mbtowc (wchar_t *__restrict __pwc,
2258 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2259 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2260 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2261 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
2262 extern size_t wcstombs (char *__restrict __s,
2263 __const wchar_t *__restrict __pwcs, size_t __n)
2264 __attribute__ ((__nothrow__));
2265 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2266 extern int getsubopt (char **__restrict __optionp,
2267 char *__const *__restrict __tokens,
2268 char **__restrict __valuep)
2269 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
2270 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2271 extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__));
2272 extern int grantpt (int __fd) __attribute__ ((__nothrow__));
2273 extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
2274 extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2275 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2276 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2277 extern int getpt (void);
2278 extern int getloadavg (double __loadavg[], int __nelem)
2279 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2280 extern char *__realpath_chk (__const char *__restrict __name,
2281 char *__restrict __resolved,
2282 size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2283 extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2284 extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__))
2285 __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")));
2286 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
2287 __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
2288 {
2289 if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
2290 {
2291 if (__builtin_object_size (__resolved, 2 > 1) < 4096)
2292 return __realpath_chk_warn (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
2293 return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
2294 }
2295 return __realpath_alias (__name, __resolved);
2296 }
2297 extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
2298 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2299 extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
2300 __attribute__ ((__nonnull__ (2)));
2301 extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
2302 __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")));
2303 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
2304 __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
2305 {
2306 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
2307 {
2308 if (!__builtin_constant_p (__buflen))
2309 return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
2310 if (__buflen > __builtin_object_size (__buf, 2 > 1))
2311 return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
2312 }
2313 return __ptsname_r_alias (__fd, __buf, __buflen);
2314 }
2315 extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
2316 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2317 extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2318 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) int
2319 __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
2320 {
2321 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
2322 return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
2323 return __wctomb_alias (__s, __wchar);
2324 }
2325 extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
2326 __const char *__restrict __src,
2327 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
2328 extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__));
2329 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__))
2330 __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")));
2331 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t
2332 __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
2333 {
2334 if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
2335 {
2336 if (!__builtin_constant_p (__len))
2337 return __mbstowcs_chk (__dst, __src, __len,
2338 __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
2339 if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
2340 return __mbstowcs_chk_warn (__dst, __src, __len,
2341 __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
2342 }
2343 return __mbstowcs_alias (__dst, __src, __len);
2344 }
2345 extern size_t __wcstombs_chk (char *__restrict __dst,
2346 __const wchar_t *__restrict __src,
2347 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
2348 extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__));
2349 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__))
2350 __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
2351 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t
2352 __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
2353 {
2354 if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
2355 {
2356 if (!__builtin_constant_p (__len))
2357 return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
2358 if (__len > __builtin_object_size (__dst, 2 > 1))
2359 return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
2360 }
2361 return __wcstombs_alias (__dst, __src, __len);
2362 }
2363 extern void *memcpy (void *__restrict __dest,
2364 __const void *__restrict __src, size_t __n)
2365 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2366 extern void *memmove (void *__dest, __const void *__src, size_t __n)
2367 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2368 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
2369 int __c, size_t __n)
2370 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2371 extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2372 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
2373 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2374 extern void *memchr (__const void *__s, int __c, size_t __n)
2375 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2376 extern void *rawmemchr (__const void *__s, int __c)
2377 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2378 extern void *memrchr (__const void *__s, int __c, size_t __n)
2379 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2380 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
2381 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2382 extern char *strncpy (char *__restrict __dest,
2383 __const char *__restrict __src, size_t __n)
2384 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2385 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
2386 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2387 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
2388 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2389 extern int strcmp (__const char *__s1, __const char *__s2)
2390 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2391 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
2392 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2393 extern int strcoll (__const char *__s1, __const char *__s2)
2394 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2395 extern size_t strxfrm (char *__restrict __dest,
2396 __const char *__restrict __src, size_t __n)
2397 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2398 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
2399 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2400 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
2401 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
2402 extern char *strdup (__const char *__s)
2403 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2404 extern char *strndup (__const char *__string, size_t __n)
2405 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2406 extern char *strchr (__const char *__s, int __c)
2407 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2408 extern char *strrchr (__const char *__s, int __c)
2409 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2410 extern char *strchrnul (__const char *__s, int __c)
2411 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2412 extern size_t strcspn (__const char *__s, __const char *__reject)
2413 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2414 extern size_t strspn (__const char *__s, __const char *__accept)
2415 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2416 extern char *strpbrk (__const char *__s, __const char *__accept)
2417 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2418 extern char *strstr (__const char *__haystack, __const char *__needle)
2419 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2420 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
2421 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2422 extern char *__strtok_r (char *__restrict __s,
2423 __const char *__restrict __delim,
2424 char **__restrict __save_ptr)
2425 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
2426 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
2427 char **__restrict __save_ptr)
2428 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
2429 extern char *strcasestr (__const char *__haystack, __const char *__needle)
2430 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2431 extern void *memmem (__const void *__haystack, size_t __haystacklen,
2432 __const void *__needle, size_t __needlelen)
2433 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
2434 extern void *__mempcpy (void *__restrict __dest,
2435 __const void *__restrict __src, size_t __n)
2436 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2437 extern void *mempcpy (void *__restrict __dest,
2438 __const void *__restrict __src, size_t __n)
2439 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2440 extern size_t strlen (__const char *__s)
2441 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2442 extern size_t strnlen (__const char *__string, size_t __maxlen)
2443 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2444 extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
2445 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
2446 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2447 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
2448 extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2449 extern void bcopy (__const void *__src, void *__dest, size_t __n)
2450 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2451 extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2452 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
2453 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2454 extern char *index (__const char *__s, int __c)
2455 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2456 extern char *rindex (__const char *__s, int __c)
2457 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2458 extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2459 extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2460 __extension__ extern int ffsll (long long int __ll)
2461 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2462 extern int strcasecmp (__const char *__s1, __const char *__s2)
2463 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2464 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
2465 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2466 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
2467 __locale_t __loc)
2468 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2469 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
2470 size_t __n, __locale_t __loc)
2471 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
2472 extern char *strsep (char **__restrict __stringp,
2473 __const char *__restrict __delim)
2474 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2475 extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
2476 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
2477 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2478 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
2479 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2480 extern char *__stpncpy (char *__restrict __dest,
2481 __const char *__restrict __src, size_t __n)
2482 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2483 extern char *stpncpy (char *__restrict __dest,
2484 __const char *__restrict __src, size_t __n)
2485 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2486 extern int strverscmp (__const char *__s1, __const char *__s2)
2487 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2488 extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2489 extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2490 extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2491 extern void *__rawmemchr (const void *__s, int __c);
2492 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (__const char *__s, int __reject);
2493 extern __inline __attribute__ ((__gnu_inline__)) size_t
2494 __strcspn_c1 (__const char *__s, int __reject)
2495 {
2496 register size_t __result = 0;
2497 while (__s[__result] != '\0' && __s[__result] != __reject)
2498 ++__result;
2499 return __result;
2500 }
2501 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (__const char *__s, int __reject1,
2502 int __reject2);
2503 extern __inline __attribute__ ((__gnu_inline__)) size_t
2504 __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
2505 {
2506 register size_t __result = 0;
2507 while (__s[__result] != '\0' && __s[__result] != __reject1
2508 && __s[__result] != __reject2)
2509 ++__result;
2510 return __result;
2511 }
2512 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (__const char *__s, int __reject1,
2513 int __reject2, int __reject3);
2514 extern __inline __attribute__ ((__gnu_inline__)) size_t
2515 __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
2516 int __reject3)
2517 {
2518 register size_t __result = 0;
2519 while (__s[__result] != '\0' && __s[__result] != __reject1
2520 && __s[__result] != __reject2 && __s[__result] != __reject3)
2521 ++__result;
2522 return __result;
2523 }
2524 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (__const char *__s, int __accept);
2525 extern __inline __attribute__ ((__gnu_inline__)) size_t
2526 __strspn_c1 (__const char *__s, int __accept)
2527 {
2528 register size_t __result = 0;
2529 while (__s[__result] == __accept)
2530 ++__result;
2531 return __result;
2532 }
2533 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (__const char *__s, int __accept1,
2534 int __accept2);
2535 extern __inline __attribute__ ((__gnu_inline__)) size_t
2536 __strspn_c2 (__const char *__s, int __accept1, int __accept2)
2537 {
2538 register size_t __result = 0;
2539 while (__s[__result] == __accept1 || __s[__result] == __accept2)
2540 ++__result;
2541 return __result;
2542 }
2543 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (__const char *__s, int __accept1,
2544 int __accept2, int __accept3);
2545 extern __inline __attribute__ ((__gnu_inline__)) size_t
2546 __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
2547 {
2548 register size_t __result = 0;
2549 while (__s[__result] == __accept1 || __s[__result] == __accept2
2550 || __s[__result] == __accept3)
2551 ++__result;
2552 return __result;
2553 }
2554 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (__const char *__s, int __accept1,
2555 int __accept2);
2556 extern __inline __attribute__ ((__gnu_inline__)) char *
2557 __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
2558 {
2559 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
2560 ++__s;
2561 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
2562 }
2563 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (__const char *__s, int __accept1,
2564 int __accept2, int __accept3);
2565 extern __inline __attribute__ ((__gnu_inline__)) char *
2566 __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
2567 int __accept3)
2568 {
2569 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
2570 && *__s != __accept3)
2571 ++__s;
2572 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
2573 }
2574 extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
2575 extern __inline __attribute__ ((__gnu_inline__)) char *
2576 __strtok_r_1c (char *__s, char __sep, char **__nextp)
2577 {
2578 char *__result;
2579 if (__s == ((void *)0))
2580 __s = *__nextp;
2581 while (*__s == __sep)
2582 ++__s;
2583 __result = ((void *)0);
2584 if (*__s != '\0')
2585 {
2586 __result = __s++;
2587 while (*__s != '\0')
2588 if (*__s++ == __sep)
2589 {
2590 __s[-1] = '\0';
2591 break;
2592 }
2593 }
2594 *__nextp = __s;
2595 return __result;
2596 }
2597 extern char *__strsep_g (char **__stringp, __const char *__delim);
2598 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject);
2599 extern __inline __attribute__ ((__gnu_inline__)) char *
2600 __strsep_1c (char **__s, char __reject)
2601 {
2602 register char *__retval = *__s;
2603 if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
2604 *(*__s)++ = '\0';
2605 return __retval;
2606 }
2607 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2);
2608 extern __inline __attribute__ ((__gnu_inline__)) char *
2609 __strsep_2c (char **__s, char __reject1, char __reject2)
2610 {
2611 register char *__retval = *__s;
2612 if (__retval != ((void *)0))
2613 {
2614 register char *__cp = __retval;
2615 while (1)
2616 {
2617 if (*__cp == '\0')
2618 {
2619 __cp = ((void *)0);
2620 break;
2621 }
2622 if (*__cp == __reject1 || *__cp == __reject2)
2623 {
2624 *__cp++ = '\0';
2625 break;
2626 }
2627 ++__cp;
2628 }
2629 *__s = __cp;
2630 }
2631 return __retval;
2632 }
2633 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2,
2634 char __reject3);
2635 extern __inline __attribute__ ((__gnu_inline__)) char *
2636 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
2637 {
2638 register char *__retval = *__s;
2639 if (__retval != ((void *)0))
2640 {
2641 register char *__cp = __retval;
2642 while (1)
2643 {
2644 if (*__cp == '\0')
2645 {
2646 __cp = ((void *)0);
2647 break;
2648 }
2649 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
2650 {
2651 *__cp++ = '\0';
2652 break;
2653 }
2654 ++__cp;
2655 }
2656 *__s = __cp;
2657 }
2658 return __retval;
2659 }
2660 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2661 extern char *__strndup (__const char *__string, size_t __n)
2662 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2663 extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")));
2664 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
2665 __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
2666 {
2667 return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
2668 }
2669 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
2670 __attribute__ ((__nothrow__)) memmove (void *__restrict __dest, __const void *__restrict __src, size_t __len)
2671 {
2672 return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
2673 }
2674 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
2675 __attribute__ ((__nothrow__)) mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
2676 {
2677 return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
2678 }
2679 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
2680 __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
2681 {
2682 if (__builtin_constant_p (__len) && __len == 0)
2683 {
2684 __warn_memset_zero_len ();
2685 return __dest;
2686 }
2687 return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
2688 }
2689 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void
2690 __attribute__ ((__nothrow__)) bcopy (__const void *__restrict __src, void *__restrict __dest, size_t __len)
2691 {
2692 (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
2693 }
2694 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void
2695 __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
2696 {
2697 (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
2698 }
2699 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2700 __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
2701 {
2702 return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
2703 }
2704 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2705 __attribute__ ((__nothrow__)) stpcpy (char *__restrict __dest, __const char *__restrict __src)
2706 {
2707 return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
2708 }
2709 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2710 __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
2711 {
2712 return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
2713 }
2714 extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
2715 size_t __destlen) __attribute__ ((__nothrow__));
2716 extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__));
2717 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2718 __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
2719 {
2720 if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
2721 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
2722 return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
2723 return __stpncpy_alias (__dest, __src, __n);
2724 }
2725 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2726 __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
2727 {
2728 return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
2729 }
2730 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
2731 __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
2732 {
2733 return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
2734 }
2735 static inline void* PA_ALIGN_PTR(const void *p) {
2736 return (void*) (((size_t) p) & ~(sizeof(void*) - 1));
2737 }
2738 static inline size_t PA_ALIGN(size_t l) {
2739 return ((l + sizeof(void*) - 1) & ~(sizeof(void*) - 1));
2740 }
2741 static inline void* PA_PAGE_ALIGN_PTR(const void *p) {
2742 return (void*) (((size_t) p) & ~(((size_t) (sysconf(_SC_PAGESIZE))) - 1));
2743 }
2744 static inline size_t PA_PAGE_ALIGN(size_t l) {
2745 return (l + ((size_t) (sysconf(_SC_PAGESIZE))) - 1) & ~(((size_t) (sysconf(_SC_PAGESIZE))) - 1);
2746 }
2747 typedef _Bool pa_bool_t;
2748 typedef enum pa_log_target {
2749 PA_LOG_STDERR,
2750 PA_LOG_SYSLOG,
2751 PA_LOG_NULL,
2752 PA_LOG_TARGET_MAX
2753 } pa_log_target_t;
2754 typedef enum pa_log_level {
2755 PA_LOG_ERROR = 0,
2756 PA_LOG_WARN = 1,
2757 PA_LOG_NOTICE = 2,
2758 PA_LOG_INFO = 3,
2759 PA_LOG_DEBUG = 4,
2760 PA_LOG_LEVEL_MAX
2761 } pa_log_level_t;
2762 typedef enum pa_log_flags {
2763 PA_LOG_COLORS = 0x01,
2764 PA_LOG_PRINT_TIME = 0x02,
2765 PA_LOG_PRINT_FILE = 0x04,
2766 PA_LOG_PRINT_META = 0x08,
2767 PA_LOG_PRINT_LEVEL = 0x10,
2768 } pa_log_flags_t;
2769 typedef enum pa_log_merge {
2770 PA_LOG_SET,
2771 PA_LOG_UNSET,
2772 PA_LOG_RESET
2773 } pa_log_merge_t;
2774 void pa_log_set_ident(const char *p);
2775 void pa_log_set_target(pa_log_target_t t);
2776 void pa_log_set_level(pa_log_level_t l);
2777 void pa_log_set_flags(pa_log_flags_t flags, pa_log_merge_t merge);
2778 void pa_log_set_show_backtrace(unsigned nlevels);
2779 void pa_log_set_skip_backtrace(unsigned nlevels);
2780 void pa_log_level_meta(
2781 pa_log_level_t level,
2782 const char*file,
2783 int line,
2784 const char *func,
2785 const char *format, ...) __attribute__ ((format (printf, 5, 6)));
2786 void pa_log_levelv_meta(
2787 pa_log_level_t level,
2788 const char*file,
2789 int line,
2790 const char *func,
2791 const char *format,
2792 va_list ap);
2793 void pa_log_level(
2794 pa_log_level_t level,
2795 const char *format, ...) __attribute__ ((format (printf, 2, 3)));
2796 void pa_log_levelv(
2797 pa_log_level_t level,
2798 const char *format,
2799 va_list ap);
2800 pa_bool_t pa_log_ratelimit(void);
2801 unsigned char st_13linear2alaw(int16_t pcm_val);
2802 int16_t st_alaw2linear16(unsigned char);
2803 unsigned char st_14linear2ulaw(int16_t pcm_val);
2804 int16_t st_ulaw2linear16(unsigned char);
2805 enum __rlimit_resource
2806 {
2807 RLIMIT_CPU = 0,
2808 RLIMIT_FSIZE = 1,
2809 RLIMIT_DATA = 2,
2810 RLIMIT_STACK = 3,
2811 RLIMIT_CORE = 4,
2812 __RLIMIT_RSS = 5,
2813 RLIMIT_NOFILE = 7,
2814 __RLIMIT_OFILE = RLIMIT_NOFILE,
2815 RLIMIT_AS = 9,
2816 __RLIMIT_NPROC = 6,
2817 __RLIMIT_MEMLOCK = 8,
2818 __RLIMIT_LOCKS = 10,
2819 __RLIMIT_SIGPENDING = 11,
2820 __RLIMIT_MSGQUEUE = 12,
2821 __RLIMIT_NICE = 13,
2822 __RLIMIT_RTPRIO = 14,
2823 __RLIMIT_NLIMITS = 15,
2824 __RLIM_NLIMITS = __RLIMIT_NLIMITS
2825 };
2826 typedef __rlim_t rlim_t;
2827 typedef __rlim64_t rlim64_t;
2828 struct rlimit
2829 {
2830 rlim_t rlim_cur;
2831 rlim_t rlim_max;
2832 };
2833 struct rlimit64
2834 {
2835 rlim64_t rlim_cur;
2836 rlim64_t rlim_max;
2837 };
2838 enum __rusage_who
2839 {
2840 RUSAGE_SELF = 0,
2841 RUSAGE_CHILDREN = -1
2842 ,
2843 RUSAGE_THREAD = 1
2844 };
2845 struct rusage
2846 {
2847 struct timeval ru_utime;
2848 struct timeval ru_stime;
2849 long int ru_maxrss;
2850 long int ru_ixrss;
2851 long int ru_idrss;
2852 long int ru_isrss;
2853 long int ru_minflt;
2854 long int ru_majflt;
2855 long int ru_nswap;
2856 long int ru_inblock;
2857 long int ru_oublock;
2858 long int ru_msgsnd;
2859 long int ru_msgrcv;
2860 long int ru_nsignals;
2861 long int ru_nvcsw;
2862 long int ru_nivcsw;
2863 };
2864 enum __priority_which
2865 {
2866 PRIO_PROCESS = 0,
2867 PRIO_PGRP = 1,
2868 PRIO_USER = 2
2869 };
2870 typedef enum __rlimit_resource __rlimit_resource_t;
2871 typedef enum __rusage_who __rusage_who_t;
2872 typedef enum __priority_which __priority_which_t;
2873 extern int getrlimit (__rlimit_resource_t __resource,
2874 struct rlimit *__rlimits) __attribute__ ((__nothrow__));
2875 extern int getrlimit64 (__rlimit_resource_t __resource,
2876 struct rlimit64 *__rlimits) __attribute__ ((__nothrow__));
2877 extern int setrlimit (__rlimit_resource_t __resource,
2878 __const struct rlimit *__rlimits) __attribute__ ((__nothrow__));
2879 extern int setrlimit64 (__rlimit_resource_t __resource,
2880 __const struct rlimit64 *__rlimits) __attribute__ ((__nothrow__));
2881 extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__));
2882 extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__));
2883 extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
2884 __attribute__ ((__nothrow__));
2885 struct timeval;
2886 void pa_make_fd_nonblock(int fd);
2887 void pa_make_fd_cloexec(int fd);
2888 int pa_make_secure_dir(const char* dir, mode_t m, uid_t uid, gid_t gid);
2889 int pa_make_secure_parent_dir(const char *fn, mode_t, uid_t uid, gid_t gid);
2890 ssize_t pa_read(int fd, void *buf, size_t count, int *type);
2891 ssize_t pa_write(int fd, const void *buf, size_t count, int *type);
2892 ssize_t pa_loop_read(int fd, void*data, size_t size, int *type);
2893 ssize_t pa_loop_write(int fd, const void*data, size_t size, int *type);
2894 int pa_close(int fd);
2895 void pa_check_signal_is_blocked(int sig);
2896 char *pa_sprintf_malloc(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
2897 char *pa_vsprintf_malloc(const char *format, va_list ap);
2898 char *pa_strlcpy(char *b, const char *s, size_t l);
2899 char *pa_parent_dir(const char *fn);
2900 int pa_make_realtime(int rtprio);
2901 int pa_raise_priority(int nice_level);
2902 void pa_reset_priority(void);
2903 int pa_parse_boolean(const char *s) __attribute__ ((pure));
2904 static inline const char *pa_yes_no(pa_bool_t b) {
2905 return b ? "yes" : "no";
2906 }
2907 static inline const char *pa_strnull(const char *x) {
2908 return x ? x : "(null)";
2909 }
2910 static inline const char *pa_strempty(const char *x) {
2911 return x ? x : "";
2912 }
2913 static inline const char *pa_strna(const char *x) {
2914 return x ? x : "n/a";
2915 }
2916 char *pa_split(const char *c, const char*delimiters, const char **state);
2917 char *pa_split_spaces(const char *c, const char **state);
2918 char *pa_strip_nl(char *s);
2919 const char *pa_sig2str(int sig) __attribute__ ((pure));
2920 int pa_own_uid_in_group(const char *name, gid_t *gid);
2921 int pa_uid_in_group(uid_t uid, const char *name);
2922 gid_t pa_get_gid_of_group(const char *name);
2923 int pa_check_in_group(gid_t g);
2924 int pa_lock_fd(int fd, int b);
2925 int pa_lock_lockfile(const char *fn);
2926 int pa_unlock_lockfile(const char *fn, int fd);
2927 char *pa_hexstr(const uint8_t* d, size_t dlength, char *s, size_t slength);
2928 size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength);
2929 pa_bool_t pa_startswith(const char *s, const char *pfx) __attribute__ ((pure));
2930 pa_bool_t pa_endswith(const char *s, const char *sfx) __attribute__ ((pure));
2931 FILE *pa_open_config_file(const char *global, const char *local, const char *env, char **result);
2932 char* pa_find_config_file(const char *global, const char *local, const char *env);
2933 char *pa_get_runtime_dir(void);
2934 char *pa_get_state_dir(void);
2935 char *pa_get_home_dir_malloc(void);
2936 char *pa_get_binary_name_malloc(void);
2937 char *pa_runtime_path(const char *fn);
2938 char *pa_state_path(const char *fn, pa_bool_t prepend_machine_id);
2939 int pa_atoi(const char *s, int32_t *ret_i);
2940 int pa_atou(const char *s, uint32_t *ret_u);
2941 int pa_atod(const char *s, double *ret_d);
2942 size_t pa_snprintf(char *str, size_t size, const char *format, ...);
2943 size_t pa_vsnprintf(char *str, size_t size, const char *format, va_list ap);
2944 char *pa_truncate_utf8(char *c, size_t l);
2945 int pa_match(const char *expr, const char *v);
2946 char *pa_getcwd(void);
2947 char *pa_make_path_absolute(const char *p);
2948 pa_bool_t pa_is_path_absolute(const char *p);
2949 void *pa_will_need(const void *p, size_t l);
2950 static inline int pa_is_power_of_two(unsigned n) {
2951 return !(n & (n - 1));
2952 }
2953 static inline unsigned pa_ulog2(unsigned n) {
2954 if (n <= 1)
2955 return 0;
2956 return 8U * (unsigned) sizeof(unsigned) - (unsigned) __builtin_clz(n) - 1;
2957 }
2958 static inline unsigned pa_make_power_of_two(unsigned n) {
2959 if (pa_is_power_of_two(n))
2960 return n;
2961 return 1U << (pa_ulog2(n) + 1);
2962 }
2963 void pa_close_pipe(int fds[2]);
2964 char *pa_readlink(const char *p);
2965 int pa_close_all(int except_fd, ...);
2966 int pa_close_allv(const int except_fds[]);
2967 int pa_unblock_sigs(int except, ...);
2968 int pa_unblock_sigsv(const int except[]);
2969 int pa_reset_sigs(int except, ...);
2970 int pa_reset_sigsv(const int except[]);
2971 void pa_set_env(const char *key, const char *value);
2972 void pa_set_env_and_record(const char *key, const char *value);
2973 void pa_unset_env_recorded(void);
2974 pa_bool_t pa_in_system_mode(void);
2975 char *pa_get_host_name_malloc(void);
2976 char *pa_get_user_name_malloc(void);
2977 char *pa_machine_id(void);
2978 char *pa_session_id(void);
2979 char *pa_uname_string(void);
2980 pa_bool_t pa_in_valgrind(void);
2981 unsigned pa_gcd(unsigned a, unsigned b);
2982 void pa_reduce(unsigned *num, unsigned *den);
2983 unsigned pa_ncpus(void);
2984 char *pa_replace(const char*s, const char*a, const char *b);
2985 char *pa_unescape(char *p);
2986 char *pa_realpath(const char *path);
2987 void pa_disable_sigpipe(void);
2988 void pa_xfreev(void**a);
2989 static inline void pa_xstrfreev(char **a) {
2990 pa_xfreev((void**) a);
2991 }
2992 char **pa_split_spaces_strv(const char *s);
2993 char* pa_maybe_prefix_path(const char *path, const char *prefix);
2994 size_t pa_pipe_buf(int fd);
2995 void pa_reset_personality(void);
2996 const char *pa_get_temp_dir(void);
2997 typedef enum pa_cpu_x86_flag {
2998 PA_CPU_X86_MMX = (1 << 0),
2999 PA_CPU_X86_MMXEXT = (1 << 1),
3000 PA_CPU_X86_SSE = (1 << 2),
3001 PA_CPU_X86_SSE2 = (1 << 3),
3002 PA_CPU_X86_SSE3 = (1 << 4),
3003 PA_CPU_X86_SSSE3 = (1 << 5),
3004 PA_CPU_X86_SSE4_1 = (1 << 6),
3005 PA_CPU_X86_SSE4_2 = (1 << 7),
3006 PA_CPU_X86_3DNOW = (1 << 8),
3007 PA_CPU_X86_3DNOWEXT = (1 << 9)
3008 } pa_cpu_x86_flag_t;
3009 void pa_cpu_init_x86 (void);
3010 typedef int64_t pa_reg_x86;
3011 void pa_volume_func_init_mmx(pa_cpu_x86_flag_t flags);
3012 void pa_volume_func_init_sse(pa_cpu_x86_flag_t flags);
3013 void pa_remap_func_init_mmx(pa_cpu_x86_flag_t flags);
3014 void pa_remap_func_init_sse(pa_cpu_x86_flag_t flags);
3015 void pa_convert_func_init_sse (pa_cpu_x86_flag_t flags);
3016 typedef enum pa_channel_position {
3017 PA_CHANNEL_POSITION_INVALID = -1,
3018 PA_CHANNEL_POSITION_MONO = 0,
3019 PA_CHANNEL_POSITION_FRONT_LEFT,
3020 PA_CHANNEL_POSITION_FRONT_RIGHT,
3021 PA_CHANNEL_POSITION_FRONT_CENTER,
3022 PA_CHANNEL_POSITION_LEFT = PA_CHANNEL_POSITION_FRONT_LEFT,
3023 PA_CHANNEL_POSITION_RIGHT = PA_CHANNEL_POSITION_FRONT_RIGHT,
3024 PA_CHANNEL_POSITION_CENTER = PA_CHANNEL_POSITION_FRONT_CENTER,
3025 PA_CHANNEL_POSITION_REAR_CENTER,
3026 PA_CHANNEL_POSITION_REAR_LEFT,
3027 PA_CHANNEL_POSITION_REAR_RIGHT,
3028 PA_CHANNEL_POSITION_LFE,
3029 PA_CHANNEL_POSITION_SUBWOOFER = PA_CHANNEL_POSITION_LFE,
3030 PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
3031 PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
3032 PA_CHANNEL_POSITION_SIDE_LEFT,
3033 PA_CHANNEL_POSITION_SIDE_RIGHT,
3034 PA_CHANNEL_POSITION_AUX0,
3035 PA_CHANNEL_POSITION_AUX1,
3036 PA_CHANNEL_POSITION_AUX2,
3037 PA_CHANNEL_POSITION_AUX3,
3038 PA_CHANNEL_POSITION_AUX4,
3039 PA_CHANNEL_POSITION_AUX5,
3040 PA_CHANNEL_POSITION_AUX6,
3041 PA_CHANNEL_POSITION_AUX7,
3042 PA_CHANNEL_POSITION_AUX8,
3043 PA_CHANNEL_POSITION_AUX9,
3044 PA_CHANNEL_POSITION_AUX10,
3045 PA_CHANNEL_POSITION_AUX11,
3046 PA_CHANNEL_POSITION_AUX12,
3047 PA_CHANNEL_POSITION_AUX13,
3048 PA_CHANNEL_POSITION_AUX14,
3049 PA_CHANNEL_POSITION_AUX15,
3050 PA_CHANNEL_POSITION_AUX16,
3051 PA_CHANNEL_POSITION_AUX17,
3052 PA_CHANNEL_POSITION_AUX18,
3053 PA_CHANNEL_POSITION_AUX19,
3054 PA_CHANNEL_POSITION_AUX20,
3055 PA_CHANNEL_POSITION_AUX21,
3056 PA_CHANNEL_POSITION_AUX22,
3057 PA_CHANNEL_POSITION_AUX23,
3058 PA_CHANNEL_POSITION_AUX24,
3059 PA_CHANNEL_POSITION_AUX25,
3060 PA_CHANNEL_POSITION_AUX26,
3061 PA_CHANNEL_POSITION_AUX27,
3062 PA_CHANNEL_POSITION_AUX28,
3063 PA_CHANNEL_POSITION_AUX29,
3064 PA_CHANNEL_POSITION_AUX30,
3065 PA_CHANNEL_POSITION_AUX31,
3066 PA_CHANNEL_POSITION_TOP_CENTER,
3067 PA_CHANNEL_POSITION_TOP_FRONT_LEFT,
3068 PA_CHANNEL_POSITION_TOP_FRONT_RIGHT,
3069 PA_CHANNEL_POSITION_TOP_FRONT_CENTER,
3070 PA_CHANNEL_POSITION_TOP_REAR_LEFT,
3071 PA_CHANNEL_POSITION_TOP_REAR_RIGHT,
3072 PA_CHANNEL_POSITION_TOP_REAR_CENTER,
3073 PA_CHANNEL_POSITION_MAX
3074 } pa_channel_position_t;
3075 typedef uint64_t pa_channel_position_mask_t;
3076 typedef enum pa_channel_map_def {
3077 PA_CHANNEL_MAP_AIFF,
3078 PA_CHANNEL_MAP_ALSA,
3079 PA_CHANNEL_MAP_AUX,
3080 PA_CHANNEL_MAP_WAVEEX,
3081 PA_CHANNEL_MAP_OSS,
3082 PA_CHANNEL_MAP_DEF_MAX,
3083 PA_CHANNEL_MAP_DEFAULT = PA_CHANNEL_MAP_AIFF
3084 } pa_channel_map_def_t;
3085 typedef struct pa_channel_map {
3086 uint8_t channels;
3087 pa_channel_position_t map[32U];
3088 } pa_channel_map;
3089 pa_channel_map* pa_channel_map_init(pa_channel_map *m);
3090 pa_channel_map* pa_channel_map_init_mono(pa_channel_map *m);
3091 pa_channel_map* pa_channel_map_init_stereo(pa_channel_map *m);
3092 pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
3093 pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
3094 const char* pa_channel_position_to_string(pa_channel_position_t pos) __attribute__ ((pure));
3095 pa_channel_position_t pa_channel_position_from_string(const char *s) __attribute__ ((pure));
3096 const char* pa_channel_position_to_pretty_string(pa_channel_position_t pos);
3097 char* pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map);
3098 pa_channel_map *pa_channel_map_parse(pa_channel_map *map, const char *s);
3099 int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b) __attribute__ ((pure));
3100 int pa_channel_map_valid(const pa_channel_map *map) __attribute__ ((pure));
3101 int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *ss) __attribute__ ((pure));
3102 int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) __attribute__ ((pure));
3103 int pa_channel_map_can_balance(const pa_channel_map *map) __attribute__ ((pure));
3104 int pa_channel_map_can_fade(const pa_channel_map *map) __attribute__ ((pure));
3105 const char* pa_channel_map_to_name(const pa_channel_map *map) __attribute__ ((pure));
3106 const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) __attribute__ ((pure));
3107 int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t p) __attribute__ ((pure));
3108 pa_channel_position_mask_t pa_channel_map_mask(const pa_channel_map *map) __attribute__ ((pure));
3109 typedef uint32_t pa_volume_t;
3110 typedef struct pa_cvolume {
3111 uint8_t channels;
3112 pa_volume_t values[32U];
3113 } pa_cvolume;
3114 int pa_cvolume_equal(const pa_cvolume *a, const pa_cvolume *b) __attribute__ ((pure));
3115 pa_cvolume* pa_cvolume_init(pa_cvolume *a);
3116 pa_cvolume* pa_cvolume_set(pa_cvolume *a, unsigned channels, pa_volume_t v);
3117 char *pa_cvolume_snprint(char *s, size_t l, const pa_cvolume *c);
3118 char *pa_sw_cvolume_snprint_dB(char *s, size_t l, const pa_cvolume *c);
3119 char *pa_volume_snprint(char *s, size_t l, pa_volume_t v);
3120 char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v);
3121 pa_volume_t pa_cvolume_avg(const pa_cvolume *a) __attribute__ ((pure));
3122 pa_volume_t pa_cvolume_avg_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3123 pa_volume_t pa_cvolume_max(const pa_cvolume *a) __attribute__ ((pure));
3124 pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3125 pa_volume_t pa_cvolume_min(const pa_cvolume *a) __attribute__ ((pure));
3126 pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3127 int pa_cvolume_valid(const pa_cvolume *v) __attribute__ ((pure));
3128 int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) __attribute__ ((pure));
3129 pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) __attribute__ ((const));
3130 pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3131 pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b);
3132 pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) __attribute__ ((const));
3133 pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3134 pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b);
3135 pa_volume_t pa_sw_volume_from_dB(double f) __attribute__ ((const));
3136 double pa_sw_volume_to_dB(pa_volume_t v) __attribute__ ((const));
3137 pa_volume_t pa_sw_volume_from_linear(double v) __attribute__ ((const));
3138 double pa_sw_volume_to_linear(pa_volume_t v) __attribute__ ((const));
3139 pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to);
3140 int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) __attribute__ ((pure));
3141 int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) __attribute__ ((pure));
3142 float pa_cvolume_get_balance(const pa_cvolume *v, const pa_channel_map *map) __attribute__ ((pure));
3143 pa_cvolume* pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance);
3144 float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) __attribute__ ((pure));
3145 pa_cvolume* pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float new_fade);
3146 pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max);
3147 pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map *cm, pa_channel_position_mask_t mask);
3148 pa_cvolume* pa_cvolume_set_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t, pa_volume_t v);
3149 pa_volume_t pa_cvolume_get_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t) __attribute__ ((pure));
3150 pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3151 pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc);
3152 pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec);
3153 struct timezone
3154 {
3155 int tz_minuteswest;
3156 int tz_dsttime;
3157 };
3158 typedef struct timezone *__restrict __timezone_ptr_t;
3159 extern int gettimeofday (struct timeval *__restrict __tv,
3160 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3161 extern int settimeofday (__const struct timeval *__tv,
3162 __const struct timezone *__tz)
3163 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3164 extern int adjtime (__const struct timeval *__delta,
3165 struct timeval *__olddelta) __attribute__ ((__nothrow__));
3166 enum __itimer_which
3167 {
3168 ITIMER_REAL = 0,
3169 ITIMER_VIRTUAL = 1,
3170 ITIMER_PROF = 2
3171 };
3172 struct itimerval
3173 {
3174 struct timeval it_interval;
3175 struct timeval it_value;
3176 };
3177 typedef enum __itimer_which __itimer_which_t;
3178 extern int getitimer (__itimer_which_t __which,
3179 struct itimerval *__value) __attribute__ ((__nothrow__));
3180 extern int setitimer (__itimer_which_t __which,
3181 __const struct itimerval *__restrict __new,
3182 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
3183 extern int utimes (__const char *__file, __const struct timeval __tvp[2])
3184 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3185 extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
3186 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3187 extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3188 extern int futimesat (int __fd, __const char *__file,
3189 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3190 struct tm
3191 {
3192 int tm_sec;
3193 int tm_min;
3194 int tm_hour;
3195 int tm_mday;
3196 int tm_mon;
3197 int tm_year;
3198 int tm_wday;
3199 int tm_yday;
3200 int tm_isdst;
3201 long int tm_gmtoff;
3202 __const char *tm_zone;
3203 };
3204 struct itimerspec
3205 {
3206 struct timespec it_interval;
3207 struct timespec it_value;
3208 };
3209 struct sigevent;
3210 extern clock_t clock (void) __attribute__ ((__nothrow__));
3211 extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
3212 extern double difftime (time_t __time1, time_t __time0)
3213 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3214 extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
3215 extern size_t strftime (char *__restrict __s, size_t __maxsize,
3216 __const char *__restrict __format,
3217 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3218 extern char *strptime (__const char *__restrict __s,
3219 __const char *__restrict __fmt, struct tm *__tp)
3220 __attribute__ ((__nothrow__));
3221 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
3222 __const char *__restrict __format,
3223 __const struct tm *__restrict __tp,
3224 __locale_t __loc) __attribute__ ((__nothrow__));
3225 extern char *strptime_l (__const char *__restrict __s,
3226 __const char *__restrict __fmt, struct tm *__tp,
3227 __locale_t __loc) __attribute__ ((__nothrow__));
3228 extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3229 extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3230 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3231 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3232 extern struct tm *localtime_r (__const time_t *__restrict __timer,
3233 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3234 extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
3235 extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
3236 extern char *asctime_r (__const struct tm *__restrict __tp,
3237 char *__restrict __buf) __attribute__ ((__nothrow__));
3238 extern char *ctime_r (__const time_t *__restrict __timer,
3239 char *__restrict __buf) __attribute__ ((__nothrow__));
3240 extern char *__tzname[2];
3241 extern int __daylight;
3242 extern long int __timezone;
3243 extern char *tzname[2];
3244 extern void tzset (void) __attribute__ ((__nothrow__));
3245 extern int daylight;
3246 extern long int timezone;
3247 extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
3248 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
3249 extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
3250 extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3251 extern int nanosleep (__const struct timespec *__requested_time,
3252 struct timespec *__remaining);
3253 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
3254 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
3255 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3256 __attribute__ ((__nothrow__));
3257 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3258 __const struct timespec *__req,
3259 struct timespec *__rem);
3260 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
3261 extern int timer_create (clockid_t __clock_id,
3262 struct sigevent *__restrict __evp,
3263 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
3264 extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
3265 extern int timer_settime (timer_t __timerid, int __flags,
3266 __const struct itimerspec *__restrict __value,
3267 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
3268 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3269 __attribute__ ((__nothrow__));
3270 extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
3271 extern int getdate_err;
3272 extern struct tm *getdate (__const char *__string);
3273 extern int getdate_r (__const char *__restrict __string,
3274 struct tm *__restrict __resbufp);
3275 typedef enum pa_context_state {
3276 PA_CONTEXT_UNCONNECTED,
3277 PA_CONTEXT_CONNECTING,
3278 PA_CONTEXT_AUTHORIZING,
3279 PA_CONTEXT_SETTING_NAME,
3280 PA_CONTEXT_READY,
3281 PA_CONTEXT_FAILED,
3282 PA_CONTEXT_TERMINATED
3283 } pa_context_state_t;
3284 static inline int PA_CONTEXT_IS_GOOD(pa_context_state_t x) {
3285 return
3286 x == PA_CONTEXT_CONNECTING ||
3287 x == PA_CONTEXT_AUTHORIZING ||
3288 x == PA_CONTEXT_SETTING_NAME ||
3289 x == PA_CONTEXT_READY;
3290 }
3291 typedef enum pa_stream_state {
3292 PA_STREAM_UNCONNECTED,
3293 PA_STREAM_CREATING,
3294 PA_STREAM_READY,
3295 PA_STREAM_FAILED,
3296 PA_STREAM_TERMINATED
3297 } pa_stream_state_t;
3298 static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) {
3299 return
3300 x == PA_STREAM_CREATING ||
3301 x == PA_STREAM_READY;
3302 }
3303 typedef enum pa_operation_state {
3304 PA_OPERATION_RUNNING,
3305 PA_OPERATION_DONE,
3306 PA_OPERATION_CANCELLED
3307 } pa_operation_state_t;
3308 typedef enum pa_context_flags {
3309 PA_CONTEXT_NOFLAGS = 0x0000U,
3310 PA_CONTEXT_NOAUTOSPAWN = 0x0001U,
3311 PA_CONTEXT_NOFAIL = 0x0002U
3312 } pa_context_flags_t;
3313 typedef enum pa_stream_direction {
3314 PA_STREAM_NODIRECTION,
3315 PA_STREAM_PLAYBACK,
3316 PA_STREAM_RECORD,
3317 PA_STREAM_UPLOAD
3318 } pa_stream_direction_t;
3319 typedef enum pa_stream_flags {
3320 PA_STREAM_NOFLAGS = 0x0000U,
3321 PA_STREAM_START_CORKED = 0x0001U,
3322 PA_STREAM_INTERPOLATE_TIMING = 0x0002U,
3323 PA_STREAM_NOT_MONOTONIC = 0x0004U,
3324 PA_STREAM_AUTO_TIMING_UPDATE = 0x0008U,
3325 PA_STREAM_NO_REMAP_CHANNELS = 0x0010U,
3326 PA_STREAM_NO_REMIX_CHANNELS = 0x0020U,
3327 PA_STREAM_FIX_FORMAT = 0x0040U,
3328 PA_STREAM_FIX_RATE = 0x0080U,
3329 PA_STREAM_FIX_CHANNELS = 0x0100,
3330 PA_STREAM_DONT_MOVE = 0x0200U,
3331 PA_STREAM_VARIABLE_RATE = 0x0400U,
3332 PA_STREAM_PEAK_DETECT = 0x0800U,
3333 PA_STREAM_START_MUTED = 0x1000U,
3334 PA_STREAM_ADJUST_LATENCY = 0x2000U,
3335 PA_STREAM_EARLY_REQUESTS = 0x4000U,
3336 PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND = 0x8000U,
3337 PA_STREAM_START_UNMUTED = 0x10000U,
3338 PA_STREAM_FAIL_ON_SUSPEND = 0x20000U
3339 } pa_stream_flags_t;
3340 typedef struct pa_buffer_attr {
3341 uint32_t maxlength;
3342 uint32_t tlength;
3343 uint32_t prebuf;
3344 uint32_t minreq;
3345 uint32_t fragsize;
3346 } pa_buffer_attr;
3347 enum {
3348 PA_OK = 0,
3349 PA_ERR_ACCESS,
3350 PA_ERR_COMMAND,
3351 PA_ERR_INVALID,
3352 PA_ERR_EXIST,
3353 PA_ERR_NOENTITY,
3354 PA_ERR_CONNECTIONREFUSED,
3355 PA_ERR_PROTOCOL,
3356 PA_ERR_TIMEOUT,
3357 PA_ERR_AUTHKEY,
3358 PA_ERR_INTERNAL,
3359 PA_ERR_CONNECTIONTERMINATED,
3360 PA_ERR_KILLED,
3361 PA_ERR_INVALIDSERVER,
3362 PA_ERR_MODINITFAILED,
3363 PA_ERR_BADSTATE,
3364 PA_ERR_NODATA,
3365 PA_ERR_VERSION,
3366 PA_ERR_TOOLARGE,
3367 PA_ERR_NOTSUPPORTED,
3368 PA_ERR_UNKNOWN,
3369 PA_ERR_NOEXTENSION,
3370 PA_ERR_OBSOLETE,
3371 PA_ERR_NOTIMPLEMENTED,
3372 PA_ERR_FORKED,
3373 PA_ERR_IO,
3374 PA_ERR_BUSY,
3375 PA_ERR_MAX
3376 };
3377 typedef enum pa_subscription_mask {
3378 PA_SUBSCRIPTION_MASK_NULL = 0x0000U,
3379 PA_SUBSCRIPTION_MASK_SINK = 0x0001U,
3380 PA_SUBSCRIPTION_MASK_SOURCE = 0x0002U,
3381 PA_SUBSCRIPTION_MASK_SINK_INPUT = 0x0004U,
3382 PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 0x0008U,
3383 PA_SUBSCRIPTION_MASK_MODULE = 0x0010U,
3384 PA_SUBSCRIPTION_MASK_CLIENT = 0x0020U,
3385 PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 0x0040U,
3386 PA_SUBSCRIPTION_MASK_SERVER = 0x0080U,
3387 PA_SUBSCRIPTION_MASK_AUTOLOAD = 0x0100U,
3388 PA_SUBSCRIPTION_MASK_CARD = 0x0200U,
3389 PA_SUBSCRIPTION_MASK_ALL = 0x02ffU
3390 } pa_subscription_mask_t;
3391 typedef enum pa_subscription_event_type {
3392 PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
3393 PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
3394 PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
3395 PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
3396 PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
3397 PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
3398 PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
3399 PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
3400 PA_SUBSCRIPTION_EVENT_AUTOLOAD = 0x0008U,
3401 PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
3402 PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
3403 PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
3404 PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
3405 PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
3406 PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
3407 } pa_subscription_event_type_t;
3408 typedef struct pa_timing_info {
3409 struct timeval timestamp;
3410 int synchronized_clocks;
3411 pa_usec_t sink_usec;
3412 pa_usec_t source_usec;
3413 pa_usec_t transport_usec;
3414 int playing;
3415 int write_index_corrupt;
3416 int64_t write_index;
3417 int read_index_corrupt;
3418 int64_t read_index;
3419 pa_usec_t configured_sink_usec;
3420 pa_usec_t configured_source_usec;
3421 int64_t since_underrun;
3422 } pa_timing_info;
3423 typedef struct pa_spawn_api {
3424 void (*prefork)(void);
3425 void (*postfork)(void);
3426 void (*atfork)(void);
3427 } pa_spawn_api;
3428 typedef enum pa_seek_mode {
3429 PA_SEEK_RELATIVE = 0,
3430 PA_SEEK_ABSOLUTE = 1,
3431 PA_SEEK_RELATIVE_ON_READ = 2,
3432 PA_SEEK_RELATIVE_END = 3
3433 } pa_seek_mode_t;
3434 typedef enum pa_sink_flags {
3435 PA_SINK_NOFLAGS = 0x0000U,
3436 PA_SINK_HW_VOLUME_CTRL = 0x0001U,
3437 PA_SINK_LATENCY = 0x0002U,
3438 PA_SINK_HARDWARE = 0x0004U,
3439 PA_SINK_NETWORK = 0x0008U,
3440 PA_SINK_HW_MUTE_CTRL = 0x0010U,
3441 PA_SINK_DECIBEL_VOLUME = 0x0020U,
3442 PA_SINK_FLAT_VOLUME = 0x0040U,
3443 PA_SINK_DYNAMIC_LATENCY = 0x0080U
3444 } pa_sink_flags_t;
3445 typedef enum pa_sink_state {
3446 PA_SINK_INVALID_STATE = -1,
3447 PA_SINK_RUNNING = 0,
3448 PA_SINK_IDLE = 1,
3449 PA_SINK_SUSPENDED = 2,
3450 PA_SINK_INIT = -2,
3451 PA_SINK_UNLINKED = -3
3452 } pa_sink_state_t;
3453 static inline int PA_SINK_IS_OPENED(pa_sink_state_t x) {
3454 return x == PA_SINK_RUNNING || x == PA_SINK_IDLE;
3455 }
3456 typedef enum pa_source_flags {
3457 PA_SOURCE_NOFLAGS = 0x0000U,
3458 PA_SOURCE_HW_VOLUME_CTRL = 0x0001U,
3459 PA_SOURCE_LATENCY = 0x0002U,
3460 PA_SOURCE_HARDWARE = 0x0004U,
3461 PA_SOURCE_NETWORK = 0x0008U,
3462 PA_SOURCE_HW_MUTE_CTRL = 0x0010U,
3463 PA_SOURCE_DECIBEL_VOLUME = 0x0020U,
3464 PA_SOURCE_DYNAMIC_LATENCY = 0x0040U
3465 } pa_source_flags_t;
3466 typedef enum pa_source_state {
3467 PA_SOURCE_INVALID_STATE = -1,
3468 PA_SOURCE_RUNNING = 0,
3469 PA_SOURCE_IDLE = 1,
3470 PA_SOURCE_SUSPENDED = 2,
3471 PA_SOURCE_INIT = -2,
3472 PA_SOURCE_UNLINKED = -3
3473 } pa_source_state_t;
3474 static inline int PA_SOURCE_IS_OPENED(pa_source_state_t x) {
3475 return x == PA_SOURCE_RUNNING || x == PA_SOURCE_IDLE;
3476 }
3477 typedef void (*pa_free_cb_t)(void *p);
3478 typedef struct pa_atomic {
3479 volatile int value;
3480 } pa_atomic_t;
3481 static inline int pa_atomic_load(const pa_atomic_t *a) {
3482 __sync_synchronize();
3483 return a->value;
3484 }
3485 static inline void pa_atomic_store(pa_atomic_t *a, int i) {
3486 a->value = i;
3487 __sync_synchronize();
3488 }
3489 static inline int pa_atomic_add(pa_atomic_t *a, int i) {
3490 return __sync_fetch_and_add(&a->value, i);
3491 }
3492 static inline int pa_atomic_sub(pa_atomic_t *a, int i) {
3493 return __sync_fetch_and_sub(&a->value, i);
3494 }
3495 static inline int pa_atomic_inc(pa_atomic_t *a) {
3496 return pa_atomic_add(a, 1);
3497 }
3498 static inline int pa_atomic_dec(pa_atomic_t *a) {
3499 return pa_atomic_sub(a, 1);
3500 }
3501 static inline pa_bool_t pa_atomic_cmpxchg(pa_atomic_t *a, int old_i, int new_i) {
3502 return __sync_bool_compare_and_swap(&a->value, old_i, new_i);
3503 }
3504 typedef struct pa_atomic_ptr {
3505 volatile unsigned long value;
3506 } pa_atomic_ptr_t;
3507 static inline void* pa_atomic_ptr_load(const pa_atomic_ptr_t *a) {
3508 __sync_synchronize();
3509 return (void*) a->value;
3510 }
3511 static inline void pa_atomic_ptr_store(pa_atomic_ptr_t *a, void *p) {
3512 a->value = (unsigned long) p;
3513 __sync_synchronize();
3514 }
3515 static inline pa_bool_t pa_atomic_ptr_cmpxchg(pa_atomic_ptr_t *a, void *old_p, void* new_p) {
3516 return __sync_bool_compare_and_swap(&a->value, (long) old_p, (long) new_p);
3517 }
3518 typedef enum pa_memblock_type {
3519 PA_MEMBLOCK_POOL,
3520 PA_MEMBLOCK_POOL_EXTERNAL,
3521 PA_MEMBLOCK_APPENDED,
3522 PA_MEMBLOCK_USER,
3523 PA_MEMBLOCK_FIXED,
3524 PA_MEMBLOCK_IMPORTED,
3525 PA_MEMBLOCK_TYPE_MAX
3526 } pa_memblock_type_t;
3527 typedef struct pa_memblock pa_memblock;
3528 typedef struct pa_mempool pa_mempool;
3529 typedef struct pa_mempool_stat pa_mempool_stat;
3530 typedef struct pa_memimport_segment pa_memimport_segment;
3531 typedef struct pa_memimport pa_memimport;
3532 typedef struct pa_memexport pa_memexport;
3533 typedef void (*pa_memimport_release_cb_t)(pa_memimport *i, uint32_t block_id, void *userdata);
3534 typedef void (*pa_memexport_revoke_cb_t)(pa_memexport *e, uint32_t block_id, void *userdata);
3535 struct pa_mempool_stat {
3536 pa_atomic_t n_allocated;
3537 pa_atomic_t n_accumulated;
3538 pa_atomic_t n_imported;
3539 pa_atomic_t n_exported;
3540 pa_atomic_t allocated_size;
3541 pa_atomic_t accumulated_size;
3542 pa_atomic_t imported_size;
3543 pa_atomic_t exported_size;
3544 pa_atomic_t n_too_large_for_pool;
3545 pa_atomic_t n_pool_full;
3546 pa_atomic_t n_allocated_by_type[PA_MEMBLOCK_TYPE_MAX];
3547 pa_atomic_t n_accumulated_by_type[PA_MEMBLOCK_TYPE_MAX];
3548 };
3549 pa_memblock *pa_memblock_new(pa_mempool *, size_t length);
3550 pa_memblock *pa_memblock_new_pool(pa_mempool *, size_t length);
3551 pa_memblock *pa_memblock_new_user(pa_mempool *, void *data, size_t length, pa_free_cb_t free_cb, pa_bool_t read_only);
3552 pa_memblock *pa_memblock_new_fixed(pa_mempool *, void *data, size_t length, pa_bool_t read_only);
3553 void pa_memblock_unref(pa_memblock*b);
3554 pa_memblock* pa_memblock_ref(pa_memblock*b);
3555 void pa_memblock_unref_fixed(pa_memblock*b);
3556 pa_bool_t pa_memblock_is_read_only(pa_memblock *b);
3557 pa_bool_t pa_memblock_is_silence(pa_memblock *b);
3558 pa_bool_t pa_memblock_ref_is_one(pa_memblock *b);
3559 void pa_memblock_set_is_silence(pa_memblock *b, pa_bool_t v);
3560 void* pa_memblock_acquire(pa_memblock *b);
3561 void pa_memblock_release(pa_memblock *b);
3562 size_t pa_memblock_get_length(pa_memblock *b);
3563 pa_mempool * pa_memblock_get_pool(pa_memblock *b);
3564 pa_memblock *pa_memblock_will_need(pa_memblock *b);
3565 pa_mempool* pa_mempool_new(pa_bool_t shared, size_t size);
3566 void pa_mempool_free(pa_mempool *p);
3567 const pa_mempool_stat* pa_mempool_get_stat(pa_mempool *p);
3568 void pa_mempool_vacuum(pa_mempool *p);
3569 int pa_mempool_get_shm_id(pa_mempool *p, uint32_t *id);
3570 pa_bool_t pa_mempool_is_shared(pa_mempool *p);
3571 size_t pa_mempool_block_size_max(pa_mempool *p);
3572 pa_memimport* pa_memimport_new(pa_mempool *p, pa_memimport_release_cb_t cb, void *userdata);
3573 void pa_memimport_free(pa_memimport *i);
3574 pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_id, size_t offset, size_t size);
3575 int pa_memimport_process_revoke(pa_memimport *i, uint32_t block_id);
3576 pa_memexport* pa_memexport_new(pa_mempool *p, pa_memexport_revoke_cb_t cb, void *userdata);
3577 void pa_memexport_free(pa_memexport *e);
3578 int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, uint32_t *shm_id, size_t *offset, size_t *size);
3579 int pa_memexport_process_release(pa_memexport *e, uint32_t id);
3580 typedef struct pa_memchunk {
3581 pa_memblock *memblock;
3582 size_t index, length;
3583 } pa_memchunk;
3584 pa_memchunk* pa_memchunk_make_writable(pa_memchunk *c, size_t min);
3585 pa_memchunk* pa_memchunk_reset(pa_memchunk *c);
3586 pa_memchunk *pa_memchunk_will_need(const pa_memchunk *c);
3587 pa_memchunk* pa_memchunk_memcpy(pa_memchunk *dst, pa_memchunk *src);
3588 typedef struct pa_silence_cache {
3589 pa_memblock* blocks[PA_SAMPLE_MAX];
3590 } pa_silence_cache;
3591 void pa_silence_cache_init(pa_silence_cache *cache);
3592 void pa_silence_cache_done(pa_silence_cache *cache);
3593 void *pa_silence_memory(void *p, size_t length, const pa_sample_spec *spec);
3594 pa_memchunk* pa_silence_memchunk(pa_memchunk *c, const pa_sample_spec *spec);
3595 pa_memblock* pa_silence_memblock(pa_memblock *b, const pa_sample_spec *spec);
3596 pa_memchunk* pa_silence_memchunk_get(pa_silence_cache *cache, pa_mempool *pool, pa_memchunk* ret, const pa_sample_spec *spec, size_t length);
3597 typedef struct pa_mix_info {
3598 pa_memchunk chunk;
3599 pa_cvolume volume;
3600 void *userdata;
3601 void *ptr;
3602 union {
3603 int32_t i;
3604 float f;
3605 } linear[32U];
3606 } pa_mix_info;
3607 size_t pa_mix(
3608 pa_mix_info channels[],
3609 unsigned nchannels,
3610 void *data,
3611 size_t length,
3612 const pa_sample_spec *spec,
3613 const pa_cvolume *volume,
3614 pa_bool_t mute);
3615 void pa_volume_memchunk(
3616 pa_memchunk*c,
3617 const pa_sample_spec *spec,
3618 const pa_cvolume *volume);
3619 size_t pa_frame_align(size_t l, const pa_sample_spec *ss) __attribute__ ((pure));
3620 pa_bool_t pa_frame_aligned(size_t l, const pa_sample_spec *ss) __attribute__ ((pure));
3621 void pa_interleave(const void *src[], unsigned channels, void *dst, size_t ss, unsigned n);
3622 void pa_deinterleave(const void *src, void *dst[], unsigned channels, size_t ss, unsigned n);
3623 void pa_sample_clamp(pa_sample_format_t format, void *dst, size_t dstr, const void *src, size_t sstr, unsigned n);
3624 pa_usec_t pa_bytes_to_usec_round_up(uint64_t length, const pa_sample_spec *spec);
3625 size_t pa_usec_to_bytes_round_up(pa_usec_t t, const pa_sample_spec *spec);
3626 void pa_memchunk_dump_to_file(pa_memchunk *c, const char *fn);
3627 void pa_memchunk_sine(pa_memchunk *c, pa_mempool *pool, unsigned rate, unsigned freq);
3628 typedef void (*pa_do_volume_func_t) (void *samples, void *volumes, unsigned channels, unsigned length);
3629 pa_do_volume_func_t pa_get_volume_func(pa_sample_format_t f);
3630 void pa_set_volume_func(pa_sample_format_t f, pa_do_volume_func_t func);
3631 size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to);
3632 static inline uint32_t PA_READ24BE(const uint8_t *p) {
3633 return
3634 ((uint32_t) p[0] << 16) |
3635 ((uint32_t) p[1] << 8) |
3636 ((uint32_t) p[2]);
3637 }
3638 static inline uint32_t PA_READ24LE(const uint8_t *p) {
3639 return
3640 ((uint32_t) p[2] << 16) |
3641 ((uint32_t) p[1] << 8) |
3642 ((uint32_t) p[0]);
3643 }
3644 static inline void PA_WRITE24BE(uint8_t *p, uint32_t u) {
3645 p[0] = (uint8_t) (u >> 16);
3646 p[1] = (uint8_t) (u >> 8);
3647 p[2] = (uint8_t) u;
3648 }
3649 static inline void PA_WRITE24LE(uint8_t *p, uint32_t u) {
3650 p[2] = (uint8_t) (u >> 16);
3651 p[1] = (uint8_t) (u >> 8);
3652 p[0] = (uint8_t) u;
3653 }
3654 static inline float PA_FLOAT32_SWAP(float x) {
3655 union {
3656 float f;
3657 uint32_t u;
3658 } t;
3659 t.f = x;
3660 t.u = ((uint32_t) (__extension__ ({ register unsigned int __v, __x = ((uint32_t) t.u); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; })));
3661 return t.f;
3662 }
3663 static void
3664 pa_volume_s16ne_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
3665 {
3666 pa_reg_x86 channel, temp;
3667 channels = __extension__ ({ typeof(4U) _a = (4U); typeof(channels) _b = (channels); _a > _b ? _a : _b; });
3668 __asm__ __volatile__ (
3669 " xor %3, %3 \n\t"
3670 " sar $1, %2 \n\t"
3671 " test $1, %2 \n\t"
3672 " je 2f \n\t"
3673 " movd (%1, %3, 4), %%mm0 \n\t"
3674 " movw (%0), %w4 \n\t"
3675 " movd %4, %%mm1 \n\t"
3676 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3677 " movd %%mm0, %4 \n\t"
3678 " movw %w4, (%0) \n\t"
3679 " add $2, %0 \n\t"
3680 " add ""$1"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3681 "2: \n\t"
3682 " sar $1, %2 \n\t"
3683 " test $1, %2 \n\t"
3684 " je 4f \n\t"
3685 "3: \n\t"
3686 " movq (%1, %3, 4), %%mm0 \n\t"
3687 " movd (%0), %%mm1 \n\t"
3688 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3689 " movd %%mm0, (%0) \n\t"
3690 " add $4, %0 \n\t"
3691 " add ""$2"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3692 "4: \n\t"
3693 " sar $1, %2 \n\t"
3694 " cmp $0, %2 \n\t"
3695 " je 6f \n\t"
3696 "5: \n\t"
3697 " movq (%1, %3, 4), %%mm0 \n\t"
3698 " movq 8(%1, %3, 4), %%mm2 \n\t"
3699 " movd (%0), %%mm1 \n\t"
3700 " movd 4(%0), %%mm3 \n\t"
3701 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3702 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm3"" \n\t" " pcmpgtw ""%%mm2"", %%mm4 \n\t" " pand ""%%mm3"", %%mm4 \n\t" " movq ""%%mm3"", %%mm5 \n\t" " pmulhw ""%%mm2"", ""%%mm3"" \n\t" " paddw %%mm4, ""%%mm3"" \n\t" " psrld $16, ""%%mm2"" \n\t" " pmaddwd %%mm5, ""%%mm2"" \n\t" " paddd ""%%mm3"", ""%%mm2"" \n\t" " packssdw ""%%mm2"", ""%%mm2"" \n\t"
3703 " movd %%mm0, (%0) \n\t"
3704 " movd %%mm2, 4(%0) \n\t"
3705 " add $8, %0 \n\t"
3706 " add ""$4"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3707 " dec %2 \n\t"
3708 " jne 5b \n\t"
3709 "6: \n\t"
3710 " emms \n\t"
3711 : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp)
3712 : "X" ((pa_reg_x86)channels)
3713 : "cc"
3714 );
3715 }
3716 static void
3717 pa_volume_s16re_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
3718 {
3719 pa_reg_x86 channel, temp;
3720 channels = __extension__ ({ typeof(4U) _a = (4U); typeof(channels) _b = (channels); _a > _b ? _a : _b; });
3721 __asm__ __volatile__ (
3722 " xor %3, %3 \n\t"
3723 " sar $1, %2 \n\t"
3724 " pcmpeqw %%mm6, %%mm6 \n\t"
3725 " pcmpeqw %%mm7, %%mm7 \n\t"
3726 " pslld $16, %%mm6 \n\t"
3727 " psrld $31, %%mm7 \n\t"
3728 " test $1, %2 \n\t"
3729 " je 2f \n\t"
3730 " movd (%1, %3, 4), %%mm0 \n\t"
3731 " movw (%0), %w4 \n\t"
3732 " rorw $8, %w4 \n\t"
3733 " movd %4, %%mm1 \n\t"
3734 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3735 " movd %%mm0, %4 \n\t"
3736 " rorw $8, %w4 \n\t"
3737 " movw %w4, (%0) \n\t"
3738 " add $2, %0 \n\t"
3739 " add ""$1"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3740 "2: \n\t"
3741 " sar $1, %2 \n\t"
3742 " test $1, %2 \n\t"
3743 " je 4f \n\t"
3744 "3: \n\t"
3745 " movq (%1, %3, 4), %%mm0 \n\t"
3746 " movd (%0), %%mm1 \n\t"
3747 " movq ""%%mm1"", %%mm4 \n\t" " psrlw $8, %%mm4 \n\t" " psllw $8, ""%%mm1"" \n\t" " por %%mm4, ""%%mm1"" \n\t"
3748 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3749 " movq ""%%mm0"", %%mm4 \n\t" " psrlw $8, %%mm4 \n\t" " psllw $8, ""%%mm0"" \n\t" " por %%mm4, ""%%mm0"" \n\t"
3750 " movd %%mm0, (%0) \n\t"
3751 " add $4, %0 \n\t"
3752 " add ""$2"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3753 "4: \n\t"
3754 " sar $1, %2 \n\t"
3755 " cmp $0, %2 \n\t"
3756 " je 6f \n\t"
3757 "5: \n\t"
3758 " movq (%1, %3, 4), %%mm0 \n\t"
3759 " movq 8(%1, %3, 4), %%mm2 \n\t"
3760 " movd (%0), %%mm1 \n\t"
3761 " movd 4(%0), %%mm3 \n\t"
3762 " movq ""%%mm1"", %%mm4 \n\t" " movq ""%%mm3"", %%mm5 \n\t" " psrlw $8, %%mm4 \n\t" " psrlw $8, %%mm5 \n\t" " psllw $8, ""%%mm1"" \n\t" " psllw $8, ""%%mm3"" \n\t" " por %%mm4, ""%%mm1"" \n\t" " por %%mm5, ""%%mm3"" \n\t"
3763 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm1"" \n\t" " pcmpgtw ""%%mm0"", %%mm4 \n\t" " pand ""%%mm1"", %%mm4 \n\t" " movq ""%%mm1"", %%mm5 \n\t" " pmulhw ""%%mm0"", ""%%mm1"" \n\t" " paddw %%mm4, ""%%mm1"" \n\t" " psrld $16, ""%%mm0"" \n\t" " pmaddwd %%mm5, ""%%mm0"" \n\t" " paddd ""%%mm1"", ""%%mm0"" \n\t" " packssdw ""%%mm0"", ""%%mm0"" \n\t"
3764 " pxor %%mm4, %%mm4 \n\t" " punpcklwd %%mm4, ""%%mm3"" \n\t" " pcmpgtw ""%%mm2"", %%mm4 \n\t" " pand ""%%mm3"", %%mm4 \n\t" " movq ""%%mm3"", %%mm5 \n\t" " pmulhw ""%%mm2"", ""%%mm3"" \n\t" " paddw %%mm4, ""%%mm3"" \n\t" " psrld $16, ""%%mm2"" \n\t" " pmaddwd %%mm5, ""%%mm2"" \n\t" " paddd ""%%mm3"", ""%%mm2"" \n\t" " packssdw ""%%mm2"", ""%%mm2"" \n\t"
3765 " movq ""%%mm0"", %%mm4 \n\t" " movq ""%%mm2"", %%mm5 \n\t" " psrlw $8, %%mm4 \n\t" " psrlw $8, %%mm5 \n\t" " psllw $8, ""%%mm0"" \n\t" " psllw $8, ""%%mm2"" \n\t" " por %%mm4, ""%%mm0"" \n\t" " por %%mm5, ""%%mm2"" \n\t"
3766 " movd %%mm0, (%0) \n\t"
3767 " movd %%mm2, 4(%0) \n\t"
3768 " add $8, %0 \n\t"
3769 " add ""$4"", %3 \n\t" " mov %3, %4 \n\t" " sub ""%5"", %4 \n\t" " cmovae %4, %3 \n\t"
3770 " dec %2 \n\t"
3771 " jne 5b \n\t"
3772 "6: \n\t"
3773 " emms \n\t"
3774 : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp)
3775 : "X" ((pa_reg_x86)channels)
3776 : "cc"
3777 );
3778 }
3779 void pa_volume_func_init_mmx (pa_cpu_x86_flag_t flags) {
3780 if (flags & PA_CPU_X86_MMX) {
3781 pa_log_level_meta(PA_LOG_INFO, "pulsecore/svolume_mmx.c", 304, __func__, "Initialising MMX optimized functions.");
3782 pa_set_volume_func (PA_SAMPLE_S16LE, (pa_do_volume_func_t) pa_volume_s16ne_mmx);
3783 pa_set_volume_func (PA_SAMPLE_S16BE, (pa_do_volume_func_t) pa_volume_s16re_mmx);
3784 }
3785 }