]> git.wh0rd.org - ICEs.git/blame - 287391/svolume_mmx.i.1
more ices
[ICEs.git] / 287391 / svolume_mmx.i.1
CommitLineData
81f80d8c
MF
1typedef signed char int8_t;
2typedef short int int16_t;
3typedef int int32_t;
4typedef long int int64_t;
5typedef unsigned char uint8_t;
6typedef unsigned short int uint16_t;
7typedef unsigned int uint32_t;
8typedef unsigned long int uint64_t;
9typedef signed char int_least8_t;
10typedef short int int_least16_t;
11typedef int int_least32_t;
12typedef long int int_least64_t;
13typedef unsigned char uint_least8_t;
14typedef unsigned short int uint_least16_t;
15typedef unsigned int uint_least32_t;
16typedef unsigned long int uint_least64_t;
17typedef signed char int_fast8_t;
18typedef long int int_fast16_t;
19typedef long int int_fast32_t;
20typedef long int int_fast64_t;
21typedef unsigned char uint_fast8_t;
22typedef unsigned long int uint_fast16_t;
23typedef unsigned long int uint_fast32_t;
24typedef unsigned long int uint_fast64_t;
25typedef long int intptr_t;
26typedef unsigned long int uintptr_t;
27typedef long int intmax_t;
28typedef unsigned long int uintmax_t;
29typedef int __gwchar_t;
30typedef struct
31 {
32 long int quot;
33 long int rem;
34 } imaxdiv_t;
35extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
36extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
37 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
38extern intmax_t strtoimax (__const char *__restrict __nptr,
39 char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
40extern uintmax_t strtoumax (__const char *__restrict __nptr,
41 char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
42extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
43 __gwchar_t **__restrict __endptr, int __base)
44 __attribute__ ((__nothrow__));
45extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
46 __gwchar_t ** __restrict __endptr, int __base)
47 __attribute__ ((__nothrow__));
48extern 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__));
52extern __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}
57extern 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__));
62extern __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}
67extern 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__));
71extern __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}
76extern 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__));
82extern __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}
87typedef unsigned char __u_char;
88typedef unsigned short int __u_short;
89typedef unsigned int __u_int;
90typedef unsigned long int __u_long;
91typedef signed char __int8_t;
92typedef unsigned char __uint8_t;
93typedef signed short int __int16_t;
94typedef unsigned short int __uint16_t;
95typedef signed int __int32_t;
96typedef unsigned int __uint32_t;
97typedef signed long int __int64_t;
98typedef unsigned long int __uint64_t;
99typedef long int __quad_t;
100typedef unsigned long int __u_quad_t;
101typedef unsigned long int __dev_t;
102typedef unsigned int __uid_t;
103typedef unsigned int __gid_t;
104typedef unsigned long int __ino_t;
105typedef unsigned long int __ino64_t;
106typedef unsigned int __mode_t;
107typedef unsigned long int __nlink_t;
108typedef long int __off_t;
109typedef long int __off64_t;
110typedef int __pid_t;
111typedef struct { int __val[2]; } __fsid_t;
112typedef long int __clock_t;
113typedef unsigned long int __rlim_t;
114typedef unsigned long int __rlim64_t;
115typedef unsigned int __id_t;
116typedef long int __time_t;
117typedef unsigned int __useconds_t;
118typedef long int __suseconds_t;
119typedef int __daddr_t;
120typedef long int __swblk_t;
121typedef int __key_t;
122typedef int __clockid_t;
123typedef void * __timer_t;
124typedef long int __blksize_t;
125typedef long int __blkcnt_t;
126typedef long int __blkcnt64_t;
127typedef unsigned long int __fsblkcnt_t;
128typedef unsigned long int __fsblkcnt64_t;
129typedef unsigned long int __fsfilcnt_t;
130typedef unsigned long int __fsfilcnt64_t;
131typedef long int __ssize_t;
132typedef __off64_t __loff_t;
133typedef __quad_t *__qaddr_t;
134typedef char *__caddr_t;
135typedef long int __intptr_t;
136typedef unsigned int __socklen_t;
137typedef __u_char u_char;
138typedef __u_short u_short;
139typedef __u_int u_int;
140typedef __u_long u_long;
141typedef __quad_t quad_t;
142typedef __u_quad_t u_quad_t;
143typedef __fsid_t fsid_t;
144typedef __loff_t loff_t;
145typedef __ino_t ino_t;
146typedef __ino64_t ino64_t;
147typedef __dev_t dev_t;
148typedef __gid_t gid_t;
149typedef __mode_t mode_t;
150typedef __nlink_t nlink_t;
151typedef __uid_t uid_t;
152typedef __off_t off_t;
153typedef __off64_t off64_t;
154typedef __pid_t pid_t;
155typedef __id_t id_t;
156typedef __ssize_t ssize_t;
157typedef __daddr_t daddr_t;
158typedef __caddr_t caddr_t;
159typedef __key_t key_t;
160typedef __clock_t clock_t;
161typedef __time_t time_t;
162typedef __clockid_t clockid_t;
163typedef __timer_t timer_t;
164typedef __useconds_t useconds_t;
165typedef __suseconds_t suseconds_t;
166typedef long unsigned int size_t;
167typedef unsigned long int ulong;
168typedef unsigned short int ushort;
169typedef unsigned int uint;
170typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
171typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
172typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
173typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
174typedef int register_t __attribute__ ((__mode__ (__word__)));
175typedef int __sig_atomic_t;
176typedef struct
177 {
178 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
179 } __sigset_t;
180typedef __sigset_t sigset_t;
181struct timespec
182 {
183 __time_t tv_sec;
184 long int tv_nsec;
185 };
186struct timeval
187 {
188 __time_t tv_sec;
189 __suseconds_t tv_usec;
190 };
191typedef long int __fd_mask;
192typedef struct
193 {
194 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
195 } fd_set;
196typedef __fd_mask fd_mask;
197extern int select (int __nfds, fd_set *__restrict __readfds,
198 fd_set *__restrict __writefds,
199 fd_set *__restrict __exceptfds,
200 struct timeval *__restrict __timeout);
201extern 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__
207extern unsigned int gnu_dev_major (unsigned long long int __dev)
208 __attribute__ ((__nothrow__));
209__extension__
210extern unsigned int gnu_dev_minor (unsigned long long int __dev)
211 __attribute__ ((__nothrow__));
212__extension__
213extern 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}
233typedef __blksize_t blksize_t;
234typedef __blkcnt_t blkcnt_t;
235typedef __fsblkcnt_t fsblkcnt_t;
236typedef __fsfilcnt_t fsfilcnt_t;
237typedef __blkcnt64_t blkcnt64_t;
238typedef __fsblkcnt64_t fsblkcnt64_t;
239typedef __fsfilcnt64_t fsfilcnt64_t;
240typedef unsigned long int pthread_t;
241typedef union
242{
243 char __size[56];
244 long int __align;
245} pthread_attr_t;
246typedef struct __pthread_internal_list
247{
248 struct __pthread_internal_list *__prev;
249 struct __pthread_internal_list *__next;
250} __pthread_list_t;
251typedef 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;
266typedef union
267{
268 char __size[4];
269 int __align;
270} pthread_mutexattr_t;
271typedef 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;
287typedef union
288{
289 char __size[4];
290 int __align;
291} pthread_condattr_t;
292typedef unsigned int pthread_key_t;
293typedef int pthread_once_t;
294typedef 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;
313typedef union
314{
315 char __size[8];
316 long int __align;
317} pthread_rwlockattr_t;
318typedef volatile int pthread_spinlock_t;
319typedef union
320{
321 char __size[32];
322 long int __align;
323} pthread_barrier_t;
324typedef union
325{
326 char __size[4];
327 int __align;
328} pthread_barrierattr_t;
329typedef float float_t;
330typedef double double_t;
331extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
332extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
333extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
334extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
335extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
336extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
337extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
338extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
339extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
340extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
341extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__));
342extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
343extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
344extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
345extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
346extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
347extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
348extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
349extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
350extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
351extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__));
352extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__));
353extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
354extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
355extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
356extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
357extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
358extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
359extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
360extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
361extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
362extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
363extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
364extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
365extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
366extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
367extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
368extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
369extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
370extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
371extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
372extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
373extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
374extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
375extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
376extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
377extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
378extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
379extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
380extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
381extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
382extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
383extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
384extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
385extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
386extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
387extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
388extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
389extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
390extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
391extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
392extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
393extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
394extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
395extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
396extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
397extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
398extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
399extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
400extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
401extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
402extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
403extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
404extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
405extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
406extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
407 __attribute__ ((__const__));
408extern int __signbit (double __value) __attribute__ ((__nothrow__))
409 __attribute__ ((__const__));
410extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
411extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
412extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
413extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
414extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
415extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
416extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
417extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
418extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
419extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
420extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
421extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
422extern void sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); extern void __sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__));
423extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
424extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
425extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
426extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
427extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
428extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
429extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
430extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
431extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
432extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__));
433extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__));
434extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
435extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
436extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
437extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
438extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
439extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
440extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
441extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
442extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
443extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
444extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
445extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
446extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
447extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
448extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
449extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
450extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
451extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
452extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
453extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
454extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
455extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
456extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
457extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
458extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
459extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
460extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
461extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
462extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
463extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
464extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
465extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
466extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
467extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
468extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
469extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
470extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
471extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
472extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
473extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
474extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
475extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
476extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
477extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
478extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
479extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
480extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
481extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
482extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
483extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
484extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
485extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
486extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
487extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
488 __attribute__ ((__const__));
489extern int __signbitf (float __value) __attribute__ ((__nothrow__))
490 __attribute__ ((__const__));
491extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
492extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
493extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
494extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
495extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
496extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
497extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
498extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
499extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
500extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
501extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
502extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
503extern 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__));
504extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
505extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
506extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
507extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
508extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
509extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
510extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
511extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
512extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
513extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__));
514extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__));
515extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
516extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
517extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
518extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
519extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
520extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
521extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
522extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
523extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
524extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
525extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
526extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
527extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
528extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
529extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
530extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
531extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
532extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
533extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
534extern 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__));
535extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
536extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
537extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
538extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
539extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
540extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
541extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
542extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
543extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
544extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
545extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
546extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
547extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
548extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
549extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
550extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
551extern 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__));
552extern 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__));
553extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
554extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
555extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
556extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
557extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
558extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
559extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
560extern 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__));
561extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
562extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
563extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
564extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
565extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
566extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
567extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
568extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
569 __attribute__ ((__const__));
570extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
571 __attribute__ ((__const__));
572extern 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__));
573extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
574extern int signgam;
575enum
576 {
577 FP_NAN,
578 FP_INFINITE,
579 FP_ZERO,
580 FP_SUBNORMAL,
581 FP_NORMAL
582 };
583typedef enum
584{
585 _IEEE_ = -1,
586 _SVID_,
587 _XOPEN_,
588 _POSIX_,
589 _ISOC_
590} _LIB_VERSION_TYPE;
591extern _LIB_VERSION_TYPE _LIB_VERSION;
592struct exception
593 {
594 int type;
595 char *name;
596 double arg1;
597 double arg2;
598 double retval;
599 };
600extern int matherr (struct exception *__exc);
601extern __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}
607extern __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}
613extern __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}
619const char* pa_get_library_version(void);
620typedef 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;
637typedef struct pa_sample_spec {
638 pa_sample_format_t format;
639 uint32_t rate;
640 uint8_t channels;
641} pa_sample_spec;
642typedef uint64_t pa_usec_t;
643size_t pa_bytes_per_second(const pa_sample_spec *spec) __attribute__ ((pure));
644size_t pa_frame_size(const pa_sample_spec *spec) __attribute__ ((pure));
645size_t pa_sample_size(const pa_sample_spec *spec) __attribute__ ((pure));
646size_t pa_sample_size_of_format(pa_sample_format_t f) __attribute__ ((pure));
647pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec) __attribute__ ((pure));
648size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec) __attribute__ ((pure));
649pa_sample_spec* pa_sample_spec_init(pa_sample_spec *spec);
650int pa_sample_spec_valid(const pa_sample_spec *spec) __attribute__ ((pure));
651int pa_sample_spec_equal(const pa_sample_spec*a, const pa_sample_spec*b) __attribute__ ((pure));
652const char *pa_sample_format_to_string(pa_sample_format_t f) __attribute__ ((pure));
653pa_sample_format_t pa_parse_sample_format(const char *format) __attribute__ ((pure));
654char* pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
655char* pa_bytes_snprint(char *s, size_t l, unsigned v);
656int pa_sample_format_is_le(pa_sample_format_t f) __attribute__ ((pure));
657int pa_sample_format_is_be(pa_sample_format_t f) __attribute__ ((pure));
658struct timeval;
659struct timeval *pa_gettimeofday(struct timeval *tv);
660pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b) __attribute__ ((pure));
661int pa_timeval_cmp(const struct timeval *a, const struct timeval *b) __attribute__ ((pure));
662pa_usec_t pa_timeval_age(const struct timeval *tv);
663struct timeval* pa_timeval_add(struct timeval *tv, pa_usec_t v);
664struct timeval* pa_timeval_sub(struct timeval *tv, pa_usec_t v);
665struct timeval* pa_timeval_store(struct timeval *tv, pa_usec_t v);
666pa_usec_t pa_timeval_load(const struct timeval *tv);
667void pa_random_seed(void);
668void pa_random(void *ret_data, size_t length);
669typedef __socklen_t socklen_t;
670extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
671extern int euidaccess (__const char *__name, int __type)
672 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
673extern int eaccess (__const char *__name, int __type)
674 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
675extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
676 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
677extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
678extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
679 __attribute__ ((__nothrow__));
680extern int close (int __fd);
681extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
682extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
683extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
684 __off_t __offset) __attribute__ ((__warn_unused_result__));
685extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
686 __off_t __offset) __attribute__ ((__warn_unused_result__));
687extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
688 __off64_t __offset) __attribute__ ((__warn_unused_result__));
689extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
690 __off64_t __offset) __attribute__ ((__warn_unused_result__));
691extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
692extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
693extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
694extern unsigned int sleep (unsigned int __seconds);
695extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
696 __attribute__ ((__nothrow__));
697extern int usleep (__useconds_t __useconds);
698extern int pause (void);
699extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
700 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
701extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
702extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
703 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
704extern 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__));
707extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
708extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
709extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
710extern char *get_current_dir_name (void) __attribute__ ((__nothrow__));
711extern char *getwd (char *__buf)
712 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
713extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
714extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
715extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__));
716extern char **__environ;
717extern char **environ;
718extern int execve (__const char *__path, char *__const __argv[],
719 char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
720extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
721 __attribute__ ((__nothrow__));
722extern int execv (__const char *__path, char *__const __argv[])
723 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
724extern int execle (__const char *__path, __const char *__arg, ...)
725 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
726extern int execl (__const char *__path, __const char *__arg, ...)
727 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
728extern int execvp (__const char *__file, char *__const __argv[])
729 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
730extern int execlp (__const char *__file, __const char *__arg, ...)
731 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
732extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
733extern void _exit (int __status) __attribute__ ((__noreturn__));
734enum
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 };
758enum
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 };
976enum
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 };
1041extern long int pathconf (__const char *__path, int __name)
1042 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1043extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
1044extern long int sysconf (int __name) __attribute__ ((__nothrow__));
1045extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
1046extern __pid_t getpid (void) __attribute__ ((__nothrow__));
1047extern __pid_t getppid (void) __attribute__ ((__nothrow__));
1048extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
1049extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
1050extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
1051extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
1052extern int setpgrp (void) __attribute__ ((__nothrow__));
1053extern __pid_t setsid (void) __attribute__ ((__nothrow__));
1054extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
1055extern __uid_t getuid (void) __attribute__ ((__nothrow__));
1056extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
1057extern __gid_t getgid (void) __attribute__ ((__nothrow__));
1058extern __gid_t getegid (void) __attribute__ ((__nothrow__));
1059extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1060extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__));
1061extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
1062extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
1063extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
1064extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
1065extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
1066extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
1067extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
1068 __attribute__ ((__nothrow__));
1069extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
1070 __attribute__ ((__nothrow__));
1071extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
1072 __attribute__ ((__nothrow__));
1073extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
1074 __attribute__ ((__nothrow__));
1075extern __pid_t fork (void) __attribute__ ((__nothrow__));
1076extern __pid_t vfork (void) __attribute__ ((__nothrow__));
1077extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
1078extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
1079 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
1080extern int isatty (int __fd) __attribute__ ((__nothrow__));
1081extern int ttyslot (void) __attribute__ ((__nothrow__));
1082extern int link (__const char *__from, __const char *__to)
1083 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1084extern 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__));
1087extern int symlink (__const char *__from, __const char *__to)
1088 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
1089extern 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__));
1092extern int symlinkat (__const char *__from, int __tofd,
1093 __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
1094extern 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__));
1097extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1098extern int unlinkat (int __fd, __const char *__name, int __flag)
1099 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1100extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1101extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
1102extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
1103extern char *getlogin (void);
1104extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
1105extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1106extern char *optarg;
1107extern int optind;
1108extern int opterr;
1109extern int optopt;
1110extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
1111 __attribute__ ((__nothrow__));
1112extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1113extern int sethostname (__const char *__name, size_t __len)
1114 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1115extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1116extern int getdomainname (char *__name, size_t __len)
1117 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1118extern int setdomainname (__const char *__name, size_t __len)
1119 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1120extern int vhangup (void) __attribute__ ((__nothrow__));
1121extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1122extern int profil (unsigned short int *__sample_buffer, size_t __size,
1123 size_t __offset, unsigned int __scale)
1124 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1125extern int acct (__const char *__name) __attribute__ ((__nothrow__));
1126extern char *getusershell (void) __attribute__ ((__nothrow__));
1127extern void endusershell (void) __attribute__ ((__nothrow__));
1128extern void setusershell (void) __attribute__ ((__nothrow__));
1129extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1130extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1131extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
1132extern int fsync (int __fd);
1133extern long int gethostid (void);
1134extern void sync (void) __attribute__ ((__nothrow__));
1135extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1136extern int getdtablesize (void) __attribute__ ((__nothrow__));
1137extern int truncate (__const char *__file, __off_t __length)
1138 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1139extern int truncate64 (__const char *__file, __off64_t __length)
1140 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1141extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1142extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1143extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1144extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
1145extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
1146extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__));
1147extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__));
1148extern int fdatasync (int __fildes);
1149extern char *crypt (__const char *__key, __const char *__salt)
1150 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1151extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1152extern void swab (__const void *__restrict __from, void *__restrict __to,
1153 ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1154extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
1155extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
1156 size_t __buflen) __attribute__ ((__warn_unused_result__));
1157extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__));
1158extern 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")));
1160extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1161read (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}
1172extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes,
1173 __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
1174extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes,
1175 __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
1176extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__));
1177extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__));
1178extern 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")));
1180extern 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")));
1182extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1183pread (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}
1195extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
1196pread64 (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}
1208extern 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__));
1212extern 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__));
1214extern 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")));
1216extern __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}
1228extern 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__));
1232extern 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__));
1234extern 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")));
1236extern __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}
1249extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
1250 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1251extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1252extern 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")));
1254extern __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}
1266extern char *__getwd_chk (char *__buf, size_t buflen)
1267 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1268extern 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")));
1270extern __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}
1277extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
1278 size_t __buflen) __attribute__ ((__nothrow__));
1279extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__));
1280extern 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")));
1282extern __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}
1294extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
1295 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1296extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1297extern 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")));
1299extern __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}
1311extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
1312 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1313extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
1314 __attribute__ ((__nonnull__ (2)));
1315extern 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")));
1317extern __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}
1329extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
1330 __attribute__ ((__nonnull__ (1)));
1331extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1)));
1332extern 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")));
1334extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1335getlogin_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}
1346extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
1347 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1348extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1349extern 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")));
1351extern __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}
1363extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
1364 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1365extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1366extern 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")));
1368extern __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}
1380extern void __assert_fail (__const char *__assertion, __const char *__file,
1381 unsigned int __line, __const char *__function)
1382 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1383extern void __assert_perror_fail (int __errnum, __const char *__file,
1384 unsigned int __line,
1385 __const char *__function)
1386 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1387extern void __assert (const char *__assertion, const char *__file, int __line)
1388 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
1389struct _IO_FILE;
1390typedef struct _IO_FILE FILE;
1391typedef struct _IO_FILE __FILE;
1392typedef struct
1393{
1394 int __count;
1395 union
1396 {
1397 unsigned int __wch;
1398 char __wchb[4];
1399 } __value;
1400} __mbstate_t;
1401typedef struct
1402{
1403 __off_t __pos;
1404 __mbstate_t __state;
1405} _G_fpos_t;
1406typedef struct
1407{
1408 __off64_t __pos;
1409 __mbstate_t __state;
1410} _G_fpos64_t;
1411typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
1412typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
1413typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
1414typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
1415typedef __builtin_va_list __gnuc_va_list;
1416struct _IO_jump_t; struct _IO_FILE;
1417typedef void _IO_lock_t;
1418struct _IO_marker {
1419 struct _IO_marker *_next;
1420 struct _IO_FILE *_sbuf;
1421 int _pos;
1422};
1423enum __codecvt_result
1424{
1425 __codecvt_ok,
1426 __codecvt_partial,
1427 __codecvt_error,
1428 __codecvt_noconv
1429};
1430struct _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};
1461typedef struct _IO_FILE _IO_FILE;
1462struct _IO_FILE_plus;
1463extern struct _IO_FILE_plus _IO_2_1_stdin_;
1464extern struct _IO_FILE_plus _IO_2_1_stdout_;
1465extern struct _IO_FILE_plus _IO_2_1_stderr_;
1466typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
1467typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
1468 size_t __n);
1469typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
1470typedef int __io_close_fn (void *__cookie);
1471typedef __io_read_fn cookie_read_function_t;
1472typedef __io_write_fn cookie_write_function_t;
1473typedef __io_seek_fn cookie_seek_function_t;
1474typedef __io_close_fn cookie_close_function_t;
1475typedef 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;
1482typedef _IO_cookie_io_functions_t cookie_io_functions_t;
1483struct _IO_cookie_file;
1484extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
1485 void *__cookie, _IO_cookie_io_functions_t __fns);
1486extern int __underflow (_IO_FILE *);
1487extern int __uflow (_IO_FILE *);
1488extern int __overflow (_IO_FILE *, int);
1489extern int _IO_getc (_IO_FILE *__fp);
1490extern int _IO_putc (int __c, _IO_FILE *__fp);
1491extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1492extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1493extern int _IO_peekc_locked (_IO_FILE *__fp);
1494extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1495extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1496extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1497extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
1498 __gnuc_va_list, int *__restrict);
1499extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
1500 __gnuc_va_list);
1501extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
1502extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
1503extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
1504extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
1505extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
1506typedef __gnuc_va_list va_list;
1507typedef _G_fpos_t fpos_t;
1508typedef _G_fpos64_t fpos64_t;
1509extern struct _IO_FILE *stdin;
1510extern struct _IO_FILE *stdout;
1511extern struct _IO_FILE *stderr;
1512extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
1513extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
1514extern int renameat (int __oldfd, __const char *__old, int __newfd,
1515 __const char *__new) __attribute__ ((__nothrow__));
1516extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
1517extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__));
1518extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1519extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1520extern char *tempnam (__const char *__dir, __const char *__pfx)
1521 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
1522extern int fclose (FILE *__stream);
1523extern int fflush (FILE *__stream);
1524extern int fflush_unlocked (FILE *__stream);
1525extern int fcloseall (void);
1526extern FILE *fopen (__const char *__restrict __filename,
1527 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1528extern FILE *freopen (__const char *__restrict __filename,
1529 __const char *__restrict __modes,
1530 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1531extern FILE *fopen64 (__const char *__restrict __filename,
1532 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1533extern FILE *freopen64 (__const char *__restrict __filename,
1534 __const char *__restrict __modes,
1535 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1536extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1537extern 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__));
1540extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
1541 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1542extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1543extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
1544extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1545 int __modes, size_t __n) __attribute__ ((__nothrow__));
1546extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1547 size_t __size) __attribute__ ((__nothrow__));
1548extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
1549extern int fprintf (FILE *__restrict __stream,
1550 __const char *__restrict __format, ...);
1551extern int printf (__const char *__restrict __format, ...);
1552extern int sprintf (char *__restrict __s,
1553 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1554extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1555 __gnuc_va_list __arg);
1556extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1557extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1558 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
1559extern int snprintf (char *__restrict __s, size_t __maxlen,
1560 __const char *__restrict __format, ...)
1561 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1562extern 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)));
1565extern 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__));
1568extern int __asprintf (char **__restrict __ptr,
1569 __const char *__restrict __fmt, ...)
1570 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1571extern int asprintf (char **__restrict __ptr,
1572 __const char *__restrict __fmt, ...)
1573 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1574extern int vdprintf (int __fd, __const char *__restrict __fmt,
1575 __gnuc_va_list __arg)
1576 __attribute__ ((__format__ (__printf__, 2, 0)));
1577extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1578 __attribute__ ((__format__ (__printf__, 2, 3)));
1579extern int fscanf (FILE *__restrict __stream,
1580 __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1581extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1582extern int sscanf (__const char *__restrict __s,
1583 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1584extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1585 __gnuc_va_list __arg)
1586 __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
1587extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
1588 __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
1589extern int vsscanf (__const char *__restrict __s,
1590 __const char *__restrict __format, __gnuc_va_list __arg)
1591 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
1592extern int fgetc (FILE *__stream);
1593extern int getc (FILE *__stream);
1594extern int getchar (void);
1595extern int getc_unlocked (FILE *__stream);
1596extern int getchar_unlocked (void);
1597extern int fgetc_unlocked (FILE *__stream);
1598extern int fputc (int __c, FILE *__stream);
1599extern int putc (int __c, FILE *__stream);
1600extern int putchar (int __c);
1601extern int fputc_unlocked (int __c, FILE *__stream);
1602extern int putc_unlocked (int __c, FILE *__stream);
1603extern int putchar_unlocked (int __c);
1604extern int getw (FILE *__stream);
1605extern int putw (int __w, FILE *__stream);
1606extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
1607 __attribute__ ((__warn_unused_result__));
1608extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
1609extern char *fgets_unlocked (char *__restrict __s, int __n,
1610 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1611extern __ssize_t __getdelim (char **__restrict __lineptr,
1612 size_t *__restrict __n, int __delimiter,
1613 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1614extern __ssize_t getdelim (char **__restrict __lineptr,
1615 size_t *__restrict __n, int __delimiter,
1616 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1617extern __ssize_t getline (char **__restrict __lineptr,
1618 size_t *__restrict __n,
1619 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1620extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
1621extern int puts (__const char *__s);
1622extern int ungetc (int __c, FILE *__stream);
1623extern size_t fread (void *__restrict __ptr, size_t __size,
1624 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1625extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
1626 size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
1627extern int fputs_unlocked (__const char *__restrict __s,
1628 FILE *__restrict __stream);
1629extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
1630 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1631extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
1632 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1633extern int fseek (FILE *__stream, long int __off, int __whence);
1634extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
1635extern void rewind (FILE *__stream);
1636extern int fseeko (FILE *__stream, __off_t __off, int __whence);
1637extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
1638extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1639extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1640extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1641extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__));
1642extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1643extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1644extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
1645extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1646extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1647extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
1648extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1649extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1650extern void perror (__const char *__s);
1651extern int sys_nerr;
1652extern __const char *__const sys_errlist[];
1653extern int _sys_nerr;
1654extern __const char *__const _sys_errlist[];
1655extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1656extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1657extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
1658extern int pclose (FILE *__stream);
1659extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
1660extern char *cuserid (char *__s);
1661struct obstack;
1662extern int obstack_printf (struct obstack *__restrict __obstack,
1663 __const char *__restrict __format, ...)
1664 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
1665extern 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)));
1669extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
1670extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1671extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
1672extern __inline __attribute__ ((__gnu_inline__)) int
1673getchar (void)
1674{
1675 return _IO_getc (stdin);
1676}
1677extern __inline __attribute__ ((__gnu_inline__)) int
1678fgetc_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}
1682extern __inline __attribute__ ((__gnu_inline__)) int
1683getc_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}
1687extern __inline __attribute__ ((__gnu_inline__)) int
1688getchar_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}
1692extern __inline __attribute__ ((__gnu_inline__)) int
1693putchar (int __c)
1694{
1695 return _IO_putc (__c, stdout);
1696}
1697extern __inline __attribute__ ((__gnu_inline__)) int
1698fputc_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}
1702extern __inline __attribute__ ((__gnu_inline__)) int
1703putc_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}
1707extern __inline __attribute__ ((__gnu_inline__)) int
1708putchar_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}
1712extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
1713getline (char **__lineptr, size_t *__n, FILE *__stream)
1714{
1715 return __getdelim (__lineptr, __n, '\n', __stream);
1716}
1717extern __inline __attribute__ ((__gnu_inline__)) int
1718__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
1719{
1720 return (((__stream)->_flags & 0x10) != 0);
1721}
1722extern __inline __attribute__ ((__gnu_inline__)) int
1723__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
1724{
1725 return (((__stream)->_flags & 0x20) != 0);
1726}
1727extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
1728 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1729extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
1730 __const char *__restrict __format,
1731 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
1732extern __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}
1738extern __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}
1744extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
1745 size_t __slen, __const char *__restrict __format,
1746 ...) __attribute__ ((__nothrow__));
1747extern 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__));
1750extern __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}
1756extern __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}
1762extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
1763 __const char *__restrict __format, ...);
1764extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
1765extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
1766 __const char *__restrict __format, __gnuc_va_list __ap);
1767extern int __vprintf_chk (int __flag, __const char *__restrict __format,
1768 __gnuc_va_list __ap);
1769extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1770fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
1771{
1772 return __fprintf_chk (__stream, 2 - 1, __fmt,
1773 __builtin_va_arg_pack ());
1774}
1775extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1776printf (__const char *__restrict __fmt, ...)
1777{
1778 return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
1779}
1780extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1781vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
1782{
1783 return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
1784}
1785extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1786vfprintf (FILE *__restrict __stream,
1787 __const char *__restrict __fmt, __gnuc_va_list __ap)
1788{
1789 return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
1790}
1791extern 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__));
1794extern 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__));
1797extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt,
1798 ...) __attribute__ ((__format__ (__printf__, 3, 4)));
1799extern int __vdprintf_chk (int __fd, int __flag,
1800 __const char *__restrict __fmt, __gnuc_va_list __arg)
1801 __attribute__ ((__format__ (__printf__, 3, 0)));
1802extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
1803 int __flag, __const char *__restrict __format,
1804 ...)
1805 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1806extern 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)));
1811extern __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}
1817extern __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}
1823extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1824dprintf (int __fd, __const char *__restrict __fmt, ...)
1825{
1826 return __dprintf_chk (__fd, 2 - 1, __fmt,
1827 __builtin_va_arg_pack ());
1828}
1829extern __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}
1835extern __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}
1840extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
1841vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap)
1842{
1843 return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap);
1844}
1845extern __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}
1851extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
1852extern 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")));
1854extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1855gets (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}
1861extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
1862 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1863extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__));
1864extern 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")));
1866extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1867fgets (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}
1878extern 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__));
1881extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__));
1882extern 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")));
1884extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
1885fread (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}
1899extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
1900 int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1901extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__));
1902extern 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")));
1904extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
1905fgets_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}
1916extern 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__));
1919extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__));
1920extern 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")));
1922extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
1923fread_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}
1957typedef int wchar_t;
1958union 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 };
1975typedef union
1976 {
1977 union wait *__uptr;
1978 int *__iptr;
1979 } __WAIT_STATUS __attribute__ ((__transparent_union__));
1980typedef struct
1981 {
1982 int quot;
1983 int rem;
1984 } div_t;
1985typedef 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;
1995extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1996extern double atof (__const char *__nptr)
1997 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
1998extern int atoi (__const char *__nptr)
1999 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2000extern 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__));
2004extern double strtod (__const char *__restrict __nptr,
2005 char **__restrict __endptr)
2006 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2007extern float strtof (__const char *__restrict __nptr,
2008 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2009extern long double strtold (__const char *__restrict __nptr,
2010 char **__restrict __endptr)
2011 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2012extern long int strtol (__const char *__restrict __nptr,
2013 char **__restrict __endptr, int __base)
2014 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2015extern 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__
2019extern 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__
2023extern 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__
2027extern 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__
2031extern 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__));
2034typedef 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;
2042typedef __locale_t locale_t;
2043extern 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__));
2046extern 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__
2051extern 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__
2056extern 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__));
2060extern 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__));
2063extern 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__));
2066extern 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__));
2070extern __inline __attribute__ ((__gnu_inline__)) double
2071__attribute__ ((__nothrow__)) atof (__const char *__nptr)
2072{
2073 return strtod (__nptr, (char **) ((void *)0));
2074}
2075extern __inline __attribute__ ((__gnu_inline__)) int
2076__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
2077{
2078 return (int) strtol (__nptr, (char **) ((void *)0), 10);
2079}
2080extern __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}
2090extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2091extern long int a64l (__const char *__s)
2092 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2093extern long int random (void) __attribute__ ((__nothrow__));
2094extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
2095extern char *initstate (unsigned int __seed, char *__statebuf,
2096 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2097extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2098struct 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 };
2108extern int random_r (struct random_data *__restrict __buf,
2109 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2110extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2111 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2112extern 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)));
2116extern int setstate_r (char *__restrict __statebuf,
2117 struct random_data *__restrict __buf)
2118 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2119extern int rand (void) __attribute__ ((__nothrow__));
2120extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
2121extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
2122extern double drand48 (void) __attribute__ ((__nothrow__));
2123extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2124extern long int lrand48 (void) __attribute__ ((__nothrow__));
2125extern long int nrand48 (unsigned short int __xsubi[3])
2126 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2127extern long int mrand48 (void) __attribute__ ((__nothrow__));
2128extern long int jrand48 (unsigned short int __xsubi[3])
2129 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2130extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
2131extern unsigned short int *seed48 (unsigned short int __seed16v[3])
2132 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2133extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2134struct 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 };
2142extern int drand48_r (struct drand48_data *__restrict __buffer,
2143 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2144extern int erand48_r (unsigned short int __xsubi[3],
2145 struct drand48_data *__restrict __buffer,
2146 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2147extern int lrand48_r (struct drand48_data *__restrict __buffer,
2148 long int *__restrict __result)
2149 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2150extern 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)));
2154extern int mrand48_r (struct drand48_data *__restrict __buffer,
2155 long int *__restrict __result)
2156 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2157extern 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)));
2161extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2162 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2163extern int seed48_r (unsigned short int __seed16v[3],
2164 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2165extern int lcong48_r (unsigned short int __param[7],
2166 struct drand48_data *__buffer)
2167 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2168extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2169extern void *calloc (size_t __nmemb, size_t __size)
2170 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2171extern void *realloc (void *__ptr, size_t __size)
2172 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2173extern void free (void *__ptr) __attribute__ ((__nothrow__));
2174extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
2175extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
2176extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2177extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2178 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2179extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2180extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2181extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2182extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2183 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2184extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2185extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2186extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
2187extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2188extern char *__secure_getenv (__const char *__name)
2189 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2190extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2191extern int setenv (__const char *__name, __const char *__value, int __replace)
2192 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2193extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
2194extern int clearenv (void) __attribute__ ((__nothrow__));
2195extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2196extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2197extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2198extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2199extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2200extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2201extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
2202extern char *canonicalize_file_name (__const char *__name)
2203 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2204extern char *realpath (__const char *__restrict __name,
2205 char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2206typedef int (*__compar_fn_t) (__const void *, __const void *);
2207typedef __compar_fn_t comparison_fn_t;
2208typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
2209extern 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__));
2212extern void qsort (void *__base, size_t __nmemb, size_t __size,
2213 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2214extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
2215 __compar_d_fn_t __compar, void *__arg)
2216 __attribute__ ((__nonnull__ (1, 4)));
2217extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2218extern 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__));
2221extern div_t div (int __numer, int __denom)
2222 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
2223extern 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__));
2228extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2229 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2230extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2231 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
2232extern char *gcvt (double __value, int __ndigit, char *__buf)
2233 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
2234extern 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__));
2237extern 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__));
2240extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2241 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
2242extern 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)));
2245extern 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)));
2248extern 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)));
2252extern 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)));
2256extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2257extern int mbtowc (wchar_t *__restrict __pwc,
2258 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2259extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2260extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2261 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
2262extern size_t wcstombs (char *__restrict __s,
2263 __const wchar_t *__restrict __pwcs, size_t __n)
2264 __attribute__ ((__nothrow__));
2265extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2266extern 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__));
2270extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2271extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__));
2272extern int grantpt (int __fd) __attribute__ ((__nothrow__));
2273extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
2274extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2275extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2276 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2277extern int getpt (void);
2278extern int getloadavg (double __loadavg[], int __nelem)
2279 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2280extern char *__realpath_chk (__const char *__restrict __name,
2281 char *__restrict __resolved,
2282 size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2283extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2284extern 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")));
2286extern __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}
2297extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
2298 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2299extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
2300 __attribute__ ((__nonnull__ (2)));
2301extern 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")));
2303extern __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}
2315extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
2316 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2317extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2318extern __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}
2325extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
2326 __const char *__restrict __src,
2327 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
2328extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__));
2329extern 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)")));
2331extern __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}
2345extern size_t __wcstombs_chk (char *__restrict __dst,
2346 __const wchar_t *__restrict __src,
2347 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
2348extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__));
2349extern 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")));
2351extern __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}
2363extern void *memcpy (void *__restrict __dest,
2364 __const void *__restrict __src, size_t __n)
2365 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2366extern void *memmove (void *__dest, __const void *__src, size_t __n)
2367 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2368extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
2369 int __c, size_t __n)
2370 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2371extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2372extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
2373 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2374extern void *memchr (__const void *__s, int __c, size_t __n)
2375 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2376extern void *rawmemchr (__const void *__s, int __c)
2377 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2378extern void *memrchr (__const void *__s, int __c, size_t __n)
2379 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2380extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
2381 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2382extern char *strncpy (char *__restrict __dest,
2383 __const char *__restrict __src, size_t __n)
2384 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2385extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
2386 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2387extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
2388 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2389extern int strcmp (__const char *__s1, __const char *__s2)
2390 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2391extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
2392 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2393extern int strcoll (__const char *__s1, __const char *__s2)
2394 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2395extern size_t strxfrm (char *__restrict __dest,
2396 __const char *__restrict __src, size_t __n)
2397 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2398extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
2399 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2400extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
2401 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
2402extern char *strdup (__const char *__s)
2403 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2404extern char *strndup (__const char *__string, size_t __n)
2405 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2406extern char *strchr (__const char *__s, int __c)
2407 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2408extern char *strrchr (__const char *__s, int __c)
2409 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2410extern char *strchrnul (__const char *__s, int __c)
2411 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2412extern size_t strcspn (__const char *__s, __const char *__reject)
2413 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2414extern size_t strspn (__const char *__s, __const char *__accept)
2415 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2416extern char *strpbrk (__const char *__s, __const char *__accept)
2417 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2418extern char *strstr (__const char *__haystack, __const char *__needle)
2419 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2420extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
2421 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2422extern char *__strtok_r (char *__restrict __s,
2423 __const char *__restrict __delim,
2424 char **__restrict __save_ptr)
2425 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
2426extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
2427 char **__restrict __save_ptr)
2428 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
2429extern char *strcasestr (__const char *__haystack, __const char *__needle)
2430 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2431extern void *memmem (__const void *__haystack, size_t __haystacklen,
2432 __const void *__needle, size_t __needlelen)
2433 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
2434extern void *__mempcpy (void *__restrict __dest,
2435 __const void *__restrict __src, size_t __n)
2436 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2437extern void *mempcpy (void *__restrict __dest,
2438 __const void *__restrict __src, size_t __n)
2439 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2440extern size_t strlen (__const char *__s)
2441 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2442extern size_t strnlen (__const char *__string, size_t __maxlen)
2443 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2444extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
2445extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
2446 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
2447extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
2448extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2449extern void bcopy (__const void *__src, void *__dest, size_t __n)
2450 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2451extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2452extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
2453 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2454extern char *index (__const char *__s, int __c)
2455 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2456extern char *rindex (__const char *__s, int __c)
2457 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2458extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2459extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2460__extension__ extern int ffsll (long long int __ll)
2461 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
2462extern int strcasecmp (__const char *__s1, __const char *__s2)
2463 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2464extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
2465 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2466extern int strcasecmp_l (__const char *__s1, __const char *__s2,
2467 __locale_t __loc)
2468 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2469extern 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)));
2472extern char *strsep (char **__restrict __stringp,
2473 __const char *__restrict __delim)
2474 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2475extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
2476extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
2477 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2478extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
2479 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2480extern char *__stpncpy (char *__restrict __dest,
2481 __const char *__restrict __src, size_t __n)
2482 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2483extern char *stpncpy (char *__restrict __dest,
2484 __const char *__restrict __src, size_t __n)
2485 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
2486extern int strverscmp (__const char *__s1, __const char *__s2)
2487 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2488extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2489extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2490extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
2491extern void *__rawmemchr (const void *__s, int __c);
2492extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (__const char *__s, int __reject);
2493extern __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}
2501extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (__const char *__s, int __reject1,
2502 int __reject2);
2503extern __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}
2512extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (__const char *__s, int __reject1,
2513 int __reject2, int __reject3);
2514extern __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}
2524extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (__const char *__s, int __accept);
2525extern __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}
2533extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (__const char *__s, int __accept1,
2534 int __accept2);
2535extern __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}
2543extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (__const char *__s, int __accept1,
2544 int __accept2, int __accept3);
2545extern __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}
2554extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (__const char *__s, int __accept1,
2555 int __accept2);
2556extern __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}
2563extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (__const char *__s, int __accept1,
2564 int __accept2, int __accept3);
2565extern __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}
2574extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
2575extern __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}
2597extern char *__strsep_g (char **__stringp, __const char *__delim);
2598extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject);
2599extern __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}
2607extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2);
2608extern __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}
2633extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2,
2634 char __reject3);
2635extern __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}
2660extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2661extern char *__strndup (__const char *__string, size_t __n)
2662 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
2663extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")));
2664extern __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}
2669extern __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}
2674extern __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}
2679extern __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}
2689extern __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}
2694extern __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}
2699extern __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}
2704extern __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}
2709extern __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}
2714extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
2715 size_t __destlen) __attribute__ ((__nothrow__));
2716extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__));
2717extern __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}
2725extern __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}
2730extern __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}
2735static inline void* PA_ALIGN_PTR(const void *p) {
2736 return (void*) (((size_t) p) & ~(sizeof(void*) - 1));
2737}
2738static inline size_t PA_ALIGN(size_t l) {
2739 return ((l + sizeof(void*) - 1) & ~(sizeof(void*) - 1));
2740}
2741static inline void* PA_PAGE_ALIGN_PTR(const void *p) {
2742 return (void*) (((size_t) p) & ~(((size_t) (sysconf(_SC_PAGESIZE))) - 1));
2743}
2744static 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}
2747typedef _Bool pa_bool_t;
2748typedef 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;
2754typedef 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;
2762typedef 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;
2769typedef enum pa_log_merge {
2770 PA_LOG_SET,
2771 PA_LOG_UNSET,
2772 PA_LOG_RESET
2773} pa_log_merge_t;
2774void pa_log_set_ident(const char *p);
2775void pa_log_set_target(pa_log_target_t t);
2776void pa_log_set_level(pa_log_level_t l);
2777void pa_log_set_flags(pa_log_flags_t flags, pa_log_merge_t merge);
2778void pa_log_set_show_backtrace(unsigned nlevels);
2779void pa_log_set_skip_backtrace(unsigned nlevels);
2780void 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)));
2786void 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);
2793void pa_log_level(
2794 pa_log_level_t level,
2795 const char *format, ...) __attribute__ ((format (printf, 2, 3)));
2796void pa_log_levelv(
2797 pa_log_level_t level,
2798 const char *format,
2799 va_list ap);
2800pa_bool_t pa_log_ratelimit(void);
2801unsigned char st_13linear2alaw(int16_t pcm_val);
2802int16_t st_alaw2linear16(unsigned char);
2803unsigned char st_14linear2ulaw(int16_t pcm_val);
2804int16_t st_ulaw2linear16(unsigned char);
2805enum __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};
2826typedef __rlim_t rlim_t;
2827typedef __rlim64_t rlim64_t;
2828struct rlimit
2829 {
2830 rlim_t rlim_cur;
2831 rlim_t rlim_max;
2832 };
2833struct rlimit64
2834 {
2835 rlim64_t rlim_cur;
2836 rlim64_t rlim_max;
2837 };
2838enum __rusage_who
2839{
2840 RUSAGE_SELF = 0,
2841 RUSAGE_CHILDREN = -1
2842 ,
2843 RUSAGE_THREAD = 1
2844};
2845struct 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 };
2864enum __priority_which
2865{
2866 PRIO_PROCESS = 0,
2867 PRIO_PGRP = 1,
2868 PRIO_USER = 2
2869};
2870typedef enum __rlimit_resource __rlimit_resource_t;
2871typedef enum __rusage_who __rusage_who_t;
2872typedef enum __priority_which __priority_which_t;
2873extern int getrlimit (__rlimit_resource_t __resource,
2874 struct rlimit *__rlimits) __attribute__ ((__nothrow__));
2875extern int getrlimit64 (__rlimit_resource_t __resource,
2876 struct rlimit64 *__rlimits) __attribute__ ((__nothrow__));
2877extern int setrlimit (__rlimit_resource_t __resource,
2878 __const struct rlimit *__rlimits) __attribute__ ((__nothrow__));
2879extern int setrlimit64 (__rlimit_resource_t __resource,
2880 __const struct rlimit64 *__rlimits) __attribute__ ((__nothrow__));
2881extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__));
2882extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__));
2883extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
2884 __attribute__ ((__nothrow__));
2885struct timeval;
2886void pa_make_fd_nonblock(int fd);
2887void pa_make_fd_cloexec(int fd);
2888int pa_make_secure_dir(const char* dir, mode_t m, uid_t uid, gid_t gid);
2889int pa_make_secure_parent_dir(const char *fn, mode_t, uid_t uid, gid_t gid);
2890ssize_t pa_read(int fd, void *buf, size_t count, int *type);
2891ssize_t pa_write(int fd, const void *buf, size_t count, int *type);
2892ssize_t pa_loop_read(int fd, void*data, size_t size, int *type);
2893ssize_t pa_loop_write(int fd, const void*data, size_t size, int *type);
2894int pa_close(int fd);
2895void pa_check_signal_is_blocked(int sig);
2896char *pa_sprintf_malloc(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
2897char *pa_vsprintf_malloc(const char *format, va_list ap);
2898char *pa_strlcpy(char *b, const char *s, size_t l);
2899char *pa_parent_dir(const char *fn);
2900int pa_make_realtime(int rtprio);
2901int pa_raise_priority(int nice_level);
2902void pa_reset_priority(void);
2903int pa_parse_boolean(const char *s) __attribute__ ((pure));
2904static inline const char *pa_yes_no(pa_bool_t b) {
2905 return b ? "yes" : "no";
2906}
2907static inline const char *pa_strnull(const char *x) {
2908 return x ? x : "(null)";
2909}
2910static inline const char *pa_strempty(const char *x) {
2911 return x ? x : "";
2912}
2913static inline const char *pa_strna(const char *x) {
2914 return x ? x : "n/a";
2915}
2916char *pa_split(const char *c, const char*delimiters, const char **state);
2917char *pa_split_spaces(const char *c, const char **state);
2918char *pa_strip_nl(char *s);
2919const char *pa_sig2str(int sig) __attribute__ ((pure));
2920int pa_own_uid_in_group(const char *name, gid_t *gid);
2921int pa_uid_in_group(uid_t uid, const char *name);
2922gid_t pa_get_gid_of_group(const char *name);
2923int pa_check_in_group(gid_t g);
2924int pa_lock_fd(int fd, int b);
2925int pa_lock_lockfile(const char *fn);
2926int pa_unlock_lockfile(const char *fn, int fd);
2927char *pa_hexstr(const uint8_t* d, size_t dlength, char *s, size_t slength);
2928size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength);
2929pa_bool_t pa_startswith(const char *s, const char *pfx) __attribute__ ((pure));
2930pa_bool_t pa_endswith(const char *s, const char *sfx) __attribute__ ((pure));
2931FILE *pa_open_config_file(const char *global, const char *local, const char *env, char **result);
2932char* pa_find_config_file(const char *global, const char *local, const char *env);
2933char *pa_get_runtime_dir(void);
2934char *pa_get_state_dir(void);
2935char *pa_get_home_dir_malloc(void);
2936char *pa_get_binary_name_malloc(void);
2937char *pa_runtime_path(const char *fn);
2938char *pa_state_path(const char *fn, pa_bool_t prepend_machine_id);
2939int pa_atoi(const char *s, int32_t *ret_i);
2940int pa_atou(const char *s, uint32_t *ret_u);
2941int pa_atod(const char *s, double *ret_d);
2942size_t pa_snprintf(char *str, size_t size, const char *format, ...);
2943size_t pa_vsnprintf(char *str, size_t size, const char *format, va_list ap);
2944char *pa_truncate_utf8(char *c, size_t l);
2945int pa_match(const char *expr, const char *v);
2946char *pa_getcwd(void);
2947char *pa_make_path_absolute(const char *p);
2948pa_bool_t pa_is_path_absolute(const char *p);
2949void *pa_will_need(const void *p, size_t l);
2950static inline int pa_is_power_of_two(unsigned n) {
2951 return !(n & (n - 1));
2952}
2953static 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}
2958static 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}
2963void pa_close_pipe(int fds[2]);
2964char *pa_readlink(const char *p);
2965int pa_close_all(int except_fd, ...);
2966int pa_close_allv(const int except_fds[]);
2967int pa_unblock_sigs(int except, ...);
2968int pa_unblock_sigsv(const int except[]);
2969int pa_reset_sigs(int except, ...);
2970int pa_reset_sigsv(const int except[]);
2971void pa_set_env(const char *key, const char *value);
2972void pa_set_env_and_record(const char *key, const char *value);
2973void pa_unset_env_recorded(void);
2974pa_bool_t pa_in_system_mode(void);
2975char *pa_get_host_name_malloc(void);
2976char *pa_get_user_name_malloc(void);
2977char *pa_machine_id(void);
2978char *pa_session_id(void);
2979char *pa_uname_string(void);
2980pa_bool_t pa_in_valgrind(void);
2981unsigned pa_gcd(unsigned a, unsigned b);
2982void pa_reduce(unsigned *num, unsigned *den);
2983unsigned pa_ncpus(void);
2984char *pa_replace(const char*s, const char*a, const char *b);
2985char *pa_unescape(char *p);
2986char *pa_realpath(const char *path);
2987void pa_disable_sigpipe(void);
2988void pa_xfreev(void**a);
2989static inline void pa_xstrfreev(char **a) {
2990 pa_xfreev((void**) a);
2991}
2992char **pa_split_spaces_strv(const char *s);
2993char* pa_maybe_prefix_path(const char *path, const char *prefix);
2994size_t pa_pipe_buf(int fd);
2995void pa_reset_personality(void);
2996const char *pa_get_temp_dir(void);
2997typedef 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;
3009void pa_cpu_init_x86 (void);
3010typedef int64_t pa_reg_x86;
3011void pa_volume_func_init_mmx(pa_cpu_x86_flag_t flags);
3012void pa_volume_func_init_sse(pa_cpu_x86_flag_t flags);
3013void pa_remap_func_init_mmx(pa_cpu_x86_flag_t flags);
3014void pa_remap_func_init_sse(pa_cpu_x86_flag_t flags);
3015void pa_convert_func_init_sse (pa_cpu_x86_flag_t flags);
3016typedef 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;
3075typedef uint64_t pa_channel_position_mask_t;
3076typedef 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;
3085typedef struct pa_channel_map {
3086 uint8_t channels;
3087 pa_channel_position_t map[32U];
3088} pa_channel_map;
3089pa_channel_map* pa_channel_map_init(pa_channel_map *m);
3090pa_channel_map* pa_channel_map_init_mono(pa_channel_map *m);
3091pa_channel_map* pa_channel_map_init_stereo(pa_channel_map *m);
3092pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
3093pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
3094const char* pa_channel_position_to_string(pa_channel_position_t pos) __attribute__ ((pure));
3095pa_channel_position_t pa_channel_position_from_string(const char *s) __attribute__ ((pure));
3096const char* pa_channel_position_to_pretty_string(pa_channel_position_t pos);
3097char* pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map);
3098pa_channel_map *pa_channel_map_parse(pa_channel_map *map, const char *s);
3099int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b) __attribute__ ((pure));
3100int pa_channel_map_valid(const pa_channel_map *map) __attribute__ ((pure));
3101int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *ss) __attribute__ ((pure));
3102int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) __attribute__ ((pure));
3103int pa_channel_map_can_balance(const pa_channel_map *map) __attribute__ ((pure));
3104int pa_channel_map_can_fade(const pa_channel_map *map) __attribute__ ((pure));
3105const char* pa_channel_map_to_name(const pa_channel_map *map) __attribute__ ((pure));
3106const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) __attribute__ ((pure));
3107int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t p) __attribute__ ((pure));
3108pa_channel_position_mask_t pa_channel_map_mask(const pa_channel_map *map) __attribute__ ((pure));
3109typedef uint32_t pa_volume_t;
3110typedef struct pa_cvolume {
3111 uint8_t channels;
3112 pa_volume_t values[32U];
3113} pa_cvolume;
3114int pa_cvolume_equal(const pa_cvolume *a, const pa_cvolume *b) __attribute__ ((pure));
3115pa_cvolume* pa_cvolume_init(pa_cvolume *a);
3116pa_cvolume* pa_cvolume_set(pa_cvolume *a, unsigned channels, pa_volume_t v);
3117char *pa_cvolume_snprint(char *s, size_t l, const pa_cvolume *c);
3118char *pa_sw_cvolume_snprint_dB(char *s, size_t l, const pa_cvolume *c);
3119char *pa_volume_snprint(char *s, size_t l, pa_volume_t v);
3120char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v);
3121pa_volume_t pa_cvolume_avg(const pa_cvolume *a) __attribute__ ((pure));
3122pa_volume_t pa_cvolume_avg_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3123pa_volume_t pa_cvolume_max(const pa_cvolume *a) __attribute__ ((pure));
3124pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3125pa_volume_t pa_cvolume_min(const pa_cvolume *a) __attribute__ ((pure));
3126pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) __attribute__ ((pure));
3127int pa_cvolume_valid(const pa_cvolume *v) __attribute__ ((pure));
3128int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) __attribute__ ((pure));
3129pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) __attribute__ ((const));
3130pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3131pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b);
3132pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) __attribute__ ((const));
3133pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3134pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b);
3135pa_volume_t pa_sw_volume_from_dB(double f) __attribute__ ((const));
3136double pa_sw_volume_to_dB(pa_volume_t v) __attribute__ ((const));
3137pa_volume_t pa_sw_volume_from_linear(double v) __attribute__ ((const));
3138double pa_sw_volume_to_linear(pa_volume_t v) __attribute__ ((const));
3139pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to);
3140int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) __attribute__ ((pure));
3141int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) __attribute__ ((pure));
3142float pa_cvolume_get_balance(const pa_cvolume *v, const pa_channel_map *map) __attribute__ ((pure));
3143pa_cvolume* pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance);
3144float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) __attribute__ ((pure));
3145pa_cvolume* pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float new_fade);
3146pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max);
3147pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map *cm, pa_channel_position_mask_t mask);
3148pa_cvolume* pa_cvolume_set_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t, pa_volume_t v);
3149pa_volume_t pa_cvolume_get_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t) __attribute__ ((pure));
3150pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b);
3151pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc);
3152pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec);
3153struct timezone
3154 {
3155 int tz_minuteswest;
3156 int tz_dsttime;
3157 };
3158typedef struct timezone *__restrict __timezone_ptr_t;
3159extern int gettimeofday (struct timeval *__restrict __tv,
3160 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3161extern int settimeofday (__const struct timeval *__tv,
3162 __const struct timezone *__tz)
3163 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3164extern int adjtime (__const struct timeval *__delta,
3165 struct timeval *__olddelta) __attribute__ ((__nothrow__));
3166enum __itimer_which
3167 {
3168 ITIMER_REAL = 0,
3169 ITIMER_VIRTUAL = 1,
3170 ITIMER_PROF = 2
3171 };
3172struct itimerval
3173 {
3174 struct timeval it_interval;
3175 struct timeval it_value;
3176 };
3177typedef enum __itimer_which __itimer_which_t;
3178extern int getitimer (__itimer_which_t __which,
3179 struct itimerval *__value) __attribute__ ((__nothrow__));
3180extern int setitimer (__itimer_which_t __which,
3181 __const struct itimerval *__restrict __new,
3182 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
3183extern int utimes (__const char *__file, __const struct timeval __tvp[2])
3184 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3185extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
3186 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3187extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3188extern int futimesat (int __fd, __const char *__file,
3189 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
3190struct 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};
3204struct itimerspec
3205 {
3206 struct timespec it_interval;
3207 struct timespec it_value;
3208 };
3209struct sigevent;
3210extern clock_t clock (void) __attribute__ ((__nothrow__));
3211extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
3212extern double difftime (time_t __time1, time_t __time0)
3213 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3214extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
3215extern size_t strftime (char *__restrict __s, size_t __maxsize,
3216 __const char *__restrict __format,
3217 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3218extern char *strptime (__const char *__restrict __s,
3219 __const char *__restrict __fmt, struct tm *__tp)
3220 __attribute__ ((__nothrow__));
3221extern 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__));
3225extern char *strptime_l (__const char *__restrict __s,
3226 __const char *__restrict __fmt, struct tm *__tp,
3227 __locale_t __loc) __attribute__ ((__nothrow__));
3228extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3229extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3230extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3231 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3232extern struct tm *localtime_r (__const time_t *__restrict __timer,
3233 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3234extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
3235extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
3236extern char *asctime_r (__const struct tm *__restrict __tp,
3237 char *__restrict __buf) __attribute__ ((__nothrow__));
3238extern char *ctime_r (__const time_t *__restrict __timer,
3239 char *__restrict __buf) __attribute__ ((__nothrow__));
3240extern char *__tzname[2];
3241extern int __daylight;
3242extern long int __timezone;
3243extern char *tzname[2];
3244extern void tzset (void) __attribute__ ((__nothrow__));
3245extern int daylight;
3246extern long int timezone;
3247extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
3248extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
3249extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
3250extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3251extern int nanosleep (__const struct timespec *__requested_time,
3252 struct timespec *__remaining);
3253extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
3254extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
3255extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3256 __attribute__ ((__nothrow__));
3257extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3258 __const struct timespec *__req,
3259 struct timespec *__rem);
3260extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
3261extern int timer_create (clockid_t __clock_id,
3262 struct sigevent *__restrict __evp,
3263 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
3264extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
3265extern int timer_settime (timer_t __timerid, int __flags,
3266 __const struct itimerspec *__restrict __value,
3267 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
3268extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3269 __attribute__ ((__nothrow__));
3270extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
3271extern int getdate_err;
3272extern struct tm *getdate (__const char *__string);
3273extern int getdate_r (__const char *__restrict __string,
3274 struct tm *__restrict __resbufp);
3275typedef 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;
3284static 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}
3291typedef 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;
3298static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) {
3299 return
3300 x == PA_STREAM_CREATING ||
3301 x == PA_STREAM_READY;
3302}
3303typedef enum pa_operation_state {
3304 PA_OPERATION_RUNNING,
3305 PA_OPERATION_DONE,
3306 PA_OPERATION_CANCELLED
3307} pa_operation_state_t;
3308typedef enum pa_context_flags {
3309 PA_CONTEXT_NOFLAGS = 0x0000U,
3310 PA_CONTEXT_NOAUTOSPAWN = 0x0001U,
3311 PA_CONTEXT_NOFAIL = 0x0002U
3312} pa_context_flags_t;
3313typedef 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;
3319typedef 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;
3340typedef 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;
3347enum {
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};
3377typedef 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;
3391typedef 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;
3408typedef 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;
3423typedef struct pa_spawn_api {
3424 void (*prefork)(void);
3425 void (*postfork)(void);
3426 void (*atfork)(void);
3427} pa_spawn_api;
3428typedef 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;
3434typedef 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;
3445typedef 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;
3453static inline int PA_SINK_IS_OPENED(pa_sink_state_t x) {
3454 return x == PA_SINK_RUNNING || x == PA_SINK_IDLE;
3455}
3456typedef 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;
3466typedef 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;
3474static inline int PA_SOURCE_IS_OPENED(pa_source_state_t x) {
3475 return x == PA_SOURCE_RUNNING || x == PA_SOURCE_IDLE;
3476}
3477typedef void (*pa_free_cb_t)(void *p);
3478typedef struct pa_atomic {
3479 volatile int value;
3480} pa_atomic_t;
3481static inline int pa_atomic_load(const pa_atomic_t *a) {
3482 __sync_synchronize();
3483 return a->value;
3484}
3485static inline void pa_atomic_store(pa_atomic_t *a, int i) {
3486 a->value = i;
3487 __sync_synchronize();
3488}
3489static inline int pa_atomic_add(pa_atomic_t *a, int i) {
3490 return __sync_fetch_and_add(&a->value, i);
3491}
3492static inline int pa_atomic_sub(pa_atomic_t *a, int i) {
3493 return __sync_fetch_and_sub(&a->value, i);
3494}
3495static inline int pa_atomic_inc(pa_atomic_t *a) {
3496 return pa_atomic_add(a, 1);
3497}
3498static inline int pa_atomic_dec(pa_atomic_t *a) {
3499 return pa_atomic_sub(a, 1);
3500}
3501static 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}
3504typedef struct pa_atomic_ptr {
3505 volatile unsigned long value;
3506} pa_atomic_ptr_t;
3507static inline void* pa_atomic_ptr_load(const pa_atomic_ptr_t *a) {
3508 __sync_synchronize();
3509 return (void*) a->value;
3510}
3511static inline void pa_atomic_ptr_store(pa_atomic_ptr_t *a, void *p) {
3512 a->value = (unsigned long) p;
3513 __sync_synchronize();
3514}
3515static 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}
3518typedef 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;
3527typedef struct pa_memblock pa_memblock;
3528typedef struct pa_mempool pa_mempool;
3529typedef struct pa_mempool_stat pa_mempool_stat;
3530typedef struct pa_memimport_segment pa_memimport_segment;
3531typedef struct pa_memimport pa_memimport;
3532typedef struct pa_memexport pa_memexport;
3533typedef void (*pa_memimport_release_cb_t)(pa_memimport *i, uint32_t block_id, void *userdata);
3534typedef void (*pa_memexport_revoke_cb_t)(pa_memexport *e, uint32_t block_id, void *userdata);
3535struct 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};
3549pa_memblock *pa_memblock_new(pa_mempool *, size_t length);
3550pa_memblock *pa_memblock_new_pool(pa_mempool *, size_t length);
3551pa_memblock *pa_memblock_new_user(pa_mempool *, void *data, size_t length, pa_free_cb_t free_cb, pa_bool_t read_only);
3552pa_memblock *pa_memblock_new_fixed(pa_mempool *, void *data, size_t length, pa_bool_t read_only);
3553void pa_memblock_unref(pa_memblock*b);
3554pa_memblock* pa_memblock_ref(pa_memblock*b);
3555void pa_memblock_unref_fixed(pa_memblock*b);
3556pa_bool_t pa_memblock_is_read_only(pa_memblock *b);
3557pa_bool_t pa_memblock_is_silence(pa_memblock *b);
3558pa_bool_t pa_memblock_ref_is_one(pa_memblock *b);
3559void pa_memblock_set_is_silence(pa_memblock *b, pa_bool_t v);
3560void* pa_memblock_acquire(pa_memblock *b);
3561void pa_memblock_release(pa_memblock *b);
3562size_t pa_memblock_get_length(pa_memblock *b);
3563pa_mempool * pa_memblock_get_pool(pa_memblock *b);
3564pa_memblock *pa_memblock_will_need(pa_memblock *b);
3565pa_mempool* pa_mempool_new(pa_bool_t shared, size_t size);
3566void pa_mempool_free(pa_mempool *p);
3567const pa_mempool_stat* pa_mempool_get_stat(pa_mempool *p);
3568void pa_mempool_vacuum(pa_mempool *p);
3569int pa_mempool_get_shm_id(pa_mempool *p, uint32_t *id);
3570pa_bool_t pa_mempool_is_shared(pa_mempool *p);
3571size_t pa_mempool_block_size_max(pa_mempool *p);
3572pa_memimport* pa_memimport_new(pa_mempool *p, pa_memimport_release_cb_t cb, void *userdata);
3573void pa_memimport_free(pa_memimport *i);
3574pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_id, size_t offset, size_t size);
3575int pa_memimport_process_revoke(pa_memimport *i, uint32_t block_id);
3576pa_memexport* pa_memexport_new(pa_mempool *p, pa_memexport_revoke_cb_t cb, void *userdata);
3577void pa_memexport_free(pa_memexport *e);
3578int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, uint32_t *shm_id, size_t *offset, size_t *size);
3579int pa_memexport_process_release(pa_memexport *e, uint32_t id);
3580typedef struct pa_memchunk {
3581 pa_memblock *memblock;
3582 size_t index, length;
3583} pa_memchunk;
3584pa_memchunk* pa_memchunk_make_writable(pa_memchunk *c, size_t min);
3585pa_memchunk* pa_memchunk_reset(pa_memchunk *c);
3586pa_memchunk *pa_memchunk_will_need(const pa_memchunk *c);
3587pa_memchunk* pa_memchunk_memcpy(pa_memchunk *dst, pa_memchunk *src);
3588typedef struct pa_silence_cache {
3589 pa_memblock* blocks[PA_SAMPLE_MAX];
3590} pa_silence_cache;
3591void pa_silence_cache_init(pa_silence_cache *cache);
3592void pa_silence_cache_done(pa_silence_cache *cache);
3593void *pa_silence_memory(void *p, size_t length, const pa_sample_spec *spec);
3594pa_memchunk* pa_silence_memchunk(pa_memchunk *c, const pa_sample_spec *spec);
3595pa_memblock* pa_silence_memblock(pa_memblock *b, const pa_sample_spec *spec);
3596pa_memchunk* pa_silence_memchunk_get(pa_silence_cache *cache, pa_mempool *pool, pa_memchunk* ret, const pa_sample_spec *spec, size_t length);
3597typedef 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;
3607size_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);
3615void pa_volume_memchunk(
3616 pa_memchunk*c,
3617 const pa_sample_spec *spec,
3618 const pa_cvolume *volume);
3619size_t pa_frame_align(size_t l, const pa_sample_spec *ss) __attribute__ ((pure));
3620pa_bool_t pa_frame_aligned(size_t l, const pa_sample_spec *ss) __attribute__ ((pure));
3621void pa_interleave(const void *src[], unsigned channels, void *dst, size_t ss, unsigned n);
3622void pa_deinterleave(const void *src, void *dst[], unsigned channels, size_t ss, unsigned n);
3623void pa_sample_clamp(pa_sample_format_t format, void *dst, size_t dstr, const void *src, size_t sstr, unsigned n);
3624pa_usec_t pa_bytes_to_usec_round_up(uint64_t length, const pa_sample_spec *spec);
3625size_t pa_usec_to_bytes_round_up(pa_usec_t t, const pa_sample_spec *spec);
3626void pa_memchunk_dump_to_file(pa_memchunk *c, const char *fn);
3627void pa_memchunk_sine(pa_memchunk *c, pa_mempool *pool, unsigned rate, unsigned freq);
3628typedef void (*pa_do_volume_func_t) (void *samples, void *volumes, unsigned channels, unsigned length);
3629pa_do_volume_func_t pa_get_volume_func(pa_sample_format_t f);
3630void pa_set_volume_func(pa_sample_format_t f, pa_do_volume_func_t func);
3631size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to);
3632static 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}
3638static 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}
3644static 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}
3649static 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}
3654static 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}
3663static void
3664pa_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}
3716static void
3717pa_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}
3779void 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}