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