more ices
[ICEs.git] / sb-bigloo / bigloo.i.1
1 typedef long unsigned int size_t;
2 typedef unsigned char __u_char;
3 typedef unsigned short int __u_short;
4 typedef unsigned int __u_int;
5 typedef unsigned long int __u_long;
6 typedef signed char __int8_t;
7 typedef unsigned char __uint8_t;
8 typedef signed short int __int16_t;
9 typedef unsigned short int __uint16_t;
10 typedef signed int __int32_t;
11 typedef unsigned int __uint32_t;
12 typedef signed long int __int64_t;
13 typedef unsigned long int __uint64_t;
14 typedef long int __quad_t;
15 typedef unsigned long int __u_quad_t;
16 typedef unsigned long int __dev_t;
17 typedef unsigned int __uid_t;
18 typedef unsigned int __gid_t;
19 typedef unsigned long int __ino_t;
20 typedef unsigned long int __ino64_t;
21 typedef unsigned int __mode_t;
22 typedef unsigned long int __nlink_t;
23 typedef long int __off_t;
24 typedef long int __off64_t;
25 typedef int __pid_t;
26 typedef struct { int __val[2]; } __fsid_t;
27 typedef long int __clock_t;
28 typedef unsigned long int __rlim_t;
29 typedef unsigned long int __rlim64_t;
30 typedef unsigned int __id_t;
31 typedef long int __time_t;
32 typedef unsigned int __useconds_t;
33 typedef long int __suseconds_t;
34 typedef int __daddr_t;
35 typedef long int __swblk_t;
36 typedef int __key_t;
37 typedef int __clockid_t;
38 typedef void * __timer_t;
39 typedef long int __blksize_t;
40 typedef long int __blkcnt_t;
41 typedef long int __blkcnt64_t;
42 typedef unsigned long int __fsblkcnt_t;
43 typedef unsigned long int __fsblkcnt64_t;
44 typedef unsigned long int __fsfilcnt_t;
45 typedef unsigned long int __fsfilcnt64_t;
46 typedef long int __ssize_t;
47 typedef __off64_t __loff_t;
48 typedef __quad_t *__qaddr_t;
49 typedef char *__caddr_t;
50 typedef long int __intptr_t;
51 typedef unsigned int __socklen_t;
52 struct _IO_FILE;
53 typedef struct _IO_FILE FILE;
54 typedef struct _IO_FILE __FILE;
55 typedef struct
56 {
57 int __count;
58 union
59 {
60 unsigned int __wch;
61 char __wchb[4];
62 } __value;
63 } __mbstate_t;
64 typedef struct
65 {
66 __off_t __pos;
67 __mbstate_t __state;
68 } _G_fpos_t;
69 typedef struct
70 {
71 __off64_t __pos;
72 __mbstate_t __state;
73 } _G_fpos64_t;
74 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
75 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
76 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
77 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
78 typedef __builtin_va_list __gnuc_va_list;
79 struct _IO_jump_t; struct _IO_FILE;
80 typedef void _IO_lock_t;
81 struct _IO_marker {
82 struct _IO_marker *_next;
83 struct _IO_FILE *_sbuf;
84 int _pos;
85 };
86 enum __codecvt_result
87 {
88 __codecvt_ok,
89 __codecvt_partial,
90 __codecvt_error,
91 __codecvt_noconv
92 };
93 struct _IO_FILE {
94 int _flags;
95 char* _IO_read_ptr;
96 char* _IO_read_end;
97 char* _IO_read_base;
98 char* _IO_write_base;
99 char* _IO_write_ptr;
100 char* _IO_write_end;
101 char* _IO_buf_base;
102 char* _IO_buf_end;
103 char *_IO_save_base;
104 char *_IO_backup_base;
105 char *_IO_save_end;
106 struct _IO_marker *_markers;
107 struct _IO_FILE *_chain;
108 int _fileno;
109 int _flags2;
110 __off_t _old_offset;
111 unsigned short _cur_column;
112 signed char _vtable_offset;
113 char _shortbuf[1];
114 _IO_lock_t *_lock;
115 __off64_t _offset;
116 void *__pad1;
117 void *__pad2;
118 void *__pad3;
119 void *__pad4;
120 size_t __pad5;
121 int _mode;
122 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
123 };
124 typedef struct _IO_FILE _IO_FILE;
125 struct _IO_FILE_plus;
126 extern struct _IO_FILE_plus _IO_2_1_stdin_;
127 extern struct _IO_FILE_plus _IO_2_1_stdout_;
128 extern struct _IO_FILE_plus _IO_2_1_stderr_;
129 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
130 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
131 size_t __n);
132 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
133 typedef int __io_close_fn (void *__cookie);
134 extern int __underflow (_IO_FILE *);
135 extern int __uflow (_IO_FILE *);
136 extern int __overflow (_IO_FILE *, int);
137 extern int _IO_getc (_IO_FILE *__fp);
138 extern int _IO_putc (int __c, _IO_FILE *__fp);
139 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
140 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
141 extern int _IO_peekc_locked (_IO_FILE *__fp);
142 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
143 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
144 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
145 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
146 __gnuc_va_list, int *__restrict);
147 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
148 __gnuc_va_list);
149 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
150 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
151 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
152 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
153 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
154 typedef _G_fpos_t fpos_t;
155 extern struct _IO_FILE *stdin;
156 extern struct _IO_FILE *stdout;
157 extern struct _IO_FILE *stderr;
158 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
159 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
160 extern int renameat (int __oldfd, __const char *__old, int __newfd,
161 __const char *__new) __attribute__ ((__nothrow__));
162 extern FILE *tmpfile (void) ;
163 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
164 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
165 extern char *tempnam (__const char *__dir, __const char *__pfx)
166 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
167 extern int fclose (FILE *__stream);
168 extern int fflush (FILE *__stream);
169 extern int fflush_unlocked (FILE *__stream);
170 extern FILE *fopen (__const char *__restrict __filename,
171 __const char *__restrict __modes) ;
172 extern FILE *freopen (__const char *__restrict __filename,
173 __const char *__restrict __modes,
174 FILE *__restrict __stream) ;
175 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
176 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
177 __attribute__ ((__nothrow__)) ;
178 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
179 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
180 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
181 int __modes, size_t __n) __attribute__ ((__nothrow__));
182 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
183 size_t __size) __attribute__ ((__nothrow__));
184 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
185 extern int fprintf (FILE *__restrict __stream,
186 __const char *__restrict __format, ...);
187 extern int printf (__const char *__restrict __format, ...);
188 extern int sprintf (char *__restrict __s,
189 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
190 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
191 __gnuc_va_list __arg);
192 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
193 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
194 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
195 extern int snprintf (char *__restrict __s, size_t __maxlen,
196 __const char *__restrict __format, ...)
197 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
198 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
199 __const char *__restrict __format, __gnuc_va_list __arg)
200 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
201 extern int vdprintf (int __fd, __const char *__restrict __fmt,
202 __gnuc_va_list __arg)
203 __attribute__ ((__format__ (__printf__, 2, 0)));
204 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
205 __attribute__ ((__format__ (__printf__, 2, 3)));
206 extern int fscanf (FILE *__restrict __stream,
207 __const char *__restrict __format, ...) ;
208 extern int scanf (__const char *__restrict __format, ...) ;
209 extern int sscanf (__const char *__restrict __s,
210 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
211 extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") ;
212 extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") ;
213 extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__));
214 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
215 __gnuc_va_list __arg)
216 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
217 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
218 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
219 extern int vsscanf (__const char *__restrict __s,
220 __const char *__restrict __format, __gnuc_va_list __arg)
221 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
222 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
223 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
224 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
225 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
226 extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf")
227 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
228 extern int fgetc (FILE *__stream);
229 extern int getc (FILE *__stream);
230 extern int getchar (void);
231 extern int getc_unlocked (FILE *__stream);
232 extern int getchar_unlocked (void);
233 extern int fgetc_unlocked (FILE *__stream);
234 extern int fputc (int __c, FILE *__stream);
235 extern int putc (int __c, FILE *__stream);
236 extern int putchar (int __c);
237 extern int fputc_unlocked (int __c, FILE *__stream);
238 extern int putc_unlocked (int __c, FILE *__stream);
239 extern int putchar_unlocked (int __c);
240 extern int getw (FILE *__stream);
241 extern int putw (int __w, FILE *__stream);
242 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
243 ;
244 extern char *gets (char *__s) ;
245 extern __ssize_t __getdelim (char **__restrict __lineptr,
246 size_t *__restrict __n, int __delimiter,
247 FILE *__restrict __stream) ;
248 extern __ssize_t getdelim (char **__restrict __lineptr,
249 size_t *__restrict __n, int __delimiter,
250 FILE *__restrict __stream) ;
251 extern __ssize_t getline (char **__restrict __lineptr,
252 size_t *__restrict __n,
253 FILE *__restrict __stream) ;
254 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
255 extern int puts (__const char *__s);
256 extern int ungetc (int __c, FILE *__stream);
257 extern size_t fread (void *__restrict __ptr, size_t __size,
258 size_t __n, FILE *__restrict __stream) ;
259 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
260 size_t __n, FILE *__restrict __s) ;
261 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
262 size_t __n, FILE *__restrict __stream) ;
263 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
264 size_t __n, FILE *__restrict __stream) ;
265 extern int fseek (FILE *__stream, long int __off, int __whence);
266 extern long int ftell (FILE *__stream) ;
267 extern void rewind (FILE *__stream);
268 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
269 extern __off_t ftello (FILE *__stream) ;
270 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
271 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
272 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
273 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
274 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
275 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
276 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
277 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
278 extern void perror (__const char *__s);
279 extern int sys_nerr;
280 extern __const char *__const sys_errlist[];
281 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
282 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
283 extern FILE *popen (__const char *__command, __const char *__modes) ;
284 extern int pclose (FILE *__stream);
285 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
286 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
287 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
288 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
289 typedef long int __jmp_buf[8];
290 typedef int __sig_atomic_t;
291 typedef struct
292 {
293 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
294 } __sigset_t;
295 struct __jmp_buf_tag
296 {
297 __jmp_buf __jmpbuf;
298 int __mask_was_saved;
299 __sigset_t __saved_mask;
300 };
301 typedef struct __jmp_buf_tag jmp_buf[1];
302 extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));
303 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));
304 extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
305 extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
306 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
307 extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
308 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
309 typedef struct __jmp_buf_tag sigjmp_buf[1];
310 extern void siglongjmp (sigjmp_buf __env, int __val)
311 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
312 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
313 typedef int wchar_t;
314 typedef struct
315 {
316 int quot;
317 int rem;
318 } div_t;
319 typedef struct
320 {
321 long int quot;
322 long int rem;
323 } ldiv_t;
324 __extension__ typedef struct
325 {
326 long long int quot;
327 long long int rem;
328 } lldiv_t;
329 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
330 extern double atof (__const char *__nptr)
331 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
332 extern int atoi (__const char *__nptr)
333 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
334 extern long int atol (__const char *__nptr)
335 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
336 __extension__ extern long long int atoll (__const char *__nptr)
337 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
338 extern double strtod (__const char *__restrict __nptr,
339 char **__restrict __endptr)
340 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
341 extern float strtof (__const char *__restrict __nptr,
342 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
343 extern long double strtold (__const char *__restrict __nptr,
344 char **__restrict __endptr)
345 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
346 extern long int strtol (__const char *__restrict __nptr,
347 char **__restrict __endptr, int __base)
348 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
349 extern unsigned long int strtoul (__const char *__restrict __nptr,
350 char **__restrict __endptr, int __base)
351 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
352 __extension__
353 extern long long int strtoq (__const char *__restrict __nptr,
354 char **__restrict __endptr, int __base)
355 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
356 __extension__
357 extern unsigned long long int strtouq (__const char *__restrict __nptr,
358 char **__restrict __endptr, int __base)
359 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
360 __extension__
361 extern long long int strtoll (__const char *__restrict __nptr,
362 char **__restrict __endptr, int __base)
363 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
364 __extension__
365 extern unsigned long long int strtoull (__const char *__restrict __nptr,
366 char **__restrict __endptr, int __base)
367 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
368 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
369 extern long int a64l (__const char *__s)
370 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
371 typedef __u_char u_char;
372 typedef __u_short u_short;
373 typedef __u_int u_int;
374 typedef __u_long u_long;
375 typedef __quad_t quad_t;
376 typedef __u_quad_t u_quad_t;
377 typedef __fsid_t fsid_t;
378 typedef __loff_t loff_t;
379 typedef __ino_t ino_t;
380 typedef __dev_t dev_t;
381 typedef __gid_t gid_t;
382 typedef __mode_t mode_t;
383 typedef __nlink_t nlink_t;
384 typedef __uid_t uid_t;
385 typedef __off_t off_t;
386 typedef __pid_t pid_t;
387 typedef __id_t id_t;
388 typedef __ssize_t ssize_t;
389 typedef __daddr_t daddr_t;
390 typedef __caddr_t caddr_t;
391 typedef __key_t key_t;
392 typedef __time_t time_t;
393 typedef __clockid_t clockid_t;
394 typedef __timer_t timer_t;
395 typedef unsigned long int ulong;
396 typedef unsigned short int ushort;
397 typedef unsigned int uint;
398 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
399 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
400 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
401 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
402 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
403 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
404 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
405 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
406 typedef int register_t __attribute__ ((__mode__ (__word__)));
407 typedef __sigset_t sigset_t;
408 struct timespec
409 {
410 __time_t tv_sec;
411 long int tv_nsec;
412 };
413 struct timeval
414 {
415 __time_t tv_sec;
416 __suseconds_t tv_usec;
417 };
418 typedef __suseconds_t suseconds_t;
419 typedef long int __fd_mask;
420 typedef struct
421 {
422 __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
423 } fd_set;
424 typedef __fd_mask fd_mask;
425 extern int select (int __nfds, fd_set *__restrict __readfds,
426 fd_set *__restrict __writefds,
427 fd_set *__restrict __exceptfds,
428 struct timeval *__restrict __timeout);
429 extern int pselect (int __nfds, fd_set *__restrict __readfds,
430 fd_set *__restrict __writefds,
431 fd_set *__restrict __exceptfds,
432 const struct timespec *__restrict __timeout,
433 const __sigset_t *__restrict __sigmask);
434 __extension__
435 extern unsigned int gnu_dev_major (unsigned long long int __dev)
436 __attribute__ ((__nothrow__));
437 __extension__
438 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
439 __attribute__ ((__nothrow__));
440 __extension__
441 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
442 unsigned int __minor)
443 __attribute__ ((__nothrow__));
444 typedef __blkcnt_t blkcnt_t;
445 typedef __fsblkcnt_t fsblkcnt_t;
446 typedef __fsfilcnt_t fsfilcnt_t;
447 typedef unsigned long int pthread_t;
448 typedef union
449 {
450 char __size[56];
451 long int __align;
452 } pthread_attr_t;
453 typedef struct __pthread_internal_list
454 {
455 struct __pthread_internal_list *__prev;
456 struct __pthread_internal_list *__next;
457 } __pthread_list_t;
458 typedef union
459 {
460 struct __pthread_mutex_s
461 {
462 int __lock;
463 unsigned int __count;
464 int __owner;
465 unsigned int __nusers;
466 int __kind;
467 int __spins;
468 __pthread_list_t __list;
469 } __data;
470 char __size[40];
471 long int __align;
472 } pthread_mutex_t;
473 typedef union
474 {
475 char __size[4];
476 int __align;
477 } pthread_mutexattr_t;
478 typedef union
479 {
480 struct
481 {
482 int __lock;
483 unsigned int __futex;
484 __extension__ unsigned long long int __total_seq;
485 __extension__ unsigned long long int __wakeup_seq;
486 __extension__ unsigned long long int __woken_seq;
487 void *__mutex;
488 unsigned int __nwaiters;
489 unsigned int __broadcast_seq;
490 } __data;
491 char __size[48];
492 __extension__ long long int __align;
493 } pthread_cond_t;
494 typedef union
495 {
496 char __size[4];
497 int __align;
498 } pthread_condattr_t;
499 typedef unsigned int pthread_key_t;
500 typedef int pthread_once_t;
501 typedef union
502 {
503 struct
504 {
505 int __lock;
506 unsigned int __nr_readers;
507 unsigned int __readers_wakeup;
508 unsigned int __writer_wakeup;
509 unsigned int __nr_readers_queued;
510 unsigned int __nr_writers_queued;
511 int __writer;
512 int __shared;
513 unsigned long int __pad1;
514 unsigned long int __pad2;
515 unsigned int __flags;
516 } __data;
517 char __size[56];
518 long int __align;
519 } pthread_rwlock_t;
520 typedef union
521 {
522 char __size[8];
523 long int __align;
524 } pthread_rwlockattr_t;
525 typedef volatile int pthread_spinlock_t;
526 typedef union
527 {
528 char __size[32];
529 long int __align;
530 } pthread_barrier_t;
531 typedef union
532 {
533 char __size[4];
534 int __align;
535 } pthread_barrierattr_t;
536 extern long int random (void) __attribute__ ((__nothrow__));
537 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
538 extern char *initstate (unsigned int __seed, char *__statebuf,
539 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
540 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
541 struct random_data
542 {
543 int32_t *fptr;
544 int32_t *rptr;
545 int32_t *state;
546 int rand_type;
547 int rand_deg;
548 int rand_sep;
549 int32_t *end_ptr;
550 };
551 extern int random_r (struct random_data *__restrict __buf,
552 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
553 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
554 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
555 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
556 size_t __statelen,
557 struct random_data *__restrict __buf)
558 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
559 extern int setstate_r (char *__restrict __statebuf,
560 struct random_data *__restrict __buf)
561 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
562 extern int rand (void) __attribute__ ((__nothrow__));
563 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
564 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
565 extern double drand48 (void) __attribute__ ((__nothrow__));
566 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
567 extern long int lrand48 (void) __attribute__ ((__nothrow__));
568 extern long int nrand48 (unsigned short int __xsubi[3])
569 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
570 extern long int mrand48 (void) __attribute__ ((__nothrow__));
571 extern long int jrand48 (unsigned short int __xsubi[3])
572 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
573 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
574 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
575 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
576 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
577 struct drand48_data
578 {
579 unsigned short int __x[3];
580 unsigned short int __old_x[3];
581 unsigned short int __c;
582 unsigned short int __init;
583 unsigned long long int __a;
584 };
585 extern int drand48_r (struct drand48_data *__restrict __buffer,
586 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
587 extern int erand48_r (unsigned short int __xsubi[3],
588 struct drand48_data *__restrict __buffer,
589 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
590 extern int lrand48_r (struct drand48_data *__restrict __buffer,
591 long int *__restrict __result)
592 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
593 extern int nrand48_r (unsigned short int __xsubi[3],
594 struct drand48_data *__restrict __buffer,
595 long int *__restrict __result)
596 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
597 extern int mrand48_r (struct drand48_data *__restrict __buffer,
598 long int *__restrict __result)
599 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
600 extern int jrand48_r (unsigned short int __xsubi[3],
601 struct drand48_data *__restrict __buffer,
602 long int *__restrict __result)
603 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
604 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
605 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
606 extern int seed48_r (unsigned short int __seed16v[3],
607 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
608 extern int lcong48_r (unsigned short int __param[7],
609 struct drand48_data *__buffer)
610 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
611 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
612 extern void *calloc (size_t __nmemb, size_t __size)
613 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
614 extern void *realloc (void *__ptr, size_t __size)
615 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
616 extern void free (void *__ptr) __attribute__ ((__nothrow__));
617 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
618 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
619 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
620 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
621 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
622 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
623 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
624 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
625 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
626 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
627 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
628 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
629 extern char *__secure_getenv (__const char *__name)
630 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
631 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
632 extern int setenv (__const char *__name, __const char *__value, int __replace)
633 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
634 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
635 extern int clearenv (void) __attribute__ ((__nothrow__));
636 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
637 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
638 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
639 extern int system (__const char *__command) ;
640 extern char *realpath (__const char *__restrict __name,
641 char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
642 typedef int (*__compar_fn_t) (__const void *, __const void *);
643 extern void *bsearch (__const void *__key, __const void *__base,
644 size_t __nmemb, size_t __size, __compar_fn_t __compar)
645 __attribute__ ((__nonnull__ (1, 2, 5))) ;
646 extern void qsort (void *__base, size_t __nmemb, size_t __size,
647 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
648 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
649 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
650 __extension__ extern long long int llabs (long long int __x)
651 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
652 extern div_t div (int __numer, int __denom)
653 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
654 extern ldiv_t ldiv (long int __numer, long int __denom)
655 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
656 __extension__ extern lldiv_t lldiv (long long int __numer,
657 long long int __denom)
658 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
659 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
660 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
661 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
662 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
663 extern char *gcvt (double __value, int __ndigit, char *__buf)
664 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
665 extern char *qecvt (long double __value, int __ndigit,
666 int *__restrict __decpt, int *__restrict __sign)
667 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
668 extern char *qfcvt (long double __value, int __ndigit,
669 int *__restrict __decpt, int *__restrict __sign)
670 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
671 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
672 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
673 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
674 int *__restrict __sign, char *__restrict __buf,
675 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
676 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
677 int *__restrict __sign, char *__restrict __buf,
678 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
679 extern int qecvt_r (long double __value, int __ndigit,
680 int *__restrict __decpt, int *__restrict __sign,
681 char *__restrict __buf, size_t __len)
682 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
683 extern int qfcvt_r (long double __value, int __ndigit,
684 int *__restrict __decpt, int *__restrict __sign,
685 char *__restrict __buf, size_t __len)
686 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
687 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
688 extern int mbtowc (wchar_t *__restrict __pwc,
689 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
690 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
691 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
692 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
693 extern size_t wcstombs (char *__restrict __s,
694 __const wchar_t *__restrict __pwcs, size_t __n)
695 __attribute__ ((__nothrow__));
696 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
697 extern int posix_openpt (int __oflag) ;
698 extern int getloadavg (double __loadavg[], int __nelem)
699 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
700 typedef float float_t;
701 typedef double double_t;
702 extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
703 extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
704 extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
705 extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
706 extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
707 extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
708 extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
709 extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
710 extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
711 extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
712 extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
713 extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
714 extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
715 extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
716 extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
717 extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
718 extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
719 extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
720 extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
721 extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
722 extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
723 extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
724 extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
725 extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
726 extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
727 extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
728 extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
729 extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
730 extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
731 extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
732 extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
733 extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
734 extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
735 extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
736 extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
737 extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
738 extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
739 extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
740 extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
741 extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
742 extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
743 extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
744 extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
745 extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
746 extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
747 extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
748 extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
749 extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
750 extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
751 extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
752 extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
753 extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
754 extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
755 extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
756 extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
757 extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
758 extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
759 extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
760 extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
761 extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
762 extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
763 extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
764 extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
765 extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
766 extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
767 extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
768 extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
769 extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
770 extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
771 extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
772 extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
773 extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
774 extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
775 __attribute__ ((__const__));
776 extern int __signbit (double __value) __attribute__ ((__nothrow__))
777 __attribute__ ((__const__));
778 extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
779 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
780 extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
781 extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
782 extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
783 extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
784 extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
785 extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
786 extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
787 extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
788 extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
789 extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
790 extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
791 extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
792 extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
793 extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
794 extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
795 extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
796 extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
797 extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
798 extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
799 extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
800 extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
801 extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
802 extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
803 extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
804 extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
805 extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
806 extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
807 extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
808 extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
809 extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
810 extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
811 extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
812 extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
813 extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
814 extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
815 extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
816 extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
817 extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
818 extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
819 extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
820 extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
821 extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
822 extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
823 extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
824 extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
825 extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
826 extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
827 extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
828 extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
829 extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
830 extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
831 extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
832 extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
833 extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
834 extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
835 extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
836 extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
837 extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
838 extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
839 extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
840 extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
841 extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
842 extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
843 extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
844 extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
845 extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
846 extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
847 extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
848 extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
849 extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
850 extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
851 extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
852 extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
853 __attribute__ ((__const__));
854 extern int __signbitf (float __value) __attribute__ ((__nothrow__))
855 __attribute__ ((__const__));
856 extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
857 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
858 extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
859 extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
860 extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
861 extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
862 extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
863 extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
864 extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
865 extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
866 extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
867 extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
868 extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
869 extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
870 extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
871 extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
872 extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
873 extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
874 extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
875 extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
876 extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
877 extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
878 extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
879 extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
880 extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
881 extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
882 extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
883 extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
884 extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
885 extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
886 extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
887 extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
888 extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
889 extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
890 extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
891 extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
892 extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
893 extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
894 extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
895 extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
896 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__));
897 extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
898 extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
899 extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
900 extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
901 extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
902 extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
903 extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
904 extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
905 extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
906 extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
907 extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
908 extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
909 extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
910 extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
911 extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
912 extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
913 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__));
914 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__));
915 extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
916 extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
917 extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
918 extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
919 extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
920 extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
921 extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
922 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__));
923 extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
924 extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
925 extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
926 extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
927 extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
928 extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
929 extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
930 extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
931 __attribute__ ((__const__));
932 extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
933 __attribute__ ((__const__));
934 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__));
935 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
936 extern int signgam;
937 enum
938 {
939 FP_NAN,
940 FP_INFINITE,
941 FP_ZERO,
942 FP_SUBNORMAL,
943 FP_NORMAL
944 };
945 typedef enum
946 {
947 _IEEE_ = -1,
948 _SVID_,
949 _XOPEN_,
950 _POSIX_,
951 _ISOC_
952 } _LIB_VERSION_TYPE;
953 extern _LIB_VERSION_TYPE _LIB_VERSION;
954 struct exception
955 {
956 int type;
957 char *name;
958 double arg1;
959 double arg2;
960 double retval;
961 };
962 extern int matherr (struct exception *__exc);
963 enum
964 {
965 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
966 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
967 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
968 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
969 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
970 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
971 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
972 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
973 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
974 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
975 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
976 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
977 };
978 extern __const unsigned short int **__ctype_b_loc (void)
979 __attribute__ ((__nothrow__)) __attribute__ ((__const));
980 extern __const __int32_t **__ctype_tolower_loc (void)
981 __attribute__ ((__nothrow__)) __attribute__ ((__const));
982 extern __const __int32_t **__ctype_toupper_loc (void)
983 __attribute__ ((__nothrow__)) __attribute__ ((__const));
984 extern int isalnum (int) __attribute__ ((__nothrow__));
985 extern int isalpha (int) __attribute__ ((__nothrow__));
986 extern int iscntrl (int) __attribute__ ((__nothrow__));
987 extern int isdigit (int) __attribute__ ((__nothrow__));
988 extern int islower (int) __attribute__ ((__nothrow__));
989 extern int isgraph (int) __attribute__ ((__nothrow__));
990 extern int isprint (int) __attribute__ ((__nothrow__));
991 extern int ispunct (int) __attribute__ ((__nothrow__));
992 extern int isspace (int) __attribute__ ((__nothrow__));
993 extern int isupper (int) __attribute__ ((__nothrow__));
994 extern int isxdigit (int) __attribute__ ((__nothrow__));
995 extern int tolower (int __c) __attribute__ ((__nothrow__));
996 extern int toupper (int __c) __attribute__ ((__nothrow__));
997 extern int isblank (int) __attribute__ ((__nothrow__));
998 extern int isascii (int __c) __attribute__ ((__nothrow__));
999 extern int toascii (int __c) __attribute__ ((__nothrow__));
1000 extern int _toupper (int) __attribute__ ((__nothrow__));
1001 extern int _tolower (int) __attribute__ ((__nothrow__));
1002 typedef struct __locale_struct
1003 {
1004 struct locale_data *__locales[13];
1005 const unsigned short int *__ctype_b;
1006 const int *__ctype_tolower;
1007 const int *__ctype_toupper;
1008 const char *__names[13];
1009 } *__locale_t;
1010 typedef __locale_t locale_t;
1011 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
1012 extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
1013 extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
1014 extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
1015 extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
1016 extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
1017 extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
1018 extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
1019 extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
1020 extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
1021 extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
1022 extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
1023 extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
1024 extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
1025 extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
1026 extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
1027 typedef __useconds_t useconds_t;
1028 typedef __intptr_t intptr_t;
1029 typedef __socklen_t socklen_t;
1030 extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1031 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
1032 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
1033 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
1034 extern int close (int __fd);
1035 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
1036 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
1037 extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
1038 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
1039 extern unsigned int sleep (unsigned int __seconds);
1040 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
1041 __attribute__ ((__nothrow__));
1042 extern int usleep (__useconds_t __useconds);
1043 extern int pause (void);
1044 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
1045 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1046 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;
1047 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
1048 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1049 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
1050 __gid_t __group, int __flag)
1051 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
1052 extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1053 extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
1054 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
1055 extern char *getwd (char *__buf)
1056 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
1057 extern int dup (int __fd) __attribute__ ((__nothrow__)) ;
1058 extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
1059 extern char **__environ;
1060 extern int execve (__const char *__path, char *__const __argv[],
1061 char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1062 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
1063 __attribute__ ((__nothrow__));
1064 extern int execv (__const char *__path, char *__const __argv[])
1065 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1066 extern int execle (__const char *__path, __const char *__arg, ...)
1067 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1068 extern int execl (__const char *__path, __const char *__arg, ...)
1069 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1070 extern int execvp (__const char *__file, char *__const __argv[])
1071 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1072 extern int execlp (__const char *__file, __const char *__arg, ...)
1073 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1074 extern int nice (int __inc) __attribute__ ((__nothrow__)) ;
1075 extern void _exit (int __status) __attribute__ ((__noreturn__));
1076 enum
1077 {
1078 _PC_LINK_MAX,
1079 _PC_MAX_CANON,
1080 _PC_MAX_INPUT,
1081 _PC_NAME_MAX,
1082 _PC_PATH_MAX,
1083 _PC_PIPE_BUF,
1084 _PC_CHOWN_RESTRICTED,
1085 _PC_NO_TRUNC,
1086 _PC_VDISABLE,
1087 _PC_SYNC_IO,
1088 _PC_ASYNC_IO,
1089 _PC_PRIO_IO,
1090 _PC_SOCK_MAXBUF,
1091 _PC_FILESIZEBITS,
1092 _PC_REC_INCR_XFER_SIZE,
1093 _PC_REC_MAX_XFER_SIZE,
1094 _PC_REC_MIN_XFER_SIZE,
1095 _PC_REC_XFER_ALIGN,
1096 _PC_ALLOC_SIZE_MIN,
1097 _PC_SYMLINK_MAX,
1098 _PC_2_SYMLINKS
1099 };
1100 enum
1101 {
1102 _SC_ARG_MAX,
1103 _SC_CHILD_MAX,
1104 _SC_CLK_TCK,
1105 _SC_NGROUPS_MAX,
1106 _SC_OPEN_MAX,
1107 _SC_STREAM_MAX,
1108 _SC_TZNAME_MAX,
1109 _SC_JOB_CONTROL,
1110 _SC_SAVED_IDS,
1111 _SC_REALTIME_SIGNALS,
1112 _SC_PRIORITY_SCHEDULING,
1113 _SC_TIMERS,
1114 _SC_ASYNCHRONOUS_IO,
1115 _SC_PRIORITIZED_IO,
1116 _SC_SYNCHRONIZED_IO,
1117 _SC_FSYNC,
1118 _SC_MAPPED_FILES,
1119 _SC_MEMLOCK,
1120 _SC_MEMLOCK_RANGE,
1121 _SC_MEMORY_PROTECTION,
1122 _SC_MESSAGE_PASSING,
1123 _SC_SEMAPHORES,
1124 _SC_SHARED_MEMORY_OBJECTS,
1125 _SC_AIO_LISTIO_MAX,
1126 _SC_AIO_MAX,
1127 _SC_AIO_PRIO_DELTA_MAX,
1128 _SC_DELAYTIMER_MAX,
1129 _SC_MQ_OPEN_MAX,
1130 _SC_MQ_PRIO_MAX,
1131 _SC_VERSION,
1132 _SC_PAGESIZE,
1133 _SC_RTSIG_MAX,
1134 _SC_SEM_NSEMS_MAX,
1135 _SC_SEM_VALUE_MAX,
1136 _SC_SIGQUEUE_MAX,
1137 _SC_TIMER_MAX,
1138 _SC_BC_BASE_MAX,
1139 _SC_BC_DIM_MAX,
1140 _SC_BC_SCALE_MAX,
1141 _SC_BC_STRING_MAX,
1142 _SC_COLL_WEIGHTS_MAX,
1143 _SC_EQUIV_CLASS_MAX,
1144 _SC_EXPR_NEST_MAX,
1145 _SC_LINE_MAX,
1146 _SC_RE_DUP_MAX,
1147 _SC_CHARCLASS_NAME_MAX,
1148 _SC_2_VERSION,
1149 _SC_2_C_BIND,
1150 _SC_2_C_DEV,
1151 _SC_2_FORT_DEV,
1152 _SC_2_FORT_RUN,
1153 _SC_2_SW_DEV,
1154 _SC_2_LOCALEDEF,
1155 _SC_PII,
1156 _SC_PII_XTI,
1157 _SC_PII_SOCKET,
1158 _SC_PII_INTERNET,
1159 _SC_PII_OSI,
1160 _SC_POLL,
1161 _SC_SELECT,
1162 _SC_UIO_MAXIOV,
1163 _SC_IOV_MAX = _SC_UIO_MAXIOV,
1164 _SC_PII_INTERNET_STREAM,
1165 _SC_PII_INTERNET_DGRAM,
1166 _SC_PII_OSI_COTS,
1167 _SC_PII_OSI_CLTS,
1168 _SC_PII_OSI_M,
1169 _SC_T_IOV_MAX,
1170 _SC_THREADS,
1171 _SC_THREAD_SAFE_FUNCTIONS,
1172 _SC_GETGR_R_SIZE_MAX,
1173 _SC_GETPW_R_SIZE_MAX,
1174 _SC_LOGIN_NAME_MAX,
1175 _SC_TTY_NAME_MAX,
1176 _SC_THREAD_DESTRUCTOR_ITERATIONS,
1177 _SC_THREAD_KEYS_MAX,
1178 _SC_THREAD_STACK_MIN,
1179 _SC_THREAD_THREADS_MAX,
1180 _SC_THREAD_ATTR_STACKADDR,
1181 _SC_THREAD_ATTR_STACKSIZE,
1182 _SC_THREAD_PRIORITY_SCHEDULING,
1183 _SC_THREAD_PRIO_INHERIT,
1184 _SC_THREAD_PRIO_PROTECT,
1185 _SC_THREAD_PROCESS_SHARED,
1186 _SC_NPROCESSORS_CONF,
1187 _SC_NPROCESSORS_ONLN,
1188 _SC_PHYS_PAGES,
1189 _SC_AVPHYS_PAGES,
1190 _SC_ATEXIT_MAX,
1191 _SC_PASS_MAX,
1192 _SC_XOPEN_VERSION,
1193 _SC_XOPEN_XCU_VERSION,
1194 _SC_XOPEN_UNIX,
1195 _SC_XOPEN_CRYPT,
1196 _SC_XOPEN_ENH_I18N,
1197 _SC_XOPEN_SHM,
1198 _SC_2_CHAR_TERM,
1199 _SC_2_C_VERSION,
1200 _SC_2_UPE,
1201 _SC_XOPEN_XPG2,
1202 _SC_XOPEN_XPG3,
1203 _SC_XOPEN_XPG4,
1204 _SC_CHAR_BIT,
1205 _SC_CHAR_MAX,
1206 _SC_CHAR_MIN,
1207 _SC_INT_MAX,
1208 _SC_INT_MIN,
1209 _SC_LONG_BIT,
1210 _SC_WORD_BIT,
1211 _SC_MB_LEN_MAX,
1212 _SC_NZERO,
1213 _SC_SSIZE_MAX,
1214 _SC_SCHAR_MAX,
1215 _SC_SCHAR_MIN,
1216 _SC_SHRT_MAX,
1217 _SC_SHRT_MIN,
1218 _SC_UCHAR_MAX,
1219 _SC_UINT_MAX,
1220 _SC_ULONG_MAX,
1221 _SC_USHRT_MAX,
1222 _SC_NL_ARGMAX,
1223 _SC_NL_LANGMAX,
1224 _SC_NL_MSGMAX,
1225 _SC_NL_NMAX,
1226 _SC_NL_SETMAX,
1227 _SC_NL_TEXTMAX,
1228 _SC_XBS5_ILP32_OFF32,
1229 _SC_XBS5_ILP32_OFFBIG,
1230 _SC_XBS5_LP64_OFF64,
1231 _SC_XBS5_LPBIG_OFFBIG,
1232 _SC_XOPEN_LEGACY,
1233 _SC_XOPEN_REALTIME,
1234 _SC_XOPEN_REALTIME_THREADS,
1235 _SC_ADVISORY_INFO,
1236 _SC_BARRIERS,
1237 _SC_BASE,
1238 _SC_C_LANG_SUPPORT,
1239 _SC_C_LANG_SUPPORT_R,
1240 _SC_CLOCK_SELECTION,
1241 _SC_CPUTIME,
1242 _SC_THREAD_CPUTIME,
1243 _SC_DEVICE_IO,
1244 _SC_DEVICE_SPECIFIC,
1245 _SC_DEVICE_SPECIFIC_R,
1246 _SC_FD_MGMT,
1247 _SC_FIFO,
1248 _SC_PIPE,
1249 _SC_FILE_ATTRIBUTES,
1250 _SC_FILE_LOCKING,
1251 _SC_FILE_SYSTEM,
1252 _SC_MONOTONIC_CLOCK,
1253 _SC_MULTI_PROCESS,
1254 _SC_SINGLE_PROCESS,
1255 _SC_NETWORKING,
1256 _SC_READER_WRITER_LOCKS,
1257 _SC_SPIN_LOCKS,
1258 _SC_REGEXP,
1259 _SC_REGEX_VERSION,
1260 _SC_SHELL,
1261 _SC_SIGNALS,
1262 _SC_SPAWN,
1263 _SC_SPORADIC_SERVER,
1264 _SC_THREAD_SPORADIC_SERVER,
1265 _SC_SYSTEM_DATABASE,
1266 _SC_SYSTEM_DATABASE_R,
1267 _SC_TIMEOUTS,
1268 _SC_TYPED_MEMORY_OBJECTS,
1269 _SC_USER_GROUPS,
1270 _SC_USER_GROUPS_R,
1271 _SC_2_PBS,
1272 _SC_2_PBS_ACCOUNTING,
1273 _SC_2_PBS_LOCATE,
1274 _SC_2_PBS_MESSAGE,
1275 _SC_2_PBS_TRACK,
1276 _SC_SYMLOOP_MAX,
1277 _SC_STREAMS,
1278 _SC_2_PBS_CHECKPOINT,
1279 _SC_V6_ILP32_OFF32,
1280 _SC_V6_ILP32_OFFBIG,
1281 _SC_V6_LP64_OFF64,
1282 _SC_V6_LPBIG_OFFBIG,
1283 _SC_HOST_NAME_MAX,
1284 _SC_TRACE,
1285 _SC_TRACE_EVENT_FILTER,
1286 _SC_TRACE_INHERIT,
1287 _SC_TRACE_LOG,
1288 _SC_LEVEL1_ICACHE_SIZE,
1289 _SC_LEVEL1_ICACHE_ASSOC,
1290 _SC_LEVEL1_ICACHE_LINESIZE,
1291 _SC_LEVEL1_DCACHE_SIZE,
1292 _SC_LEVEL1_DCACHE_ASSOC,
1293 _SC_LEVEL1_DCACHE_LINESIZE,
1294 _SC_LEVEL2_CACHE_SIZE,
1295 _SC_LEVEL2_CACHE_ASSOC,
1296 _SC_LEVEL2_CACHE_LINESIZE,
1297 _SC_LEVEL3_CACHE_SIZE,
1298 _SC_LEVEL3_CACHE_ASSOC,
1299 _SC_LEVEL3_CACHE_LINESIZE,
1300 _SC_LEVEL4_CACHE_SIZE,
1301 _SC_LEVEL4_CACHE_ASSOC,
1302 _SC_LEVEL4_CACHE_LINESIZE,
1303 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
1304 _SC_RAW_SOCKETS,
1305 _SC_V7_ILP32_OFF32,
1306 _SC_V7_ILP32_OFFBIG,
1307 _SC_V7_LP64_OFF64,
1308 _SC_V7_LPBIG_OFFBIG,
1309 _SC_SS_REPL_MAX,
1310 _SC_TRACE_EVENT_NAME_MAX,
1311 _SC_TRACE_NAME_MAX,
1312 _SC_TRACE_SYS_MAX,
1313 _SC_TRACE_USER_EVENT_MAX,
1314 _SC_XOPEN_STREAMS,
1315 _SC_THREAD_ROBUST_PRIO_INHERIT,
1316 _SC_THREAD_ROBUST_PRIO_PROTECT,
1317 };
1318 enum
1319 {
1320 _CS_PATH,
1321 _CS_V6_WIDTH_RESTRICTED_ENVS,
1322 _CS_GNU_LIBC_VERSION,
1323 _CS_GNU_LIBPTHREAD_VERSION,
1324 _CS_V5_WIDTH_RESTRICTED_ENVS,
1325 _CS_V7_WIDTH_RESTRICTED_ENVS,
1326 _CS_LFS_CFLAGS = 1000,
1327 _CS_LFS_LDFLAGS,
1328 _CS_LFS_LIBS,
1329 _CS_LFS_LINTFLAGS,
1330 _CS_LFS64_CFLAGS,
1331 _CS_LFS64_LDFLAGS,
1332 _CS_LFS64_LIBS,
1333 _CS_LFS64_LINTFLAGS,
1334 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
1335 _CS_XBS5_ILP32_OFF32_LDFLAGS,
1336 _CS_XBS5_ILP32_OFF32_LIBS,
1337 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
1338 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
1339 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
1340 _CS_XBS5_ILP32_OFFBIG_LIBS,
1341 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
1342 _CS_XBS5_LP64_OFF64_CFLAGS,
1343 _CS_XBS5_LP64_OFF64_LDFLAGS,
1344 _CS_XBS5_LP64_OFF64_LIBS,
1345 _CS_XBS5_LP64_OFF64_LINTFLAGS,
1346 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
1347 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
1348 _CS_XBS5_LPBIG_OFFBIG_LIBS,
1349 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
1350 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
1351 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
1352 _CS_POSIX_V6_ILP32_OFF32_LIBS,
1353 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
1354 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
1355 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
1356 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
1357 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
1358 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
1359 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
1360 _CS_POSIX_V6_LP64_OFF64_LIBS,
1361 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
1362 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
1363 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
1364 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
1365 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
1366 _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
1367 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
1368 _CS_POSIX_V7_ILP32_OFF32_LIBS,
1369 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
1370 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
1371 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
1372 _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
1373 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
1374 _CS_POSIX_V7_LP64_OFF64_CFLAGS,
1375 _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
1376 _CS_POSIX_V7_LP64_OFF64_LIBS,
1377 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
1378 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
1379 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
1380 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
1381 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
1382 };
1383 extern long int pathconf (__const char *__path, int __name)
1384 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1385 extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
1386 extern long int sysconf (int __name) __attribute__ ((__nothrow__));
1387 extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
1388 extern __pid_t getpid (void) __attribute__ ((__nothrow__));
1389 extern __pid_t getppid (void) __attribute__ ((__nothrow__));
1390 extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
1391 extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
1392 extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
1393 extern int setpgrp (void) __attribute__ ((__nothrow__));
1394 extern __pid_t setsid (void) __attribute__ ((__nothrow__));
1395 extern __uid_t getuid (void) __attribute__ ((__nothrow__));
1396 extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
1397 extern __gid_t getgid (void) __attribute__ ((__nothrow__));
1398 extern __gid_t getegid (void) __attribute__ ((__nothrow__));
1399 extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
1400 extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
1401 extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
1402 extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
1403 extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
1404 extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
1405 extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
1406 extern __pid_t fork (void) __attribute__ ((__nothrow__));
1407 extern __pid_t vfork (void) __attribute__ ((__nothrow__));
1408 extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
1409 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
1410 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
1411 extern int isatty (int __fd) __attribute__ ((__nothrow__));
1412 extern int ttyslot (void) __attribute__ ((__nothrow__));
1413 extern int link (__const char *__from, __const char *__to)
1414 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
1415 extern int linkat (int __fromfd, __const char *__from, int __tofd,
1416 __const char *__to, int __flags)
1417 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ;
1418 extern int symlink (__const char *__from, __const char *__to)
1419 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
1420 extern ssize_t readlink (__const char *__restrict __path,
1421 char *__restrict __buf, size_t __len)
1422 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
1423 extern int symlinkat (__const char *__from, int __tofd,
1424 __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
1425 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
1426 char *__restrict __buf, size_t __len)
1427 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ;
1428 extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1429 extern int unlinkat (int __fd, __const char *__name, int __flag)
1430 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1431 extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1432 extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
1433 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
1434 extern char *getlogin (void);
1435 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
1436 extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1437 extern char *optarg;
1438 extern int optind;
1439 extern int opterr;
1440 extern int optopt;
1441 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
1442 __attribute__ ((__nothrow__));
1443 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1444 extern int sethostname (__const char *__name, size_t __len)
1445 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1446 extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;
1447 extern int getdomainname (char *__name, size_t __len)
1448 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1449 extern int setdomainname (__const char *__name, size_t __len)
1450 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1451 extern int vhangup (void) __attribute__ ((__nothrow__));
1452 extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1453 extern int profil (unsigned short int *__sample_buffer, size_t __size,
1454 size_t __offset, unsigned int __scale)
1455 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1456 extern int acct (__const char *__name) __attribute__ ((__nothrow__));
1457 extern char *getusershell (void) __attribute__ ((__nothrow__));
1458 extern void endusershell (void) __attribute__ ((__nothrow__));
1459 extern void setusershell (void) __attribute__ ((__nothrow__));
1460 extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;
1461 extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1462 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
1463 extern int fsync (int __fd);
1464 extern long int gethostid (void);
1465 extern void sync (void) __attribute__ ((__nothrow__));
1466 extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
1467 extern int getdtablesize (void) __attribute__ ((__nothrow__));
1468 extern int truncate (__const char *__file, __off_t __length)
1469 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
1470 extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
1471 extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;
1472 extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
1473 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
1474 extern int lockf (int __fd, int __cmd, __off_t __len) ;
1475 extern int fdatasync (int __fildes);
1476 extern int __sigismember (__const __sigset_t *, int);
1477 extern int __sigaddset (__sigset_t *, int);
1478 extern int __sigdelset (__sigset_t *, int);
1479 typedef __sig_atomic_t sig_atomic_t;
1480 typedef union sigval
1481 {
1482 int sival_int;
1483 void *sival_ptr;
1484 } sigval_t;
1485 typedef struct siginfo
1486 {
1487 int si_signo;
1488 int si_errno;
1489 int si_code;
1490 union
1491 {
1492 int _pad[((128 / sizeof (int)) - 4)];
1493 struct
1494 {
1495 __pid_t si_pid;
1496 __uid_t si_uid;
1497 } _kill;
1498 struct
1499 {
1500 int si_tid;
1501 int si_overrun;
1502 sigval_t si_sigval;
1503 } _timer;
1504 struct
1505 {
1506 __pid_t si_pid;
1507 __uid_t si_uid;
1508 sigval_t si_sigval;
1509 } _rt;
1510 struct
1511 {
1512 __pid_t si_pid;
1513 __uid_t si_uid;
1514 int si_status;
1515 __clock_t si_utime;
1516 __clock_t si_stime;
1517 } _sigchld;
1518 struct
1519 {
1520 void *si_addr;
1521 } _sigfault;
1522 struct
1523 {
1524 long int si_band;
1525 int si_fd;
1526 } _sigpoll;
1527 } _sifields;
1528 } siginfo_t;
1529 enum
1530 {
1531 SI_ASYNCNL = -60,
1532 SI_TKILL = -6,
1533 SI_SIGIO,
1534 SI_ASYNCIO,
1535 SI_MESGQ,
1536 SI_TIMER,
1537 SI_QUEUE,
1538 SI_USER,
1539 SI_KERNEL = 0x80
1540 };
1541 enum
1542 {
1543 ILL_ILLOPC = 1,
1544 ILL_ILLOPN,
1545 ILL_ILLADR,
1546 ILL_ILLTRP,
1547 ILL_PRVOPC,
1548 ILL_PRVREG,
1549 ILL_COPROC,
1550 ILL_BADSTK
1551 };
1552 enum
1553 {
1554 FPE_INTDIV = 1,
1555 FPE_INTOVF,
1556 FPE_FLTDIV,
1557 FPE_FLTOVF,
1558 FPE_FLTUND,
1559 FPE_FLTRES,
1560 FPE_FLTINV,
1561 FPE_FLTSUB
1562 };
1563 enum
1564 {
1565 SEGV_MAPERR = 1,
1566 SEGV_ACCERR
1567 };
1568 enum
1569 {
1570 BUS_ADRALN = 1,
1571 BUS_ADRERR,
1572 BUS_OBJERR
1573 };
1574 enum
1575 {
1576 TRAP_BRKPT = 1,
1577 TRAP_TRACE
1578 };
1579 enum
1580 {
1581 CLD_EXITED = 1,
1582 CLD_KILLED,
1583 CLD_DUMPED,
1584 CLD_TRAPPED,
1585 CLD_STOPPED,
1586 CLD_CONTINUED
1587 };
1588 enum
1589 {
1590 POLL_IN = 1,
1591 POLL_OUT,
1592 POLL_MSG,
1593 POLL_ERR,
1594 POLL_PRI,
1595 POLL_HUP
1596 };
1597 typedef struct sigevent
1598 {
1599 sigval_t sigev_value;
1600 int sigev_signo;
1601 int sigev_notify;
1602 union
1603 {
1604 int _pad[((64 / sizeof (int)) - 4)];
1605 __pid_t _tid;
1606 struct
1607 {
1608 void (*_function) (sigval_t);
1609 void *_attribute;
1610 } _sigev_thread;
1611 } _sigev_un;
1612 } sigevent_t;
1613 enum
1614 {
1615 SIGEV_SIGNAL = 0,
1616 SIGEV_NONE,
1617 SIGEV_THREAD,
1618 SIGEV_THREAD_ID = 4
1619 };
1620 typedef void (*__sighandler_t) (int);
1621 extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
1622 __attribute__ ((__nothrow__));
1623 extern __sighandler_t signal (int __sig, __sighandler_t __handler)
1624 __attribute__ ((__nothrow__));
1625 extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
1626 extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
1627 extern int raise (int __sig) __attribute__ ((__nothrow__));
1628 extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
1629 __attribute__ ((__nothrow__));
1630 extern int gsignal (int __sig) __attribute__ ((__nothrow__));
1631 extern void psignal (int __sig, __const char *__s);
1632 extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s);
1633 extern int __sigpause (int __sig_or_mask, int __is_sig);
1634 extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
1635 extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
1636 extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
1637 typedef __sighandler_t sig_t;
1638 extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1639 extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1640 extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1641 extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1642 extern int sigismember (__const sigset_t *__set, int __signo)
1643 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1644 struct sigaction
1645 {
1646 union
1647 {
1648 __sighandler_t sa_handler;
1649 void (*sa_sigaction) (int, siginfo_t *, void *);
1650 }
1651 __sigaction_handler;
1652 __sigset_t sa_mask;
1653 int sa_flags;
1654 void (*sa_restorer) (void);
1655 };
1656 extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
1657 sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
1658 extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
1659 extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
1660 struct sigaction *__restrict __oact) __attribute__ ((__nothrow__));
1661 extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1662 extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
1663 __attribute__ ((__nonnull__ (1, 2)));
1664 extern int sigwaitinfo (__const sigset_t *__restrict __set,
1665 siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
1666 extern int sigtimedwait (__const sigset_t *__restrict __set,
1667 siginfo_t *__restrict __info,
1668 __const struct timespec *__restrict __timeout)
1669 __attribute__ ((__nonnull__ (1)));
1670 extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
1671 __attribute__ ((__nothrow__));
1672 extern __const char *__const _sys_siglist[65];
1673 extern __const char *__const sys_siglist[65];
1674 struct sigvec
1675 {
1676 __sighandler_t sv_handler;
1677 int sv_mask;
1678 int sv_flags;
1679 };
1680 extern int sigvec (int __sig, __const struct sigvec *__vec,
1681 struct sigvec *__ovec) __attribute__ ((__nothrow__));
1682 struct _fpreg
1683 {
1684 unsigned short significand[4];
1685 unsigned short exponent;
1686 };
1687 struct _fpxreg
1688 {
1689 unsigned short significand[4];
1690 unsigned short exponent;
1691 unsigned short padding[3];
1692 };
1693 struct _xmmreg
1694 {
1695 __uint32_t element[4];
1696 };
1697 struct _fpstate
1698 {
1699 __uint16_t cwd;
1700 __uint16_t swd;
1701 __uint16_t ftw;
1702 __uint16_t fop;
1703 __uint64_t rip;
1704 __uint64_t rdp;
1705 __uint32_t mxcsr;
1706 __uint32_t mxcr_mask;
1707 struct _fpxreg _st[8];
1708 struct _xmmreg _xmm[16];
1709 __uint32_t padding[24];
1710 };
1711 struct sigcontext
1712 {
1713 unsigned long r8;
1714 unsigned long r9;
1715 unsigned long r10;
1716 unsigned long r11;
1717 unsigned long r12;
1718 unsigned long r13;
1719 unsigned long r14;
1720 unsigned long r15;
1721 unsigned long rdi;
1722 unsigned long rsi;
1723 unsigned long rbp;
1724 unsigned long rbx;
1725 unsigned long rdx;
1726 unsigned long rax;
1727 unsigned long rcx;
1728 unsigned long rsp;
1729 unsigned long rip;
1730 unsigned long eflags;
1731 unsigned short cs;
1732 unsigned short gs;
1733 unsigned short fs;
1734 unsigned short __pad0;
1735 unsigned long err;
1736 unsigned long trapno;
1737 unsigned long oldmask;
1738 unsigned long cr2;
1739 struct _fpstate * fpstate;
1740 unsigned long __reserved1 [8];
1741 };
1742 extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
1743 extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
1744 struct sigstack
1745 {
1746 void *ss_sp;
1747 int ss_onstack;
1748 };
1749 enum
1750 {
1751 SS_ONSTACK = 1,
1752 SS_DISABLE
1753 };
1754 typedef struct sigaltstack
1755 {
1756 void *ss_sp;
1757 int ss_flags;
1758 size_t ss_size;
1759 } stack_t;
1760 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
1761 __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
1762 extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
1763 struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
1764 extern int pthread_sigmask (int __how,
1765 __const __sigset_t *__restrict __newmask,
1766 __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__));
1767 extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
1768 extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
1769 extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
1770 struct stat
1771 {
1772 __dev_t st_dev;
1773 __ino_t st_ino;
1774 __nlink_t st_nlink;
1775 __mode_t st_mode;
1776 __uid_t st_uid;
1777 __gid_t st_gid;
1778 int __pad0;
1779 __dev_t st_rdev;
1780 __off_t st_size;
1781 __blksize_t st_blksize;
1782 __blkcnt_t st_blocks;
1783 struct timespec st_atim;
1784 struct timespec st_mtim;
1785 struct timespec st_ctim;
1786 long int __unused[3];
1787 };
1788 extern int stat (__const char *__restrict __file,
1789 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1790 extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1791 extern int fstatat (int __fd, __const char *__restrict __file,
1792 struct stat *__restrict __buf, int __flag)
1793 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1794 extern int lstat (__const char *__restrict __file,
1795 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1796 extern int chmod (__const char *__file, __mode_t __mode)
1797 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1798 extern int lchmod (__const char *__file, __mode_t __mode)
1799 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1800 extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__));
1801 extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
1802 int __flag)
1803 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
1804 extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));
1805 extern int mkdir (__const char *__path, __mode_t __mode)
1806 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1807 extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
1808 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1809 extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
1810 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1811 extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
1812 __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1813 extern int mkfifo (__const char *__path, __mode_t __mode)
1814 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1815 extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
1816 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1817 extern int utimensat (int __fd, __const char *__path,
1818 __const struct timespec __times[2],
1819 int __flags)
1820 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1821 extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__));
1822 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
1823 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
1824 extern int __xstat (int __ver, __const char *__filename,
1825 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1826 extern int __lxstat (int __ver, __const char *__filename,
1827 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1828 extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
1829 struct stat *__stat_buf, int __flag)
1830 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
1831 extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
1832 __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
1833 extern int __xmknodat (int __ver, int __fd, __const char *__path,
1834 __mode_t __mode, __dev_t *__dev)
1835 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5)));
1836 typedef unsigned char uint8_t;
1837 typedef unsigned short int uint16_t;
1838 typedef unsigned int uint32_t;
1839 typedef unsigned long int uint64_t;
1840 typedef signed char int_least8_t;
1841 typedef short int int_least16_t;
1842 typedef int int_least32_t;
1843 typedef long int int_least64_t;
1844 typedef unsigned char uint_least8_t;
1845 typedef unsigned short int uint_least16_t;
1846 typedef unsigned int uint_least32_t;
1847 typedef unsigned long int uint_least64_t;
1848 typedef signed char int_fast8_t;
1849 typedef long int int_fast16_t;
1850 typedef long int int_fast32_t;
1851 typedef long int int_fast64_t;
1852 typedef unsigned char uint_fast8_t;
1853 typedef unsigned long int uint_fast16_t;
1854 typedef unsigned long int uint_fast32_t;
1855 typedef unsigned long int uint_fast64_t;
1856 typedef unsigned long int uintptr_t;
1857 typedef long int intmax_t;
1858 typedef unsigned long int uintmax_t;
1859 typedef unsigned long int mp_limb_t;
1860 typedef long int mp_limb_signed_t;
1861 typedef struct
1862 {
1863 int _mp_alloc;
1864 int _mp_size;
1865 mp_limb_t *_mp_d;
1866 } __mpz_struct;
1867 typedef __mpz_struct MP_INT;
1868 typedef __mpz_struct mpz_t[1];
1869 typedef mp_limb_t * mp_ptr;
1870 typedef const mp_limb_t * mp_srcptr;
1871 typedef long int mp_size_t;
1872 typedef long int mp_exp_t;
1873 typedef struct
1874 {
1875 __mpz_struct _mp_num;
1876 __mpz_struct _mp_den;
1877 } __mpq_struct;
1878 typedef __mpq_struct MP_RAT;
1879 typedef __mpq_struct mpq_t[1];
1880 typedef struct
1881 {
1882 int _mp_prec;
1883 int _mp_size;
1884 mp_exp_t _mp_exp;
1885 mp_limb_t *_mp_d;
1886 } __mpf_struct;
1887 typedef __mpf_struct mpf_t[1];
1888 typedef enum
1889 {
1890 GMP_RAND_ALG_DEFAULT = 0,
1891 GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT
1892 } gmp_randalg_t;
1893 typedef struct
1894 {
1895 mpz_t _mp_seed;
1896 gmp_randalg_t _mp_alg;
1897 union {
1898 void *_mp_lc;
1899 } _mp_algdata;
1900 } __gmp_randstate_struct;
1901 typedef __gmp_randstate_struct gmp_randstate_t[1];
1902 typedef const __mpz_struct *mpz_srcptr;
1903 typedef __mpz_struct *mpz_ptr;
1904 typedef const __mpf_struct *mpf_srcptr;
1905 typedef __mpf_struct *mpf_ptr;
1906 typedef const __mpq_struct *mpq_srcptr;
1907 typedef __mpq_struct *mpq_ptr;
1908 void __gmp_set_memory_functions (void *(*) (size_t), void *(*) (void *, size_t, size_t), void (*) (void *, size_t)) ;
1909 void __gmp_get_memory_functions (void *(**) (size_t), void *(**) (void *, size_t, size_t), void (**) (void *, size_t)) ;
1910 extern const int __gmp_bits_per_limb;
1911 extern int __gmp_errno;
1912 extern const char * const __gmp_version;
1913 void __gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...);
1914 void __gmp_randinit_default (gmp_randstate_t);
1915 void __gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, unsigned long int);
1916 int __gmp_randinit_lc_2exp_size (gmp_randstate_t, unsigned long);
1917 void __gmp_randinit_mt (gmp_randstate_t);
1918 void __gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *);
1919 void __gmp_randseed (gmp_randstate_t, mpz_srcptr);
1920 void __gmp_randseed_ui (gmp_randstate_t, unsigned long int);
1921 void __gmp_randclear (gmp_randstate_t);
1922 unsigned long __gmp_urandomb_ui (gmp_randstate_t, unsigned long);
1923 unsigned long __gmp_urandomm_ui (gmp_randstate_t, unsigned long);
1924 int __gmp_asprintf (char **, const char *, ...);
1925 int __gmp_fprintf (FILE *, const char *, ...);
1926 int __gmp_printf (const char *, ...);
1927 int __gmp_snprintf (char *, size_t, const char *, ...);
1928 int __gmp_sprintf (char *, const char *, ...);
1929 int __gmp_fscanf (FILE *, const char *, ...);
1930 int __gmp_scanf (const char *, ...);
1931 int __gmp_sscanf (const char *, const char *, ...);
1932 void *__gmpz_realloc (mpz_ptr, mp_size_t);
1933 void __gmpz_abs (mpz_ptr, mpz_srcptr);
1934 void __gmpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr);
1935 void __gmpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1936 void __gmpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr);
1937 void __gmpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1938 void __gmpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr);
1939 void __gmpz_array_init (mpz_ptr, mp_size_t, mp_size_t);
1940 void __gmpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1941 void __gmpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int);
1942 void __gmpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
1943 void __gmpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long);
1944 unsigned long int __gmpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1945 void __gmpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
1946 unsigned long int __gmpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
1947 void __gmpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
1948 void __gmpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long);
1949 unsigned long int __gmpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1950 unsigned long int __gmpz_cdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
1951 void __gmpz_clear (mpz_ptr);
1952 void __gmpz_clrbit (mpz_ptr, unsigned long int);
1953 int __gmpz_cmp (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
1954 int __gmpz_cmp_d (mpz_srcptr, double) __attribute__ ((__pure__));
1955 int __gmpz_cmp_si (mpz_srcptr, signed long int) __attribute__ ((__pure__));
1956 int __gmpz_cmp_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
1957 int __gmpz_cmpabs (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
1958 int __gmpz_cmpabs_d (mpz_srcptr, double) __attribute__ ((__pure__));
1959 int __gmpz_cmpabs_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
1960 void __gmpz_com (mpz_ptr, mpz_srcptr);
1961 void __gmpz_combit (mpz_ptr, unsigned long int);
1962 int __gmpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
1963 int __gmpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, unsigned long) __attribute__ ((__pure__));
1964 int __gmpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __attribute__ ((__pure__));
1965 void __gmpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr);
1966 void __gmpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long);
1967 int __gmpz_divisible_p (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
1968 int __gmpz_divisible_ui_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
1969 int __gmpz_divisible_2exp_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
1970 void __gmpz_dump (mpz_srcptr);
1971 void *__gmpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr);
1972 void __gmpz_fac_ui (mpz_ptr, unsigned long int);
1973 void __gmpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
1974 void __gmpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
1975 unsigned long int __gmpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1976 void __gmpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
1977 unsigned long int __gmpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
1978 void __gmpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
1979 void __gmpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
1980 unsigned long int __gmpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1981 unsigned long int __gmpz_fdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
1982 void __gmpz_fib_ui (mpz_ptr, unsigned long int);
1983 void __gmpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int);
1984 int __gmpz_fits_sint_p (mpz_srcptr) __attribute__ ((__pure__));
1985 int __gmpz_fits_slong_p (mpz_srcptr) __attribute__ ((__pure__));
1986 int __gmpz_fits_sshort_p (mpz_srcptr) __attribute__ ((__pure__));
1987 int __gmpz_fits_uint_p (mpz_srcptr) __attribute__ ((__pure__));
1988 int __gmpz_fits_ulong_p (mpz_srcptr) __attribute__ ((__pure__));
1989 int __gmpz_fits_ushort_p (mpz_srcptr) __attribute__ ((__pure__));
1990 void __gmpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr);
1991 unsigned long int __gmpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int);
1992 void __gmpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
1993 double __gmpz_get_d (mpz_srcptr) __attribute__ ((__pure__));
1994 double __gmpz_get_d_2exp (signed long int *, mpz_srcptr);
1995 long int __gmpz_get_si (mpz_srcptr) __attribute__ ((__pure__));
1996 char *__gmpz_get_str (char *, int, mpz_srcptr);
1997 unsigned long int __gmpz_get_ui (mpz_srcptr) __attribute__ ((__pure__));
1998 mp_limb_t __gmpz_getlimbn (mpz_srcptr, mp_size_t) __attribute__ ((__pure__));
1999 unsigned long int __gmpz_hamdist (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
2000 void __gmpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *);
2001 void __gmpz_init (mpz_ptr);
2002 void __gmpz_init2 (mpz_ptr, unsigned long);
2003 void __gmpz_init_set (mpz_ptr, mpz_srcptr);
2004 void __gmpz_init_set_d (mpz_ptr, double);
2005 void __gmpz_init_set_si (mpz_ptr, signed long int);
2006 int __gmpz_init_set_str (mpz_ptr, const char *, int);
2007 void __gmpz_init_set_ui (mpz_ptr, unsigned long int);
2008 size_t __gmpz_inp_raw (mpz_ptr, FILE *);
2009 size_t __gmpz_inp_str (mpz_ptr, FILE *, int);
2010 int __gmpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr);
2011 void __gmpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr);
2012 int __gmpz_jacobi (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
2013 int __gmpz_kronecker_si (mpz_srcptr, long) __attribute__ ((__pure__));
2014 int __gmpz_kronecker_ui (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
2015 int __gmpz_si_kronecker (long, mpz_srcptr) __attribute__ ((__pure__));
2016 int __gmpz_ui_kronecker (unsigned long, mpz_srcptr) __attribute__ ((__pure__));
2017 void __gmpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr);
2018 void __gmpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long);
2019 void __gmpz_lucnum_ui (mpz_ptr, unsigned long int);
2020 void __gmpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int);
2021 int __gmpz_millerrabin (mpz_srcptr, int) __attribute__ ((__pure__));
2022 void __gmpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr);
2023 void __gmpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr);
2024 void __gmpz_mul_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
2025 void __gmpz_mul_si (mpz_ptr, mpz_srcptr, long int);
2026 void __gmpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2027 void __gmpz_neg (mpz_ptr, mpz_srcptr);
2028 void __gmpz_nextprime (mpz_ptr, mpz_srcptr);
2029 size_t __gmpz_out_raw (FILE *, mpz_srcptr);
2030 size_t __gmpz_out_str (FILE *, int, mpz_srcptr);
2031 int __gmpz_perfect_power_p (mpz_srcptr) __attribute__ ((__pure__));
2032 int __gmpz_perfect_square_p (mpz_srcptr) __attribute__ ((__pure__));
2033 unsigned long int __gmpz_popcount (mpz_srcptr) __attribute__ ((__pure__));
2034 void __gmpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2035 void __gmpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr);
2036 void __gmpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr);
2037 int __gmpz_probab_prime_p (mpz_srcptr, int) __attribute__ ((__pure__));
2038 void __gmpz_random (mpz_ptr, mp_size_t);
2039 void __gmpz_random2 (mpz_ptr, mp_size_t);
2040 void __gmpz_realloc2 (mpz_ptr, unsigned long);
2041 unsigned long int __gmpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr);
2042 int __gmpz_root (mpz_ptr, mpz_srcptr, unsigned long int);
2043 void __gmpz_rootrem (mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int);
2044 void __gmpz_rrandomb (mpz_ptr, gmp_randstate_t, unsigned long int);
2045 unsigned long int __gmpz_scan0 (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
2046 unsigned long int __gmpz_scan1 (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
2047 void __gmpz_set (mpz_ptr, mpz_srcptr);
2048 void __gmpz_set_d (mpz_ptr, double);
2049 void __gmpz_set_f (mpz_ptr, mpf_srcptr);
2050 void __gmpz_set_q (mpz_ptr, mpq_srcptr);
2051 void __gmpz_set_si (mpz_ptr, signed long int);
2052 int __gmpz_set_str (mpz_ptr, const char *, int);
2053 void __gmpz_set_ui (mpz_ptr, unsigned long int);
2054 void __gmpz_setbit (mpz_ptr, unsigned long int);
2055 size_t __gmpz_size (mpz_srcptr) __attribute__ ((__pure__));
2056 size_t __gmpz_sizeinbase (mpz_srcptr, int) __attribute__ ((__pure__));
2057 void __gmpz_sqrt (mpz_ptr, mpz_srcptr);
2058 void __gmpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr);
2059 void __gmpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr);
2060 void __gmpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2061 void __gmpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr);
2062 void __gmpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr);
2063 void __gmpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2064 void __gmpz_swap (mpz_ptr, mpz_ptr) ;
2065 unsigned long int __gmpz_tdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
2066 void __gmpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
2067 void __gmpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
2068 unsigned long int __gmpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2069 void __gmpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
2070 unsigned long int __gmpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
2071 void __gmpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
2072 void __gmpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
2073 unsigned long int __gmpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
2074 int __gmpz_tstbit (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
2075 void __gmpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int);
2076 void __gmpz_urandomb (mpz_ptr, gmp_randstate_t, unsigned long int);
2077 void __gmpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr);
2078 void __gmpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr);
2079 void __gmpq_abs (mpq_ptr, mpq_srcptr);
2080 void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr);
2081 void __gmpq_canonicalize (mpq_ptr);
2082 void __gmpq_clear (mpq_ptr);
2083 int __gmpq_cmp (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__));
2084 int __gmpq_cmp_si (mpq_srcptr, long, unsigned long) __attribute__ ((__pure__));
2085 int __gmpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __attribute__ ((__pure__));
2086 void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr);
2087 void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, unsigned long);
2088 int __gmpq_equal (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__));
2089 void __gmpq_get_num (mpz_ptr, mpq_srcptr);
2090 void __gmpq_get_den (mpz_ptr, mpq_srcptr);
2091 double __gmpq_get_d (mpq_srcptr) __attribute__ ((__pure__));
2092 char *__gmpq_get_str (char *, int, mpq_srcptr);
2093 void __gmpq_init (mpq_ptr);
2094 size_t __gmpq_inp_str (mpq_ptr, FILE *, int);
2095 void __gmpq_inv (mpq_ptr, mpq_srcptr);
2096 void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr);
2097 void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, unsigned long);
2098 void __gmpq_neg (mpq_ptr, mpq_srcptr);
2099 size_t __gmpq_out_str (FILE *, int, mpq_srcptr);
2100 void __gmpq_set (mpq_ptr, mpq_srcptr);
2101 void __gmpq_set_d (mpq_ptr, double);
2102 void __gmpq_set_den (mpq_ptr, mpz_srcptr);
2103 void __gmpq_set_f (mpq_ptr, mpf_srcptr);
2104 void __gmpq_set_num (mpq_ptr, mpz_srcptr);
2105 void __gmpq_set_si (mpq_ptr, signed long int, unsigned long int);
2106 int __gmpq_set_str (mpq_ptr, const char *, int);
2107 void __gmpq_set_ui (mpq_ptr, unsigned long int, unsigned long int);
2108 void __gmpq_set_z (mpq_ptr, mpz_srcptr);
2109 void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr);
2110 void __gmpq_swap (mpq_ptr, mpq_ptr) ;
2111 void __gmpf_abs (mpf_ptr, mpf_srcptr);
2112 void __gmpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr);
2113 void __gmpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int);
2114 void __gmpf_ceil (mpf_ptr, mpf_srcptr);
2115 void __gmpf_clear (mpf_ptr);
2116 int __gmpf_cmp (mpf_srcptr, mpf_srcptr) __attribute__ ((__pure__));
2117 int __gmpf_cmp_d (mpf_srcptr, double) __attribute__ ((__pure__));
2118 int __gmpf_cmp_si (mpf_srcptr, signed long int) __attribute__ ((__pure__));
2119 int __gmpf_cmp_ui (mpf_srcptr, unsigned long int) __attribute__ ((__pure__));
2120 void __gmpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr);
2121 void __gmpf_div_2exp (mpf_ptr, mpf_srcptr, unsigned long int);
2122 void __gmpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int);
2123 void __gmpf_dump (mpf_srcptr);
2124 int __gmpf_eq (mpf_srcptr, mpf_srcptr, unsigned long int) __attribute__ ((__pure__));
2125 int __gmpf_fits_sint_p (mpf_srcptr) __attribute__ ((__pure__));
2126 int __gmpf_fits_slong_p (mpf_srcptr) __attribute__ ((__pure__));
2127 int __gmpf_fits_sshort_p (mpf_srcptr) __attribute__ ((__pure__));
2128 int __gmpf_fits_uint_p (mpf_srcptr) __attribute__ ((__pure__));
2129 int __gmpf_fits_ulong_p (mpf_srcptr) __attribute__ ((__pure__));
2130 int __gmpf_fits_ushort_p (mpf_srcptr) __attribute__ ((__pure__));
2131 void __gmpf_floor (mpf_ptr, mpf_srcptr);
2132 double __gmpf_get_d (mpf_srcptr) __attribute__ ((__pure__));
2133 double __gmpf_get_d_2exp (signed long int *, mpf_srcptr);
2134 unsigned long int __gmpf_get_default_prec (void) __attribute__ ((__pure__));
2135 unsigned long int __gmpf_get_prec (mpf_srcptr) __attribute__ ((__pure__));
2136 long __gmpf_get_si (mpf_srcptr) __attribute__ ((__pure__));
2137 char *__gmpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr);
2138 unsigned long __gmpf_get_ui (mpf_srcptr) __attribute__ ((__pure__));
2139 void __gmpf_init (mpf_ptr);
2140 void __gmpf_init2 (mpf_ptr, unsigned long int);
2141 void __gmpf_init_set (mpf_ptr, mpf_srcptr);
2142 void __gmpf_init_set_d (mpf_ptr, double);
2143 void __gmpf_init_set_si (mpf_ptr, signed long int);
2144 int __gmpf_init_set_str (mpf_ptr, const char *, int);
2145 void __gmpf_init_set_ui (mpf_ptr, unsigned long int);
2146 size_t __gmpf_inp_str (mpf_ptr, FILE *, int);
2147 int __gmpf_integer_p (mpf_srcptr) __attribute__ ((__pure__));
2148 void __gmpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr);
2149 void __gmpf_mul_2exp (mpf_ptr, mpf_srcptr, unsigned long int);
2150 void __gmpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int);
2151 void __gmpf_neg (mpf_ptr, mpf_srcptr);
2152 size_t __gmpf_out_str (FILE *, int, size_t, mpf_srcptr);
2153 void __gmpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int);
2154 void __gmpf_random2 (mpf_ptr, mp_size_t, mp_exp_t);
2155 void __gmpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr);
2156 void __gmpf_set (mpf_ptr, mpf_srcptr);
2157 void __gmpf_set_d (mpf_ptr, double);
2158 void __gmpf_set_default_prec (unsigned long int) ;
2159 void __gmpf_set_prec (mpf_ptr, unsigned long int);
2160 void __gmpf_set_prec_raw (mpf_ptr, unsigned long int) ;
2161 void __gmpf_set_q (mpf_ptr, mpq_srcptr);
2162 void __gmpf_set_si (mpf_ptr, signed long int);
2163 int __gmpf_set_str (mpf_ptr, const char *, int);
2164 void __gmpf_set_ui (mpf_ptr, unsigned long int);
2165 void __gmpf_set_z (mpf_ptr, mpz_srcptr);
2166 size_t __gmpf_size (mpf_srcptr) __attribute__ ((__pure__));
2167 void __gmpf_sqrt (mpf_ptr, mpf_srcptr);
2168 void __gmpf_sqrt_ui (mpf_ptr, unsigned long int);
2169 void __gmpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr);
2170 void __gmpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int);
2171 void __gmpf_swap (mpf_ptr, mpf_ptr) ;
2172 void __gmpf_trunc (mpf_ptr, mpf_srcptr);
2173 void __gmpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr);
2174 void __gmpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr);
2175 void __gmpf_urandomb (mpf_t, gmp_randstate_t, unsigned long int);
2176 mp_limb_t __gmpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t);
2177 mp_limb_t __gmpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ;
2178 mp_limb_t __gmpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
2179 mp_limb_t __gmpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
2180 mp_limb_t __gmpn_bdivmod (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, unsigned long int);
2181 int __gmpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__));
2182 mp_limb_t __gmpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
2183 mp_limb_t __gmpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t);
2184 mp_limb_t __gmpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t);
2185 mp_limb_t __gmpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr);
2186 mp_size_t __gmpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
2187 mp_limb_t __gmpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__));
2188 mp_limb_t __gmpn_gcdext_1 (mp_ptr, mp_ptr, mp_limb_t, mp_limb_t);
2189 mp_size_t __gmpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
2190 size_t __gmpn_get_str (unsigned char *, int, mp_ptr, mp_size_t);
2191 unsigned long int __gmpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__));
2192 mp_limb_t __gmpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
2193 mp_limb_t __gmpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__));
2194 mp_limb_t __gmpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
2195 mp_limb_t __gmpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
2196 void __gmpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
2197 mp_limb_t __gmpn_neg_n (mp_ptr, mp_srcptr, mp_size_t);
2198 int __gmpn_perfect_square_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__));
2199 unsigned long int __gmpn_popcount (mp_srcptr, mp_size_t) __attribute__ ((__pure__));
2200 mp_size_t __gmpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
2201 mp_limb_t __gmpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __attribute__ ((__pure__));
2202 void __gmpn_random (mp_ptr, mp_size_t);
2203 void __gmpn_random2 (mp_ptr, mp_size_t);
2204 mp_limb_t __gmpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
2205 unsigned long int __gmpn_scan0 (mp_srcptr, unsigned long int) __attribute__ ((__pure__));
2206 unsigned long int __gmpn_scan1 (mp_srcptr, unsigned long int) __attribute__ ((__pure__));
2207 mp_size_t __gmpn_set_str (mp_ptr, const unsigned char *, size_t, int);
2208 mp_size_t __gmpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t);
2209 mp_limb_t __gmpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t);
2210 mp_limb_t __gmpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ;
2211 mp_limb_t __gmpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
2212 mp_limb_t __gmpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
2213 void __gmpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
2214 extern __inline__ void
2215 __gmpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
2216 {
2217 if (__gmp_w != __gmp_u)
2218 __gmpz_set (__gmp_w, __gmp_u);
2219 __gmp_w->_mp_size = ((__gmp_w->_mp_size) >= 0 ? (__gmp_w->_mp_size) : -(__gmp_w->_mp_size));
2220 }
2221 extern __inline__
2222 int
2223 __gmpz_fits_uint_p (mpz_srcptr __gmp_z)
2224 {
2225 mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned) 0)));;
2226 }
2227 extern __inline__
2228 int
2229 __gmpz_fits_ulong_p (mpz_srcptr __gmp_z)
2230 {
2231 mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned long) 0)));;
2232 }
2233 extern __inline__
2234 int
2235 __gmpz_fits_ushort_p (mpz_srcptr __gmp_z)
2236 {
2237 mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= ((unsigned short) ~0)));;
2238 }
2239 extern __inline__
2240 unsigned long
2241 __gmpz_get_ui (mpz_srcptr __gmp_z)
2242 {
2243 mp_ptr __gmp_p = __gmp_z->_mp_d;
2244 mp_size_t __gmp_n = __gmp_z->_mp_size;
2245 mp_limb_t __gmp_l = __gmp_p[0];
2246 return (__gmp_n != 0 ? __gmp_l : 0);
2247 }
2248 extern __inline__
2249 mp_limb_t
2250 __gmpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n)
2251 {
2252 mp_limb_t __gmp_result = 0;
2253 if (__builtin_expect ((__gmp_n >= 0 && __gmp_n < ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size))) != 0, 1))
2254 __gmp_result = __gmp_z->_mp_d[__gmp_n];
2255 return __gmp_result;
2256 }
2257 extern __inline__ void
2258 __gmpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
2259 {
2260 if (__gmp_w != __gmp_u)
2261 __gmpz_set (__gmp_w, __gmp_u);
2262 __gmp_w->_mp_size = - __gmp_w->_mp_size;
2263 }
2264 extern __inline__
2265 int
2266 __gmpz_perfect_square_p (mpz_srcptr __gmp_a)
2267 {
2268 mp_size_t __gmp_asize;
2269 int __gmp_result;
2270 __gmp_asize = __gmp_a->_mp_size;
2271 __gmp_result = (__gmp_asize >= 0);
2272 if (__builtin_expect ((__gmp_asize > 0) != 0, 1))
2273 __gmp_result = __gmpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize);
2274 return __gmp_result;
2275 }
2276 extern __inline__
2277 unsigned long
2278 __gmpz_popcount (mpz_srcptr __gmp_u)
2279 {
2280 mp_size_t __gmp_usize;
2281 unsigned long __gmp_result;
2282 __gmp_usize = __gmp_u->_mp_size;
2283 __gmp_result = (__gmp_usize < 0 ? (~ (unsigned long) 0) : 0);
2284 if (__builtin_expect ((__gmp_usize > 0) != 0, 1))
2285 __gmp_result = __gmpn_popcount (__gmp_u->_mp_d, __gmp_usize);
2286 return __gmp_result;
2287 }
2288 extern __inline__
2289 void
2290 __gmpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u)
2291 {
2292 __gmpz_tdiv_q (__gmp_w, (&((__gmp_u)->_mp_num)), (&((__gmp_u)->_mp_den)));
2293 }
2294 extern __inline__
2295 size_t
2296 __gmpz_size (mpz_srcptr __gmp_z)
2297 {
2298 return ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size));
2299 }
2300 extern __inline__ void
2301 __gmpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
2302 {
2303 if (__gmp_w != __gmp_u)
2304 __gmpq_set (__gmp_w, __gmp_u);
2305 __gmp_w->_mp_num._mp_size = ((__gmp_w->_mp_num._mp_size) >= 0 ? (__gmp_w->_mp_num._mp_size) : -(__gmp_w->_mp_num._mp_size));
2306 }
2307 extern __inline__ void
2308 __gmpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
2309 {
2310 if (__gmp_w != __gmp_u)
2311 __gmpq_set (__gmp_w, __gmp_u);
2312 __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size;
2313 }
2314 extern __inline__
2315 mp_limb_t
2316 __gmpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
2317 {
2318 mp_limb_t __gmp_c;
2319 do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_add_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x + 1) & ((~ ((mp_limb_t) (0))) >> 0)) == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0);
2320 return __gmp_c;
2321 }
2322 extern __inline__
2323 mp_limb_t
2324 __gmpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n)
2325 {
2326 mp_limb_t __gmp_c;
2327 do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x + (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_r) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x + 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_r) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0);
2328 return __gmp_c;
2329 }
2330 extern __inline__
2331 int
2332 __gmpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size)
2333 {
2334 int __gmp_result;
2335 do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_y; (__gmp_result) = 0; __gmp_i = (__gmp_size); while (--__gmp_i >= 0) { __gmp_x = (__gmp_xp)[__gmp_i]; __gmp_y = (__gmp_yp)[__gmp_i]; if (__gmp_x != __gmp_y) { (__gmp_result) = (__gmp_x > __gmp_y ? 1 : -1); break; } } } while (0);
2336 return __gmp_result;
2337 }
2338 extern __inline__
2339 mp_limb_t
2340 __gmpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
2341 {
2342 mp_limb_t __gmp_c;
2343 do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_sub_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x - 1) & ((~ ((mp_limb_t) (0))) >> 0)), __gmp_x == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0);
2344 return __gmp_c;
2345 }
2346 extern __inline__
2347 mp_limb_t
2348 __gmpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n)
2349 {
2350 mp_limb_t __gmp_c;
2351 do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x - (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_x) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x - 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_x) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0);
2352 return __gmp_c;
2353 }
2354 extern __inline__
2355 mp_limb_t
2356 __gmpn_neg_n (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)
2357 {
2358 mp_limb_t __gmp_ul, __gmp_cy;
2359 __gmp_cy = 0;
2360 do {
2361 __gmp_ul = *__gmp_up++;
2362 *__gmp_rp++ = -__gmp_ul - __gmp_cy;
2363 __gmp_cy |= __gmp_ul != 0;
2364 } while (--__gmp_n != 0);
2365 return __gmp_cy;
2366 }
2367 enum
2368 {
2369 GMP_ERROR_NONE = 0,
2370 GMP_ERROR_UNSUPPORTED_ARGUMENT = 1,
2371 GMP_ERROR_DIVISION_BY_ZERO = 2,
2372 GMP_ERROR_SQRT_OF_NEGATIVE = 4,
2373 GMP_ERROR_INVALID_ARGUMENT = 8
2374 };
2375 typedef long int_t;
2376 typedef int_t header_t;
2377 typedef int bool_t;
2378 typedef unsigned short ucs2_t;
2379 struct bgl_dframe {
2380 union scmobj *symbol;
2381 struct bgl_dframe *link;
2382 };
2383 typedef union scmobj {
2384 int_t integer;
2385 header_t header;
2386 struct pair {
2387 union scmobj *car;
2388 union scmobj *cdr;
2389 } pair_t;
2390 struct extended_pair {
2391 union scmobj *car;
2392 union scmobj *cdr;
2393 union scmobj *eheader;
2394 union scmobj *cer;
2395 } extended_pair_t;
2396 struct string {
2397 int length;
2398 unsigned char char0;
2399 } string_t;
2400 struct ucs2_string {
2401 header_t header;
2402 int length;
2403 ucs2_t char0;
2404 } ucs2_string_t;
2405 struct vector {
2406 int length;
2407 union scmobj *obj0;
2408 } vector_t;
2409 struct tvector {
2410 header_t header;
2411 int length;
2412 union scmobj *descr;
2413 } tvector_t;
2414 struct procedure {
2415 header_t header;
2416 union scmobj *(*entry)();
2417 union scmobj *(*va_entry)();
2418 union scmobj *attr;
2419 int arity;
2420 union scmobj *obj0;
2421 } procedure_t;
2422 struct procedure_light {
2423 union scmobj *(*entry)();
2424 union scmobj *obj0;
2425 } procedure_light_t;
2426 struct symbol {
2427 header_t header;
2428 union scmobj *string;
2429 union scmobj *cval;
2430 } symbol_t;
2431 struct port {
2432 header_t header;
2433 union scmobj *kindof;
2434 union scmobj *name;
2435 void *stream;
2436 union scmobj *chook;
2437 void *timeout;
2438 void *userdata;
2439 int (*sysclose)();
2440 long (*sysseek)();
2441 } port_t;
2442 struct output_port {
2443 struct port port;
2444 union scmobj *buf;
2445 long cnt;
2446 char *ptr;
2447 int bufmode;
2448 size_t (*syswrite)();
2449 union scmobj *(*sysflush)();
2450 union scmobj *fhook;
2451 union scmobj *flushbuf;
2452 } output_port_t;
2453 struct input_port {
2454 struct port port;
2455 long filepos;
2456 long fillbarrier;
2457 long (*sysread)();
2458 bool_t eof;
2459 long matchstart;
2460 long matchstop;
2461 long forward;
2462 long bufpos;
2463 union scmobj *buf;
2464 int lastchar;
2465 } input_port_t;
2466 struct input_procedure_port {
2467 struct input_port iport;
2468 union scmobj *pbuffer;
2469 long pbufpos;
2470 } input_procedure_port_t;
2471 struct input_gzip_port {
2472 struct input_procedure_port iport;
2473 union scmobj *gzip;
2474 } input_gzip_port_t;
2475 struct binary_port {
2476 header_t header;
2477 union scmobj *name;
2478 FILE *file;
2479 int io;
2480 } binary_port_t;
2481 struct cell {
2482 union scmobj *val;
2483 } cell_t;
2484 struct structure {
2485 header_t header;
2486 union scmobj *key;
2487 int length;
2488 union scmobj *obj0;
2489 } struct_t;
2490 struct real {
2491 double real;
2492 } real_t;
2493 struct stack {
2494 header_t header;
2495 union scmobj *self;
2496 union scmobj *exitd_top;
2497 union scmobj *stamp;
2498 long size;
2499 struct befored *before_top;
2500 char *stack_top;
2501 char *stack_bot;
2502 struct bgl_dframe *top_frame;
2503 void *stack;
2504 } stack_t;
2505 struct foreign {
2506 header_t header;
2507 union scmobj *id;
2508 void *cobj;
2509 } foreign_t;
2510 struct elong {
2511 header_t header;
2512 long elong;
2513 } elong_t;
2514 struct llong {
2515 header_t header;
2516 long long llong;
2517 } llong_t;
2518 struct bignum {
2519 header_t header;
2520 __mpz_struct mpz;
2521 } bignum_t;
2522 struct process {
2523 header_t header;
2524 int pid;
2525 int index;
2526 union scmobj *stream[ 3 ];
2527 int exited;
2528 int exit_status;
2529 } process_t;
2530 struct socket {
2531 header_t header;
2532 int portnum;
2533 union scmobj *hostname;
2534 union scmobj *hostip;
2535 int fd;
2536 union scmobj *input;
2537 union scmobj *output;
2538 int stype;
2539 union scmobj *chook;
2540 union scmobj *(*accept)();
2541 void *userdata;
2542 } socket_t;
2543 struct custom {
2544 header_t header;
2545 char *identifier;
2546 int (*final)();
2547 int (*equal)();
2548 long (*hash)();
2549 char *(*to_string)();
2550 union scmobj *(*output)();
2551 } custom_t;
2552 struct bgl_date {
2553 header_t header;
2554 int sec;
2555 int min;
2556 int hour;
2557 int mday;
2558 int mon;
2559 int year;
2560 int wday;
2561 int yday;
2562 long timezone;
2563 int isdst;
2564 } date_t;
2565 struct bgl_mutex {
2566 header_t header;
2567 union scmobj *name;
2568 void *mutex;
2569 } mutex_t;
2570 struct bgl_condvar {
2571 header_t header;
2572 union scmobj *name;
2573 void *condvar;
2574 } condvar_t;
2575 struct bgl_mmap {
2576 header_t header;
2577 union scmobj *name;
2578 int fd;
2579 long length;
2580 long rp;
2581 long wp;
2582 unsigned char *map;
2583 } mmap_t;
2584 struct bgl_hvector {
2585 header_t header;
2586 unsigned int length;
2587 } hvector_t;
2588 struct bgl_weakptr {
2589 header_t header;
2590 union scmobj *data;
2591 } weakptr_t;
2592 struct bgl_dynamic_env {
2593 header_t header;
2594 union scmobj *current_output_port;
2595 union scmobj *current_input_port;
2596 union scmobj *current_error_port;
2597 union scmobj *current_display;
2598 int mvalues_number;
2599 union scmobj *mvalues[ 16 ];
2600 char *stack_bottom;
2601 union scmobj *exitd_top;
2602 union scmobj *exitd_stamp;
2603 struct befored *befored_top;
2604 union scmobj *exitd_val;
2605 union scmobj *error_handler;
2606 union scmobj *error_notifiers;
2607 union scmobj *uncaught_exception_handler;
2608 union scmobj *interrupt_notifier;
2609 union scmobj *debug_alist;
2610 struct bgl_dframe top;
2611 struct bgl_dframe *top_of_frame;
2612 void *current_thread;
2613 union scmobj *lexical_stack;
2614 union scmobj *bytecode;
2615 union scmobj *module;
2616 union scmobj *abase;
2617 union scmobj *parameters;
2618 union scmobj *thread_backend;
2619 union scmobj *user_data;
2620 } dynamic_env_t;
2621 } *obj_t;
2622 typedef obj_t (*function_t)();
2623 typedef struct __object_bgl {
2624 header_t header;
2625 obj_t widening;
2626 } *object_bglt;
2627 typedef struct __bgl__object_00_bgl {
2628 header_t header;
2629 obj_t widening;
2630 } *bgl__object_00_bglt;
2631 typedef struct BgL__object_00_bgl {
2632 header_t header;
2633 obj_t widening;
2634 } *BgL__object_00_bglt;
2635 typedef struct BgL_objectz00_bgl {
2636 header_t header;
2637 obj_t widening;
2638 } *BgL_objectz00_bglt;
2639 struct bgl_input_timeout {
2640 long timeout;
2641 long (*sysread)( void *, size_t, size_t, obj_t );
2642 int (*sysclose)( obj_t );
2643 };
2644 extern obj_t GC_malloc( size_t );
2645 extern obj_t GC_realloc( obj_t, size_t );
2646 extern void GC_free( obj_t );
2647 extern void GC_gcollect();
2648 extern obj_t GC_malloc_atomic( size_t );
2649 extern obj_t GC_debug_malloc( size_t, char *, long );
2650 extern obj_t GC_debug_malloc_atomic( size_t, char *, long );
2651 extern int GC_gc_no;
2652 extern int GC_size( void * );
2653 extern void GC_init();
2654 extern void GC_expand_hp( size_t );
2655 extern void GC_register_displacement( int );
2656 extern void GC_debug_register_displacement( int );
2657 extern void* GC_base( void* );
2658 extern int GC_invoke_finalizers();
2659 extern int GC_general_register_disappearing_link( obj_t * , obj_t );
2660 extern int GC_unregister_disappearing_link( obj_t * );
2661 typedef obj_t (*GC_fn_type) ( obj_t client_data );
2662 extern obj_t GC_call_with_alloc_lock( GC_fn_type fn, obj_t client_data );
2663 typedef void (*GC_finalization_proc)( void *obj, void *client_data );
2664 extern void GC_register_finalizer( void *obj,
2665 GC_finalization_proc fn, void *d,
2666 GC_finalization_proc *ofn, void **od );
2667 extern obj_t alloc_hvector( int, int, int );
2668 extern obj_t make_weakptr( obj_t );
2669 extern obj_t weakptr_data( obj_t );
2670 extern void weakptr_data_set( obj_t , obj_t );
2671 extern obj_t single_thread_denv;
2672 extern void bgl_init_dynamic_env();
2673 extern obj_t make_dynamic_env();
2674 extern obj_t bgl_dup_dynamic_env( obj_t );
2675 extern obj_t (*bgl_multithread_dynamic_denv)();
2676 extern gmp_randstate_t gmp_random_state;
2677 extern obj_t bgl_safe_plus_fx( long, long );
2678 extern obj_t bgl_safe_minus_fx( long, long );
2679 extern obj_t bgl_safe_mul_fx( long, long );
2680 extern obj_t bgl_safe_quotient_fx( long, long );
2681 extern obj_t bgl_safe_plus_elong( long, long );
2682 extern obj_t bgl_safe_minus_elong( long, long );
2683 extern obj_t bgl_safe_mul_elong( long, long );
2684 extern obj_t bgl_safe_quotient_elong( long, long );
2685 extern obj_t bgl_safe_plus_llong( long long, long long );
2686 extern obj_t bgl_safe_minus_llong( long long, long long );
2687 extern obj_t bgl_safe_mul_llong( long long, long long );
2688 extern obj_t bgl_safe_quotient_llong( long long, long long );
2689 extern obj_t _exit_value_;
2690 typedef jmp_buf callcc_jmp_buf;
2691 struct exitd {
2692 void *exit;
2693 long userp;
2694 obj_t stamp;
2695 struct exitd *prev;
2696 };
2697 struct befored {
2698 obj_t before;
2699 struct befored *prev;
2700 };
2701 extern header_t bgl_opaque_nil;
2702 extern obj_t bigloo_exit( obj_t );
2703 extern obj_t va_generic_entry( obj_t, ... );
2704 extern obj_t opt_generic_entry( obj_t, ... );
2705 extern obj_t apply( obj_t, obj_t );
2706 extern void bgl_init_module_debug_start( char * );
2707 extern void bgl_init_module_debug_library( char * );
2708 extern void bgl_init_module_debug_import( char *, char * );
2709 extern void bgl_init_module_debug_object( char * );
2710 extern void bgl_init_module_debug_end( char * );
2711 extern obj_t the_failure( obj_t, obj_t, obj_t );
2712 extern obj_t bgl_system_failure( int, obj_t, obj_t, obj_t );
2713 extern obj_t bgl_make_procedure( obj_t, int, int );
2714 extern obj_t make_fx_procedure( function_t, int, int );
2715 extern obj_t make_va_procedure( function_t, int, int );
2716 extern obj_t bgl_time( obj_t );
2717 extern obj_t bgl_procedure_entry_to_string( obj_t );
2718 extern obj_t bgl_string_to_procedure_entry( obj_t );
2719 extern obj_t make_pair( obj_t, obj_t );
2720 extern obj_t make_extended_pair( obj_t a, obj_t d, obj_t e );
2721 extern obj_t make_cell( obj_t );
2722 extern obj_t make_real( double );
2723 extern obj_t make_belong( long );
2724 extern obj_t make_bllong( long long );
2725 extern obj_t bgl_string_to_bignum( char *, int );
2726 extern obj_t bgl_reverse( obj_t );
2727 extern obj_t bgl_reverse_bang( obj_t );
2728 extern long bgl_list_length( obj_t );
2729 extern obj_t bgl_remq( obj_t, obj_t );
2730 extern obj_t bgl_remq_bang( obj_t, obj_t );
2731 extern obj_t bgl_make_output_port( obj_t, void *, obj_t, obj_t, size_t (*)(), long (*)(), int (*)() );
2732 extern void bgl_output_port_buffer_set( obj_t, obj_t );
2733 extern obj_t bgl_close_output_port( obj_t );
2734 extern obj_t get_output_string( obj_t );
2735 extern obj_t bgl_file_to_output_port( FILE *, obj_t );
2736 extern obj_t bgl_open_output_file( obj_t, obj_t );
2737 extern obj_t bgl_append_output_file( obj_t, obj_t );
2738 extern obj_t bgl_open_output_string( obj_t );
2739 extern obj_t bgl_open_output_procedure( obj_t, obj_t, obj_t, obj_t );
2740 extern obj_t create_vector( int );
2741 extern obj_t make_string_sans_fill();
2742 extern obj_t string_to_bstring( char * );
2743 extern obj_t string_to_bstring_len( char *, int );
2744 extern obj_t close_init_string();
2745 extern obj_t bgl_string_shrink( obj_t, long );
2746 extern obj_t bgl_find_runtime_type( obj_t );
2747 extern obj_t cobj_to_foreign( obj_t, void * );
2748 extern long obj_to_cobj( obj_t );
2749 extern int _bigloo_main( int, char *[], char *[], obj_t (*)(obj_t) );
2750 extern obj_t string_to_symbol( char * );
2751 extern obj_t bstring_to_symbol( obj_t );
2752 extern obj_t bgl_symbol_genname( obj_t, char * );
2753 extern obj_t string_to_keyword( char * );
2754 extern obj_t bgl_open_input_string( obj_t, int );
2755 extern long bgl_file_size( char * );
2756 extern obj_t create_custom( long );
2757 extern void bgl_input_port_buffer_set( obj_t, obj_t );
2758 extern obj_t bgl_reset_output_string_port( obj_t );
2759 extern obj_t bgl_display_string( obj_t, obj_t );
2760 extern obj_t bgl_display_symbol( obj_t, obj_t );
2761 extern obj_t bgl_display_fixnum( obj_t, obj_t );
2762 extern obj_t bgl_display_char( char, obj_t );
2763 extern obj_t bgl_output_flush( obj_t, char *, size_t );
2764 extern obj_t bgl_make_date();
2765 extern obj_t bgl_make_mutex( obj_t );
2766 extern obj_t bgl_make_condvar( obj_t );
2767 extern bool_t (*bgl_mutex_lock)( obj_t );
2768 extern bool_t (*bgl_mutex_timed_lock)( obj_t, long );
2769 extern bool_t (*bgl_mutex_unlock)( obj_t );
2770 extern obj_t (*bgl_mutex_state)( obj_t );
2771 extern bool_t (*bgl_condvar_wait)( obj_t, obj_t );
2772 extern bool_t (*bgl_condvar_timed_wait)( obj_t, obj_t, long );
2773 extern bool_t (*bgl_condvar_signal)( obj_t );
2774 extern bool_t (*bgl_condvar_broadcast)( obj_t );
2775 extern obj_t bgl_open_mmap( obj_t, bool_t, bool_t );
2776 obj_t bgl_close_mmap( obj_t );
2777 extern void (*bgl_gc_do_blocking )( void (*fun)(), void * );
2778 extern obj_t bgl_make_client_socket( obj_t, int, int, obj_t, obj_t );
2779 extern obj_t bgl_make_server_socket( obj_t, int, int );
2780 extern obj_t bgl_socket_accept( obj_t, bool_t, obj_t, obj_t );
2781 extern long bgl_socket_accept_many( obj_t, bool_t, obj_t, obj_t, obj_t );
2782 extern obj_t bgl_gethostname();
2783 extern obj_t bgl_socket_hostname();
2784 extern obj_t bgl_getsockopt( obj_t, obj_t );
2785 extern obj_t bgl_setsockopt( obj_t, obj_t, obj_t );
2786 extern void bgl_init_trace( void );
2787 extern int bgl_sigprocmask( int );
2788 extern long bgl_rgc_blit_string( obj_t, char *, long, long );
2789 extern obj_t bigloo_nan, bigloo_infinity, bigloo_minfinity;
2790 typedef long int ptrdiff_t;
2791 typedef signed char gint8;
2792 typedef unsigned char guint8;
2793 typedef signed short gint16;
2794 typedef unsigned short guint16;
2795 typedef signed int gint32;
2796 typedef unsigned int guint32;
2797 typedef signed long gint64;
2798 typedef unsigned long guint64;
2799 typedef signed long gssize;
2800 typedef unsigned long gsize;
2801 typedef gint64 goffset;
2802 typedef signed long gintptr;
2803 typedef unsigned long guintptr;
2804 typedef struct _GStaticMutex GStaticMutex;
2805 struct _GStaticMutex
2806 {
2807 struct _GMutex *runtime_mutex;
2808 union {
2809 char pad[40];
2810 double dummy_double;
2811 void *dummy_pointer;
2812 long dummy_long;
2813 } static_mutex;
2814 };
2815 typedef union _GSystemThread GSystemThread;
2816 union _GSystemThread
2817 {
2818 char data[8];
2819 double dummy_double;
2820 void *dummy_pointer;
2821 long dummy_long;
2822 };
2823 typedef int GPid;
2824 typedef char gchar;
2825 typedef short gshort;
2826 typedef long glong;
2827 typedef int gint;
2828 typedef gint gboolean;
2829 typedef unsigned char guchar;
2830 typedef unsigned short gushort;
2831 typedef unsigned long gulong;
2832 typedef unsigned int guint;
2833 typedef float gfloat;
2834 typedef double gdouble;
2835 typedef void* gpointer;
2836 typedef const void *gconstpointer;
2837 typedef gint (*GCompareFunc) (gconstpointer a,
2838 gconstpointer b);
2839 typedef gint (*GCompareDataFunc) (gconstpointer a,
2840 gconstpointer b,
2841 gpointer user_data);
2842 typedef gboolean (*GEqualFunc) (gconstpointer a,
2843 gconstpointer b);
2844 typedef void (*GDestroyNotify) (gpointer data);
2845 typedef void (*GFunc) (gpointer data,
2846 gpointer user_data);
2847 typedef guint (*GHashFunc) (gconstpointer key);
2848 typedef void (*GHFunc) (gpointer key,
2849 gpointer value,
2850 gpointer user_data);
2851 typedef void (*GFreeFunc) (gpointer data);
2852 typedef const gchar * (*GTranslateFunc) (const gchar *str,
2853 gpointer data);
2854 typedef union _GDoubleIEEE754 GDoubleIEEE754;
2855 typedef union _GFloatIEEE754 GFloatIEEE754;
2856 union _GFloatIEEE754
2857 {
2858 gfloat v_float;
2859 struct {
2860 guint mantissa : 23;
2861 guint biased_exponent : 8;
2862 guint sign : 1;
2863 } mpn;
2864 };
2865 union _GDoubleIEEE754
2866 {
2867 gdouble v_double;
2868 struct {
2869 guint mantissa_low : 32;
2870 guint mantissa_high : 20;
2871 guint biased_exponent : 11;
2872 guint sign : 1;
2873 } mpn;
2874 };
2875 typedef struct _GTimeVal GTimeVal;
2876 struct _GTimeVal
2877 {
2878 glong tv_sec;
2879 glong tv_usec;
2880 };
2881 typedef struct _GArray GArray;
2882 typedef struct _GByteArray GByteArray;
2883 typedef struct _GPtrArray GPtrArray;
2884 struct _GArray
2885 {
2886 gchar *data;
2887 guint len;
2888 };
2889 struct _GByteArray
2890 {
2891 guint8 *data;
2892 guint len;
2893 };
2894 struct _GPtrArray
2895 {
2896 gpointer *pdata;
2897 guint len;
2898 };
2899 GArray* g_array_new (gboolean zero_terminated,
2900 gboolean clear_,
2901 guint element_size);
2902 GArray* g_array_sized_new (gboolean zero_terminated,
2903 gboolean clear_,
2904 guint element_size,
2905 guint reserved_size);
2906 gchar* g_array_free (GArray *array,
2907 gboolean free_segment);
2908 GArray* g_array_append_vals (GArray *array,
2909 gconstpointer data,
2910 guint len);
2911 GArray* g_array_prepend_vals (GArray *array,
2912 gconstpointer data,
2913 guint len);
2914 GArray* g_array_insert_vals (GArray *array,
2915 guint index_,
2916 gconstpointer data,
2917 guint len);
2918 GArray* g_array_set_size (GArray *array,
2919 guint length);
2920 GArray* g_array_remove_index (GArray *array,
2921 guint index_);
2922 GArray* g_array_remove_index_fast (GArray *array,
2923 guint index_);
2924 GArray* g_array_remove_range (GArray *array,
2925 guint index_,
2926 guint length);
2927 void g_array_sort (GArray *array,
2928 GCompareFunc compare_func);
2929 void g_array_sort_with_data (GArray *array,
2930 GCompareDataFunc compare_func,
2931 gpointer user_data);
2932 GPtrArray* g_ptr_array_new (void);
2933 GPtrArray* g_ptr_array_sized_new (guint reserved_size);
2934 gpointer* g_ptr_array_free (GPtrArray *array,
2935 gboolean free_seg);
2936 void g_ptr_array_set_size (GPtrArray *array,
2937 gint length);
2938 gpointer g_ptr_array_remove_index (GPtrArray *array,
2939 guint index_);
2940 gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
2941 guint index_);
2942 gboolean g_ptr_array_remove (GPtrArray *array,
2943 gpointer data);
2944 gboolean g_ptr_array_remove_fast (GPtrArray *array,
2945 gpointer data);
2946 void g_ptr_array_remove_range (GPtrArray *array,
2947 guint index_,
2948 guint length);
2949 void g_ptr_array_add (GPtrArray *array,
2950 gpointer data);
2951 void g_ptr_array_sort (GPtrArray *array,
2952 GCompareFunc compare_func);
2953 void g_ptr_array_sort_with_data (GPtrArray *array,
2954 GCompareDataFunc compare_func,
2955 gpointer user_data);
2956 void g_ptr_array_foreach (GPtrArray *array,
2957 GFunc func,
2958 gpointer user_data);
2959 GByteArray* g_byte_array_new (void);
2960 GByteArray* g_byte_array_sized_new (guint reserved_size);
2961 guint8* g_byte_array_free (GByteArray *array,
2962 gboolean free_segment);
2963 GByteArray* g_byte_array_append (GByteArray *array,
2964 const guint8 *data,
2965 guint len);
2966 GByteArray* g_byte_array_prepend (GByteArray *array,
2967 const guint8 *data,
2968 guint len);
2969 GByteArray* g_byte_array_set_size (GByteArray *array,
2970 guint length);
2971 GByteArray* g_byte_array_remove_index (GByteArray *array,
2972 guint index_);
2973 GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
2974 guint index_);
2975 GByteArray* g_byte_array_remove_range (GByteArray *array,
2976 guint index_,
2977 guint length);
2978 void g_byte_array_sort (GByteArray *array,
2979 GCompareFunc compare_func);
2980 void g_byte_array_sort_with_data (GByteArray *array,
2981 GCompareDataFunc compare_func,
2982 gpointer user_data);
2983 typedef guint32 GQuark;
2984 GQuark g_quark_try_string (const gchar *string);
2985 GQuark g_quark_from_static_string (const gchar *string);
2986 GQuark g_quark_from_string (const gchar *string);
2987 const gchar* g_quark_to_string (GQuark quark) __attribute__((__const__));
2988 const gchar* g_intern_string (const gchar *string);
2989 const gchar* g_intern_static_string (const gchar *string);
2990 typedef struct _GError GError;
2991 struct _GError
2992 {
2993 GQuark domain;
2994 gint code;
2995 gchar *message;
2996 };
2997 GError* g_error_new (GQuark domain,
2998 gint code,
2999 const gchar *format,
3000 ...) __attribute__((__format__ (__printf__, 3, 4)));
3001 GError* g_error_new_literal (GQuark domain,
3002 gint code,
3003 const gchar *message);
3004 void g_error_free (GError *error);
3005 GError* g_error_copy (const GError *error);
3006 gboolean g_error_matches (const GError *error,
3007 GQuark domain,
3008 gint code);
3009 void g_set_error (GError **err,
3010 GQuark domain,
3011 gint code,
3012 const gchar *format,
3013 ...) __attribute__((__format__ (__printf__, 4, 5)));
3014 void g_set_error_literal (GError **err,
3015 GQuark domain,
3016 gint code,
3017 const gchar *message);
3018 void g_propagate_error (GError **dest,
3019 GError *src);
3020 void g_clear_error (GError **err);
3021 void g_prefix_error (GError **err,
3022 const gchar *format,
3023 ...) __attribute__((__format__ (__printf__, 2, 3)));
3024 void g_propagate_prefixed_error (GError **dest,
3025 GError *src,
3026 const gchar *format,
3027 ...) __attribute__((__format__ (__printf__, 3, 4)));
3028 typedef __gnuc_va_list va_list;
3029 const gchar* g_get_user_name (void);
3030 const gchar* g_get_real_name (void);
3031 const gchar* g_get_home_dir (void);
3032 const gchar* g_get_tmp_dir (void);
3033 const gchar* g_get_host_name (void);
3034 gchar* g_get_prgname (void);
3035 void g_set_prgname (const gchar *prgname);
3036 const gchar* g_get_application_name (void);
3037 void g_set_application_name (const gchar *application_name);
3038 const gchar* g_get_user_data_dir (void);
3039 const gchar* g_get_user_config_dir (void);
3040 const gchar* g_get_user_cache_dir (void);
3041 const gchar* const * g_get_system_data_dirs (void);
3042 const gchar* const * g_get_system_config_dirs (void);
3043 const gchar* const * g_get_language_names (void);
3044 typedef enum {
3045 G_USER_DIRECTORY_DESKTOP,
3046 G_USER_DIRECTORY_DOCUMENTS,
3047 G_USER_DIRECTORY_DOWNLOAD,
3048 G_USER_DIRECTORY_MUSIC,
3049 G_USER_DIRECTORY_PICTURES,
3050 G_USER_DIRECTORY_PUBLIC_SHARE,
3051 G_USER_DIRECTORY_TEMPLATES,
3052 G_USER_DIRECTORY_VIDEOS,
3053 G_USER_N_DIRECTORIES
3054 } GUserDirectory;
3055 const gchar* g_get_user_special_dir (GUserDirectory directory);
3056 typedef struct _GDebugKey GDebugKey;
3057 struct _GDebugKey
3058 {
3059 const gchar *key;
3060 guint value;
3061 };
3062 guint g_parse_debug_string (const gchar *string,
3063 const GDebugKey *keys,
3064 guint nkeys);
3065 gint g_snprintf (gchar *string,
3066 gulong n,
3067 gchar const *format,
3068 ...) __attribute__((__format__ (__printf__, 3, 4)));
3069 gint g_vsnprintf (gchar *string,
3070 gulong n,
3071 gchar const *format,
3072 va_list args);
3073 gboolean g_path_is_absolute (const gchar *file_name);
3074 const gchar* g_path_skip_root (const gchar *file_name);
3075 const gchar* g_basename (const gchar *file_name);
3076 gchar* g_get_current_dir (void);
3077 gchar* g_path_get_basename (const gchar *file_name) __attribute__((__malloc__));
3078 gchar* g_path_get_dirname (const gchar *file_name) __attribute__((__malloc__));
3079 void g_nullify_pointer (gpointer *nullify_location);
3080 const gchar* g_getenv (const gchar *variable);
3081 gboolean g_setenv (const gchar *variable,
3082 const gchar *value,
3083 gboolean overwrite);
3084 void g_unsetenv (const gchar *variable);
3085 gchar** g_listenv (void);
3086 const gchar* _g_getenv_nomalloc (const gchar *variable,
3087 gchar buffer[1024]);
3088 typedef void (*GVoidFunc) (void);
3089 void g_atexit (GVoidFunc func);
3090 gchar* g_find_program_in_path (const gchar *program);
3091 static __inline __attribute__ ((unused)) gint g_bit_nth_lsf (gulong mask,
3092 gint nth_bit) __attribute__((__const__));
3093 static __inline __attribute__ ((unused)) gint g_bit_nth_msf (gulong mask,
3094 gint nth_bit) __attribute__((__const__));
3095 static __inline __attribute__ ((unused)) guint g_bit_storage (gulong number) __attribute__((__const__));
3096 typedef struct _GTrashStack GTrashStack;
3097 struct _GTrashStack
3098 {
3099 GTrashStack *next;
3100 };
3101 static __inline __attribute__ ((unused)) void g_trash_stack_push (GTrashStack **stack_p,
3102 gpointer data_p);
3103 static __inline __attribute__ ((unused)) gpointer g_trash_stack_pop (GTrashStack **stack_p);
3104 static __inline __attribute__ ((unused)) gpointer g_trash_stack_peek (GTrashStack **stack_p);
3105 static __inline __attribute__ ((unused)) guint g_trash_stack_height (GTrashStack **stack_p);
3106 static __inline __attribute__ ((unused)) gint
3107 g_bit_nth_lsf (gulong mask,
3108 gint nth_bit)
3109 {
3110 if ((nth_bit < -1))
3111 nth_bit = -1;
3112 while (nth_bit < ((8 * 8) - 1))
3113 {
3114 nth_bit++;
3115 if (mask & (1UL << nth_bit))
3116 return nth_bit;
3117 }
3118 return -1;
3119 }
3120 static __inline __attribute__ ((unused)) gint
3121 g_bit_nth_msf (gulong mask,
3122 gint nth_bit)
3123 {
3124 if (nth_bit < 0 || (nth_bit > 8 * 8))
3125 nth_bit = 8 * 8;
3126 while (nth_bit > 0)
3127 {
3128 nth_bit--;
3129 if (mask & (1UL << nth_bit))
3130 return nth_bit;
3131 }
3132 return -1;
3133 }
3134 static __inline __attribute__ ((unused)) guint
3135 g_bit_storage (gulong number)
3136 {
3137 register guint n_bits = 0;
3138 do
3139 {
3140 n_bits++;
3141 number >>= 1;
3142 }
3143 while (number);
3144 return n_bits;
3145 }
3146 static __inline __attribute__ ((unused)) void
3147 g_trash_stack_push (GTrashStack **stack_p,
3148 gpointer data_p)
3149 {
3150 GTrashStack *data = (GTrashStack *) data_p;
3151 data->next = *stack_p;
3152 *stack_p = data;
3153 }
3154 static __inline __attribute__ ((unused)) gpointer
3155 g_trash_stack_pop (GTrashStack **stack_p)
3156 {
3157 GTrashStack *data;
3158 data = *stack_p;
3159 if (data)
3160 {
3161 *stack_p = data->next;
3162 data->next = ((void *)0);
3163 }
3164 return data;
3165 }
3166 static __inline __attribute__ ((unused)) gpointer
3167 g_trash_stack_peek (GTrashStack **stack_p)
3168 {
3169 GTrashStack *data;
3170 data = *stack_p;
3171 return data;
3172 }
3173 static __inline __attribute__ ((unused)) guint
3174 g_trash_stack_height (GTrashStack **stack_p)
3175 {
3176 GTrashStack *data;
3177 guint i = 0;
3178 for (data = *stack_p; data; data = data->next)
3179 i++;
3180 return i;
3181 }
3182 extern const guint glib_major_version;
3183 extern const guint glib_minor_version;
3184 extern const guint glib_micro_version;
3185 extern const guint glib_interface_age;
3186 extern const guint glib_binary_age;
3187 const gchar * glib_check_version (guint required_major,
3188 guint required_minor,
3189 guint required_micro);
3190 gint g_atomic_int_exchange_and_add (volatile gint __attribute__((may_alias)) *atomic,
3191 gint val);
3192 void g_atomic_int_add (volatile gint __attribute__((may_alias)) *atomic,
3193 gint val);
3194 gboolean g_atomic_int_compare_and_exchange (volatile gint __attribute__((may_alias)) *atomic,
3195 gint oldval,
3196 gint newval);
3197 gboolean g_atomic_pointer_compare_and_exchange (volatile gpointer __attribute__((may_alias)) *atomic,
3198 gpointer oldval,
3199 gpointer newval);
3200 gint g_atomic_int_get (volatile gint __attribute__((may_alias)) *atomic);
3201 void g_atomic_int_set (volatile gint __attribute__((may_alias)) *atomic,
3202 gint newval);
3203 gpointer g_atomic_pointer_get (volatile gpointer __attribute__((may_alias)) *atomic);
3204 void g_atomic_pointer_set (volatile gpointer __attribute__((may_alias)) *atomic,
3205 gpointer newval);
3206 extern GQuark g_thread_error_quark (void);
3207 typedef enum
3208 {
3209 G_THREAD_ERROR_AGAIN
3210 } GThreadError;
3211 typedef gpointer (*GThreadFunc) (gpointer data);
3212 typedef enum
3213 {
3214 G_THREAD_PRIORITY_LOW,
3215 G_THREAD_PRIORITY_NORMAL,
3216 G_THREAD_PRIORITY_HIGH,
3217 G_THREAD_PRIORITY_URGENT
3218 } GThreadPriority;
3219 typedef struct _GThread GThread;
3220 struct _GThread
3221 {
3222 GThreadFunc func;
3223 gpointer data;
3224 gboolean joinable;
3225 GThreadPriority priority;
3226 };
3227 typedef struct _GMutex GMutex;
3228 typedef struct _GCond GCond;
3229 typedef struct _GPrivate GPrivate;
3230 typedef struct _GStaticPrivate GStaticPrivate;
3231 typedef struct _GThreadFunctions GThreadFunctions;
3232 struct _GThreadFunctions
3233 {
3234 GMutex* (*mutex_new) (void);
3235 void (*mutex_lock) (GMutex *mutex);
3236 gboolean (*mutex_trylock) (GMutex *mutex);
3237 void (*mutex_unlock) (GMutex *mutex);
3238 void (*mutex_free) (GMutex *mutex);
3239 GCond* (*cond_new) (void);
3240 void (*cond_signal) (GCond *cond);
3241 void (*cond_broadcast) (GCond *cond);
3242 void (*cond_wait) (GCond *cond,
3243 GMutex *mutex);
3244 gboolean (*cond_timed_wait) (GCond *cond,
3245 GMutex *mutex,
3246 GTimeVal *end_time);
3247 void (*cond_free) (GCond *cond);
3248 GPrivate* (*private_new) (GDestroyNotify destructor);
3249 gpointer (*private_get) (GPrivate *private_key);
3250 void (*private_set) (GPrivate *private_key,
3251 gpointer data);
3252 void (*thread_create) (GThreadFunc func,
3253 gpointer data,
3254 gulong stack_size,
3255 gboolean joinable,
3256 gboolean bound,
3257 GThreadPriority priority,
3258 gpointer thread,
3259 GError **error);
3260 void (*thread_yield) (void);
3261 void (*thread_join) (gpointer thread);
3262 void (*thread_exit) (void);
3263 void (*thread_set_priority)(gpointer thread,
3264 GThreadPriority priority);
3265 void (*thread_self) (gpointer thread);
3266 gboolean (*thread_equal) (gpointer thread1,
3267 gpointer thread2);
3268 };
3269 extern GThreadFunctions g_thread_functions_for_glib_use;
3270 extern gboolean g_thread_use_default_impl;
3271 extern gboolean g_threads_got_initialized;
3272 extern guint64 (*g_thread_gettime) (void);
3273 void g_thread_init (GThreadFunctions *vtable);
3274 void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable);
3275 gboolean g_thread_get_initialized (void);
3276 GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex);
3277 GThread* g_thread_create_full (GThreadFunc func,
3278 gpointer data,
3279 gulong stack_size,
3280 gboolean joinable,
3281 gboolean bound,
3282 GThreadPriority priority,
3283 GError **error);
3284 GThread* g_thread_self (void);
3285 void g_thread_exit (gpointer retval);
3286 gpointer g_thread_join (GThread *thread);
3287 void g_thread_set_priority (GThread *thread,
3288 GThreadPriority priority);
3289 void g_static_mutex_init (GStaticMutex *mutex);
3290 void g_static_mutex_free (GStaticMutex *mutex);
3291 struct _GStaticPrivate
3292 {
3293 guint index;
3294 };
3295 void g_static_private_init (GStaticPrivate *private_key);
3296 gpointer g_static_private_get (GStaticPrivate *private_key);
3297 void g_static_private_set (GStaticPrivate *private_key,
3298 gpointer data,
3299 GDestroyNotify notify);
3300 void g_static_private_free (GStaticPrivate *private_key);
3301 typedef struct _GStaticRecMutex GStaticRecMutex;
3302 struct _GStaticRecMutex
3303 {
3304 GStaticMutex mutex;
3305 guint depth;
3306 GSystemThread owner;
3307 };
3308 void g_static_rec_mutex_init (GStaticRecMutex *mutex);
3309 void g_static_rec_mutex_lock (GStaticRecMutex *mutex);
3310 gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex);
3311 void g_static_rec_mutex_unlock (GStaticRecMutex *mutex);
3312 void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex,
3313 guint depth);
3314 guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex);
3315 void g_static_rec_mutex_free (GStaticRecMutex *mutex);
3316 typedef struct _GStaticRWLock GStaticRWLock;
3317 struct _GStaticRWLock
3318 {
3319 GStaticMutex mutex;
3320 GCond *read_cond;
3321 GCond *write_cond;
3322 guint read_counter;
3323 gboolean have_writer;
3324 guint want_to_read;
3325 guint want_to_write;
3326 };
3327 void g_static_rw_lock_init (GStaticRWLock* lock);
3328 void g_static_rw_lock_reader_lock (GStaticRWLock* lock);
3329 gboolean g_static_rw_lock_reader_trylock (GStaticRWLock* lock);
3330 void g_static_rw_lock_reader_unlock (GStaticRWLock* lock);
3331 void g_static_rw_lock_writer_lock (GStaticRWLock* lock);
3332 gboolean g_static_rw_lock_writer_trylock (GStaticRWLock* lock);
3333 void g_static_rw_lock_writer_unlock (GStaticRWLock* lock);
3334 void g_static_rw_lock_free (GStaticRWLock* lock);
3335 void g_thread_foreach (GFunc thread_func,
3336 gpointer user_data);
3337 typedef enum
3338 {
3339 G_ONCE_STATUS_NOTCALLED,
3340 G_ONCE_STATUS_PROGRESS,
3341 G_ONCE_STATUS_READY
3342 } GOnceStatus;
3343 typedef struct _GOnce GOnce;
3344 struct _GOnce
3345 {
3346 volatile GOnceStatus status;
3347 volatile gpointer retval;
3348 };
3349 gpointer g_once_impl (GOnce *once, GThreadFunc func, gpointer arg);
3350 static __inline __attribute__ ((unused)) gboolean g_once_init_enter (volatile gsize *value_location);
3351 gboolean g_once_init_enter_impl (volatile gsize *value_location);
3352 void g_once_init_leave (volatile gsize *value_location,
3353 gsize initialization_value);
3354 static __inline __attribute__ ((unused)) gboolean
3355 g_once_init_enter (volatile gsize *value_location)
3356 {
3357 if ((gpointer) ((gpointer)*(value_location)) != ((void *)0))
3358 return (0);
3359 else
3360 return g_once_init_enter_impl (value_location);
3361 }
3362 extern void glib_dummy_decl (void);
3363 typedef struct _GAsyncQueue GAsyncQueue;
3364 GAsyncQueue* g_async_queue_new (void);
3365 GAsyncQueue* g_async_queue_new_full (GDestroyNotify item_free_func);
3366 void g_async_queue_lock (GAsyncQueue *queue);
3367 void g_async_queue_unlock (GAsyncQueue *queue);
3368 GAsyncQueue* g_async_queue_ref (GAsyncQueue *queue);
3369 void g_async_queue_unref (GAsyncQueue *queue);
3370 void g_async_queue_ref_unlocked (GAsyncQueue *queue);
3371 void g_async_queue_unref_and_unlock (GAsyncQueue *queue);
3372 void g_async_queue_push (GAsyncQueue *queue,
3373 gpointer data);
3374 void g_async_queue_push_unlocked (GAsyncQueue *queue,
3375 gpointer data);
3376 void g_async_queue_push_sorted (GAsyncQueue *queue,
3377 gpointer data,
3378 GCompareDataFunc func,
3379 gpointer user_data);
3380 void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue,
3381 gpointer data,
3382 GCompareDataFunc func,
3383 gpointer user_data);
3384 gpointer g_async_queue_pop (GAsyncQueue *queue);
3385 gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue);
3386 gpointer g_async_queue_try_pop (GAsyncQueue *queue);
3387 gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue);
3388 gpointer g_async_queue_timed_pop (GAsyncQueue *queue,
3389 GTimeVal *end_time);
3390 gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
3391 GTimeVal *end_time);
3392 gint g_async_queue_length (GAsyncQueue *queue);
3393 gint g_async_queue_length_unlocked (GAsyncQueue *queue);
3394 void g_async_queue_sort (GAsyncQueue *queue,
3395 GCompareDataFunc func,
3396 gpointer user_data);
3397 void g_async_queue_sort_unlocked (GAsyncQueue *queue,
3398 GCompareDataFunc func,
3399 gpointer user_data);
3400 GMutex* _g_async_queue_get_mutex (GAsyncQueue *queue);
3401 void g_on_error_query (const gchar *prg_name);
3402 void g_on_error_stack_trace (const gchar *prg_name);
3403 gsize g_base64_encode_step (const guchar *in,
3404 gsize len,
3405 gboolean break_lines,
3406 gchar *out,
3407 gint *state,
3408 gint *save);
3409 gsize g_base64_encode_close (gboolean break_lines,
3410 gchar *out,
3411 gint *state,
3412 gint *save);
3413 gchar* g_base64_encode (const guchar *data,
3414 gsize len) __attribute__((__malloc__));
3415 gsize g_base64_decode_step (const gchar *in,
3416 gsize len,
3417 guchar *out,
3418 gint *state,
3419 guint *save);
3420 guchar *g_base64_decode (const gchar *text,
3421 gsize *out_len) __attribute__((__malloc__));
3422 guchar *g_base64_decode_inplace (gchar *text,
3423 gsize *out_len);
3424 typedef __clock_t clock_t;
3425 struct tm
3426 {
3427 int tm_sec;
3428 int tm_min;
3429 int tm_hour;
3430 int tm_mday;
3431 int tm_mon;
3432 int tm_year;
3433 int tm_wday;
3434 int tm_yday;
3435 int tm_isdst;
3436 long int tm_gmtoff;
3437 __const char *tm_zone;
3438 };
3439 struct itimerspec
3440 {
3441 struct timespec it_interval;
3442 struct timespec it_value;
3443 };
3444 struct sigevent;
3445 extern clock_t clock (void) __attribute__ ((__nothrow__));
3446 extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
3447 extern double difftime (time_t __time1, time_t __time0)
3448 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3449 extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
3450 extern size_t strftime (char *__restrict __s, size_t __maxsize,
3451 __const char *__restrict __format,
3452 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3453 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
3454 __const char *__restrict __format,
3455 __const struct tm *__restrict __tp,
3456 __locale_t __loc) __attribute__ ((__nothrow__));
3457 extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3458 extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
3459 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3460 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3461 extern struct tm *localtime_r (__const time_t *__restrict __timer,
3462 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
3463 extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
3464 extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
3465 extern char *asctime_r (__const struct tm *__restrict __tp,
3466 char *__restrict __buf) __attribute__ ((__nothrow__));
3467 extern char *ctime_r (__const time_t *__restrict __timer,
3468 char *__restrict __buf) __attribute__ ((__nothrow__));
3469 extern char *__tzname[2];
3470 extern int __daylight;
3471 extern long int __timezone;
3472 extern char *tzname[2];
3473 extern void tzset (void) __attribute__ ((__nothrow__));
3474 extern int daylight;
3475 extern long int timezone;
3476 extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
3477 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
3478 extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
3479 extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
3480 extern int nanosleep (__const struct timespec *__requested_time,
3481 struct timespec *__remaining);
3482 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
3483 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
3484 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3485 __attribute__ ((__nothrow__));
3486 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3487 __const struct timespec *__req,
3488 struct timespec *__rem);
3489 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
3490 extern int timer_create (clockid_t __clock_id,
3491 struct sigevent *__restrict __evp,
3492 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
3493 extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
3494 extern int timer_settime (timer_t __timerid, int __flags,
3495 __const struct itimerspec *__restrict __value,
3496 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
3497 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3498 __attribute__ ((__nothrow__));
3499 extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
3500 typedef enum
3501 {
3502 G_BOOKMARK_FILE_ERROR_INVALID_URI,
3503 G_BOOKMARK_FILE_ERROR_INVALID_VALUE,
3504 G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED,
3505 G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
3506 G_BOOKMARK_FILE_ERROR_READ,
3507 G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING,
3508 G_BOOKMARK_FILE_ERROR_WRITE,
3509 G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
3510 } GBookmarkFileError;
3511 GQuark g_bookmark_file_error_quark (void);
3512 typedef struct _GBookmarkFile GBookmarkFile;
3513 GBookmarkFile *g_bookmark_file_new (void);
3514 void g_bookmark_file_free (GBookmarkFile *bookmark);
3515 gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
3516 const gchar *filename,
3517 GError **error);
3518 gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark,
3519 const gchar *data,
3520 gsize length,
3521 GError **error);
3522 gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark,
3523 const gchar *file,
3524 gchar **full_path,
3525 GError **error);
3526 gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark,
3527 gsize *length,
3528 GError **error) __attribute__((__malloc__));
3529 gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark,
3530 const gchar *filename,
3531 GError **error);
3532 void g_bookmark_file_set_title (GBookmarkFile *bookmark,
3533 const gchar *uri,
3534 const gchar *title);
3535 gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark,
3536 const gchar *uri,
3537 GError **error) __attribute__((__malloc__));
3538 void g_bookmark_file_set_description (GBookmarkFile *bookmark,
3539 const gchar *uri,
3540 const gchar *description);
3541 gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark,
3542 const gchar *uri,
3543 GError **error) __attribute__((__malloc__));
3544 void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
3545 const gchar *uri,
3546 const gchar *mime_type);
3547 gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark,
3548 const gchar *uri,
3549 GError **error) __attribute__((__malloc__));
3550 void g_bookmark_file_set_groups (GBookmarkFile *bookmark,
3551 const gchar *uri,
3552 const gchar **groups,
3553 gsize length);
3554 void g_bookmark_file_add_group (GBookmarkFile *bookmark,
3555 const gchar *uri,
3556 const gchar *group);
3557 gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark,
3558 const gchar *uri,
3559 const gchar *group,
3560 GError **error);
3561 gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark,
3562 const gchar *uri,
3563 gsize *length,
3564 GError **error) __attribute__((__malloc__));
3565 void g_bookmark_file_add_application (GBookmarkFile *bookmark,
3566 const gchar *uri,
3567 const gchar *name,
3568 const gchar *exec);
3569 gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark,
3570 const gchar *uri,
3571 const gchar *name,
3572 GError **error);
3573 gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark,
3574 const gchar *uri,
3575 gsize *length,
3576 GError **error) __attribute__((__malloc__));
3577 gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark,
3578 const gchar *uri,
3579 const gchar *name,
3580 const gchar *exec,
3581 gint count,
3582 time_t stamp,
3583 GError **error);
3584 gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark,
3585 const gchar *uri,
3586 const gchar *name,
3587 gchar **exec,
3588 guint *count,
3589 time_t *stamp,
3590 GError **error);
3591 void g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
3592 const gchar *uri,
3593 gboolean is_private);
3594 gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark,
3595 const gchar *uri,
3596 GError **error);
3597 void g_bookmark_file_set_icon (GBookmarkFile *bookmark,
3598 const gchar *uri,
3599 const gchar *href,
3600 const gchar *mime_type);
3601 gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark,
3602 const gchar *uri,
3603 gchar **href,
3604 gchar **mime_type,
3605 GError **error);
3606 void g_bookmark_file_set_added (GBookmarkFile *bookmark,
3607 const gchar *uri,
3608 time_t added);
3609 time_t g_bookmark_file_get_added (GBookmarkFile *bookmark,
3610 const gchar *uri,
3611 GError **error);
3612 void g_bookmark_file_set_modified (GBookmarkFile *bookmark,
3613 const gchar *uri,
3614 time_t modified);
3615 time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark,
3616 const gchar *uri,
3617 GError **error);
3618 void g_bookmark_file_set_visited (GBookmarkFile *bookmark,
3619 const gchar *uri,
3620 time_t visited);
3621 time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark,
3622 const gchar *uri,
3623 GError **error);
3624 gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark,
3625 const gchar *uri);
3626 gint g_bookmark_file_get_size (GBookmarkFile *bookmark);
3627 gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark,
3628 gsize *length) __attribute__((__malloc__));
3629 gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark,
3630 const gchar *uri,
3631 const gchar *group,
3632 GError **error);
3633 gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark,
3634 const gchar *uri,
3635 const gchar *name,
3636 GError **error);
3637 gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark,
3638 const gchar *uri,
3639 GError **error);
3640 gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark,
3641 const gchar *old_uri,
3642 const gchar *new_uri,
3643 GError **error);
3644 gpointer g_slice_alloc (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3645 gpointer g_slice_alloc0 (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3646 gpointer g_slice_copy (gsize block_size,
3647 gconstpointer mem_block) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3648 void g_slice_free1 (gsize block_size,
3649 gpointer mem_block);
3650 void g_slice_free_chain_with_offset (gsize block_size,
3651 gpointer mem_chain,
3652 gsize next_offset);
3653 typedef enum {
3654 G_SLICE_CONFIG_ALWAYS_MALLOC = 1,
3655 G_SLICE_CONFIG_BYPASS_MAGAZINES,
3656 G_SLICE_CONFIG_WORKING_SET_MSECS,
3657 G_SLICE_CONFIG_COLOR_INCREMENT,
3658 G_SLICE_CONFIG_CHUNK_SIZES,
3659 G_SLICE_CONFIG_CONTENTION_COUNTER
3660 } GSliceConfig;
3661 void g_slice_set_config (GSliceConfig ckey, gint64 value);
3662 gint64 g_slice_get_config (GSliceConfig ckey);
3663 gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);
3664 typedef struct _GMemVTable GMemVTable;
3665 gpointer g_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3666 gpointer g_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3667 gpointer g_realloc (gpointer mem,
3668 gsize n_bytes) __attribute__((warn_unused_result));
3669 void g_free (gpointer mem);
3670 gpointer g_try_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3671 gpointer g_try_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
3672 gpointer g_try_realloc (gpointer mem,
3673 gsize n_bytes) __attribute__((warn_unused_result));
3674 struct _GMemVTable
3675 {
3676 gpointer (*malloc) (gsize n_bytes);
3677 gpointer (*realloc) (gpointer mem,
3678 gsize n_bytes);
3679 void (*free) (gpointer mem);
3680 gpointer (*calloc) (gsize n_blocks,
3681 gsize n_block_bytes);
3682 gpointer (*try_malloc) (gsize n_bytes);
3683 gpointer (*try_realloc) (gpointer mem,
3684 gsize n_bytes);
3685 };
3686 void g_mem_set_vtable (GMemVTable *vtable);
3687 gboolean g_mem_is_system_malloc (void);
3688 extern gboolean g_mem_gc_friendly;
3689 extern GMemVTable *glib_mem_profiler_table;
3690 void g_mem_profile (void);
3691 typedef struct _GAllocator GAllocator;
3692 typedef struct _GMemChunk GMemChunk;
3693 GMemChunk* g_mem_chunk_new (const gchar *name,
3694 gint atom_size,
3695 gsize area_size,
3696 gint type);
3697 void g_mem_chunk_destroy (GMemChunk *mem_chunk);
3698 gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk);
3699 gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk);
3700 void g_mem_chunk_free (GMemChunk *mem_chunk,
3701 gpointer mem);
3702 void g_mem_chunk_clean (GMemChunk *mem_chunk);
3703 void g_mem_chunk_reset (GMemChunk *mem_chunk);
3704 void g_mem_chunk_print (GMemChunk *mem_chunk);
3705 void g_mem_chunk_info (void);
3706 void g_blow_chunks (void);
3707 GAllocator*g_allocator_new (const gchar *name,
3708 guint n_preallocs);
3709 void g_allocator_free (GAllocator *allocator);
3710 typedef struct _GList GList;
3711 struct _GList
3712 {
3713 gpointer data;
3714 GList *next;
3715 GList *prev;
3716 };
3717 GList* g_list_alloc (void) __attribute__((warn_unused_result));
3718 void g_list_free (GList *list);
3719 void g_list_free_1 (GList *list);
3720 GList* g_list_append (GList *list,
3721 gpointer data) __attribute__((warn_unused_result));
3722 GList* g_list_prepend (GList *list,
3723 gpointer data) __attribute__((warn_unused_result));
3724 GList* g_list_insert (GList *list,
3725 gpointer data,
3726 gint position) __attribute__((warn_unused_result));
3727 GList* g_list_insert_sorted (GList *list,
3728 gpointer data,
3729 GCompareFunc func) __attribute__((warn_unused_result));
3730 GList* g_list_insert_sorted_with_data (GList *list,
3731 gpointer data,
3732 GCompareDataFunc func,
3733 gpointer user_data) __attribute__((warn_unused_result));
3734 GList* g_list_insert_before (GList *list,
3735 GList *sibling,
3736 gpointer data) __attribute__((warn_unused_result));
3737 GList* g_list_concat (GList *list1,
3738 GList *list2) __attribute__((warn_unused_result));
3739 GList* g_list_remove (GList *list,
3740 gconstpointer data) __attribute__((warn_unused_result));
3741 GList* g_list_remove_all (GList *list,
3742 gconstpointer data) __attribute__((warn_unused_result));
3743 GList* g_list_remove_link (GList *list,
3744 GList *llink) __attribute__((warn_unused_result));
3745 GList* g_list_delete_link (GList *list,
3746 GList *link_) __attribute__((warn_unused_result));
3747 GList* g_list_reverse (GList *list) __attribute__((warn_unused_result));
3748 GList* g_list_copy (GList *list) __attribute__((warn_unused_result));
3749 GList* g_list_nth (GList *list,
3750 guint n);
3751 GList* g_list_nth_prev (GList *list,
3752 guint n);
3753 GList* g_list_find (GList *list,
3754 gconstpointer data);
3755 GList* g_list_find_custom (GList *list,
3756 gconstpointer data,
3757 GCompareFunc func);
3758 gint g_list_position (GList *list,
3759 GList *llink);
3760 gint g_list_index (GList *list,
3761 gconstpointer data);
3762 GList* g_list_last (GList *list);
3763 GList* g_list_first (GList *list);
3764 guint g_list_length (GList *list);
3765 void g_list_foreach (GList *list,
3766 GFunc func,
3767 gpointer user_data);
3768 GList* g_list_sort (GList *list,
3769 GCompareFunc compare_func) __attribute__((warn_unused_result));
3770 GList* g_list_sort_with_data (GList *list,
3771 GCompareDataFunc compare_func,
3772 gpointer user_data) __attribute__((warn_unused_result));
3773 gpointer g_list_nth_data (GList *list,
3774 guint n);
3775 void g_list_push_allocator (gpointer allocator);
3776 void g_list_pop_allocator (void);
3777 typedef struct _GCache GCache;
3778 typedef gpointer (*GCacheNewFunc) (gpointer key);
3779 typedef gpointer (*GCacheDupFunc) (gpointer value);
3780 typedef void (*GCacheDestroyFunc) (gpointer value);
3781 GCache* g_cache_new (GCacheNewFunc value_new_func,
3782 GCacheDestroyFunc value_destroy_func,
3783 GCacheDupFunc key_dup_func,
3784 GCacheDestroyFunc key_destroy_func,
3785 GHashFunc hash_key_func,
3786 GHashFunc hash_value_func,
3787 GEqualFunc key_equal_func);
3788 void g_cache_destroy (GCache *cache);
3789 gpointer g_cache_insert (GCache *cache,
3790 gpointer key);
3791 void g_cache_remove (GCache *cache,
3792 gconstpointer value);
3793 void g_cache_key_foreach (GCache *cache,
3794 GHFunc func,
3795 gpointer user_data);
3796 void g_cache_value_foreach (GCache *cache,
3797 GHFunc func,
3798 gpointer user_data);
3799 typedef enum {
3800 G_CHECKSUM_MD5,
3801 G_CHECKSUM_SHA1,
3802 G_CHECKSUM_SHA256
3803 } GChecksumType;
3804 typedef struct _GChecksum GChecksum;
3805 gssize g_checksum_type_get_length (GChecksumType checksum_type);
3806 GChecksum * g_checksum_new (GChecksumType checksum_type);
3807 void g_checksum_reset (GChecksum *checksum);
3808 GChecksum * g_checksum_copy (const GChecksum *checksum);
3809 void g_checksum_free (GChecksum *checksum);
3810 void g_checksum_update (GChecksum *checksum,
3811 const guchar *data,
3812 gssize length);
3813 const gchar *g_checksum_get_string (GChecksum *checksum);
3814 void g_checksum_get_digest (GChecksum *checksum,
3815 guint8 *buffer,
3816 gsize *digest_len);
3817 gchar *g_compute_checksum_for_data (GChecksumType checksum_type,
3818 const guchar *data,
3819 gsize length);
3820 gchar *g_compute_checksum_for_string (GChecksumType checksum_type,
3821 const gchar *str,
3822 gssize length);
3823 typedef struct _GCompletion GCompletion;
3824 typedef gchar* (*GCompletionFunc) (gpointer);
3825 typedef gint (*GCompletionStrncmpFunc) (const gchar *s1,
3826 const gchar *s2,
3827 gsize n);
3828 struct _GCompletion
3829 {
3830 GList* items;
3831 GCompletionFunc func;
3832 gchar* prefix;
3833 GList* cache;
3834 GCompletionStrncmpFunc strncmp_func;
3835 };
3836 GCompletion* g_completion_new (GCompletionFunc func);
3837 void g_completion_add_items (GCompletion* cmp,
3838 GList* items);
3839 void g_completion_remove_items (GCompletion* cmp,
3840 GList* items);
3841 void g_completion_clear_items (GCompletion* cmp);
3842 GList* g_completion_complete (GCompletion* cmp,
3843 const gchar* prefix,
3844 gchar** new_prefix);
3845 GList* g_completion_complete_utf8 (GCompletion *cmp,
3846 const gchar* prefix,
3847 gchar** new_prefix);
3848 void g_completion_set_compare (GCompletion *cmp,
3849 GCompletionStrncmpFunc strncmp_func);
3850 void g_completion_free (GCompletion* cmp);
3851 typedef enum
3852 {
3853 G_CONVERT_ERROR_NO_CONVERSION,
3854 G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
3855 G_CONVERT_ERROR_FAILED,
3856 G_CONVERT_ERROR_PARTIAL_INPUT,
3857 G_CONVERT_ERROR_BAD_URI,
3858 G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
3859 } GConvertError;
3860 GQuark g_convert_error_quark (void);
3861 typedef struct _GIConv *GIConv;
3862 GIConv g_iconv_open (const gchar *to_codeset,
3863 const gchar *from_codeset);
3864 gsize g_iconv (GIConv converter,
3865 gchar **inbuf,
3866 gsize *inbytes_left,
3867 gchar **outbuf,
3868 gsize *outbytes_left);
3869 gint g_iconv_close (GIConv converter);
3870 gchar* g_convert (const gchar *str,
3871 gssize len,
3872 const gchar *to_codeset,
3873 const gchar *from_codeset,
3874 gsize *bytes_read,
3875 gsize *bytes_written,
3876 GError **error) __attribute__((__malloc__));
3877 gchar* g_convert_with_iconv (const gchar *str,
3878 gssize len,
3879 GIConv converter,
3880 gsize *bytes_read,
3881 gsize *bytes_written,
3882 GError **error) __attribute__((__malloc__));
3883 gchar* g_convert_with_fallback (const gchar *str,
3884 gssize len,
3885 const gchar *to_codeset,
3886 const gchar *from_codeset,
3887 gchar *fallback,
3888 gsize *bytes_read,
3889 gsize *bytes_written,
3890 GError **error) __attribute__((__malloc__));
3891 gchar* g_locale_to_utf8 (const gchar *opsysstring,
3892 gssize len,
3893 gsize *bytes_read,
3894 gsize *bytes_written,
3895 GError **error) __attribute__((__malloc__));
3896 gchar* g_locale_from_utf8 (const gchar *utf8string,
3897 gssize len,
3898 gsize *bytes_read,
3899 gsize *bytes_written,
3900 GError **error) __attribute__((__malloc__));
3901 gchar* g_filename_to_utf8 (const gchar *opsysstring,
3902 gssize len,
3903 gsize *bytes_read,
3904 gsize *bytes_written,
3905 GError **error) __attribute__((__malloc__));
3906 gchar* g_filename_from_utf8 (const gchar *utf8string,
3907 gssize len,
3908 gsize *bytes_read,
3909 gsize *bytes_written,
3910 GError **error) __attribute__((__malloc__));
3911 gchar *g_filename_from_uri (const gchar *uri,
3912 gchar **hostname,
3913 GError **error) __attribute__((__malloc__));
3914 gchar *g_filename_to_uri (const gchar *filename,
3915 const gchar *hostname,
3916 GError **error) __attribute__((__malloc__));
3917 gchar *g_filename_display_name (const gchar *filename) __attribute__((__malloc__));
3918 gboolean g_get_filename_charsets (const gchar ***charsets);
3919 gchar *g_filename_display_basename (const gchar *filename) __attribute__((__malloc__));
3920 gchar **g_uri_list_extract_uris (const gchar *uri_list) __attribute__((__malloc__));
3921 typedef struct _GData GData;
3922 typedef void (*GDataForeachFunc) (GQuark key_id,
3923 gpointer data,
3924 gpointer user_data);
3925 void g_datalist_init (GData **datalist);
3926 void g_datalist_clear (GData **datalist);
3927 gpointer g_datalist_id_get_data (GData **datalist,
3928 GQuark key_id);
3929 void g_datalist_id_set_data_full (GData **datalist,
3930 GQuark key_id,
3931 gpointer data,
3932 GDestroyNotify destroy_func);
3933 gpointer g_datalist_id_remove_no_notify (GData **datalist,
3934 GQuark key_id);
3935 void g_datalist_foreach (GData **datalist,
3936 GDataForeachFunc func,
3937 gpointer user_data);
3938 void g_datalist_set_flags (GData **datalist,
3939 guint flags);
3940 void g_datalist_unset_flags (GData **datalist,
3941 guint flags);
3942 guint g_datalist_get_flags (GData **datalist);
3943 void g_dataset_destroy (gconstpointer dataset_location);
3944 gpointer g_dataset_id_get_data (gconstpointer dataset_location,
3945 GQuark key_id);
3946 void g_dataset_id_set_data_full (gconstpointer dataset_location,
3947 GQuark key_id,
3948 gpointer data,
3949 GDestroyNotify destroy_func);
3950 gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location,
3951 GQuark key_id);
3952 void g_dataset_foreach (gconstpointer dataset_location,
3953 GDataForeachFunc func,
3954 gpointer user_data);
3955 typedef gint32 GTime;
3956 typedef guint16 GDateYear;
3957 typedef guint8 GDateDay;
3958 typedef struct _GDate GDate;
3959 typedef enum
3960 {
3961 G_DATE_DAY = 0,
3962 G_DATE_MONTH = 1,
3963 G_DATE_YEAR = 2
3964 } GDateDMY;
3965 typedef enum
3966 {
3967 G_DATE_BAD_WEEKDAY = 0,
3968 G_DATE_MONDAY = 1,
3969 G_DATE_TUESDAY = 2,
3970 G_DATE_WEDNESDAY = 3,
3971 G_DATE_THURSDAY = 4,
3972 G_DATE_FRIDAY = 5,
3973 G_DATE_SATURDAY = 6,
3974 G_DATE_SUNDAY = 7
3975 } GDateWeekday;
3976 typedef enum
3977 {
3978 G_DATE_BAD_MONTH = 0,
3979 G_DATE_JANUARY = 1,
3980 G_DATE_FEBRUARY = 2,
3981 G_DATE_MARCH = 3,
3982 G_DATE_APRIL = 4,
3983 G_DATE_MAY = 5,
3984 G_DATE_JUNE = 6,
3985 G_DATE_JULY = 7,
3986 G_DATE_AUGUST = 8,
3987 G_DATE_SEPTEMBER = 9,
3988 G_DATE_OCTOBER = 10,
3989 G_DATE_NOVEMBER = 11,
3990 G_DATE_DECEMBER = 12
3991 } GDateMonth;
3992 struct _GDate
3993 {
3994 guint julian_days : 32;
3995 guint julian : 1;
3996 guint dmy : 1;
3997 guint day : 6;
3998 guint month : 4;
3999 guint year : 16;
4000 };
4001 GDate* g_date_new (void);
4002 GDate* g_date_new_dmy (GDateDay day,
4003 GDateMonth month,
4004 GDateYear year);
4005 GDate* g_date_new_julian (guint32 julian_day);
4006 void g_date_free (GDate *date);
4007 gboolean g_date_valid (const GDate *date);
4008 gboolean g_date_valid_day (GDateDay day) __attribute__((__const__));
4009 gboolean g_date_valid_month (GDateMonth month) __attribute__((__const__));
4010 gboolean g_date_valid_year (GDateYear year) __attribute__((__const__));
4011 gboolean g_date_valid_weekday (GDateWeekday weekday) __attribute__((__const__));
4012 gboolean g_date_valid_julian (guint32 julian_date) __attribute__((__const__));
4013 gboolean g_date_valid_dmy (GDateDay day,
4014 GDateMonth month,
4015 GDateYear year) __attribute__((__const__));
4016 GDateWeekday g_date_get_weekday (const GDate *date);
4017 GDateMonth g_date_get_month (const GDate *date);
4018 GDateYear g_date_get_year (const GDate *date);
4019 GDateDay g_date_get_day (const GDate *date);
4020 guint32 g_date_get_julian (const GDate *date);
4021 guint g_date_get_day_of_year (const GDate *date);
4022 guint g_date_get_monday_week_of_year (const GDate *date);
4023 guint g_date_get_sunday_week_of_year (const GDate *date);
4024 guint g_date_get_iso8601_week_of_year (const GDate *date);
4025 void g_date_clear (GDate *date,
4026 guint n_dates);
4027 void g_date_set_parse (GDate *date,
4028 const gchar *str);
4029 void g_date_set_time_t (GDate *date,
4030 time_t timet);
4031 void g_date_set_time_val (GDate *date,
4032 GTimeVal *timeval);
4033 void g_date_set_time (GDate *date,
4034 GTime time_);
4035 void g_date_set_month (GDate *date,
4036 GDateMonth month);
4037 void g_date_set_day (GDate *date,
4038 GDateDay day);
4039 void g_date_set_year (GDate *date,
4040 GDateYear year);
4041 void g_date_set_dmy (GDate *date,
4042 GDateDay day,
4043 GDateMonth month,
4044 GDateYear y);
4045 void g_date_set_julian (GDate *date,
4046 guint32 julian_date);
4047 gboolean g_date_is_first_of_month (const GDate *date);
4048 gboolean g_date_is_last_of_month (const GDate *date);
4049 void g_date_add_days (GDate *date,
4050 guint n_days);
4051 void g_date_subtract_days (GDate *date,
4052 guint n_days);
4053 void g_date_add_months (GDate *date,
4054 guint n_months);
4055 void g_date_subtract_months (GDate *date,
4056 guint n_months);
4057 void g_date_add_years (GDate *date,
4058 guint n_years);
4059 void g_date_subtract_years (GDate *date,
4060 guint n_years);
4061 gboolean g_date_is_leap_year (GDateYear year) __attribute__((__const__));
4062 guint8 g_date_get_days_in_month (GDateMonth month,
4063 GDateYear year) __attribute__((__const__));
4064 guint8 g_date_get_monday_weeks_in_year (GDateYear year) __attribute__((__const__));
4065 guint8 g_date_get_sunday_weeks_in_year (GDateYear year) __attribute__((__const__));
4066 gint g_date_days_between (const GDate *date1,
4067 const GDate *date2);
4068 gint g_date_compare (const GDate *lhs,
4069 const GDate *rhs);
4070 void g_date_to_struct_tm (const GDate *date,
4071 struct tm *tm);
4072 void g_date_clamp (GDate *date,
4073 const GDate *min_date,
4074 const GDate *max_date);
4075 void g_date_order (GDate *date1, GDate *date2);
4076 gsize g_date_strftime (gchar *s,
4077 gsize slen,
4078 const gchar *format,
4079 const GDate *date);
4080 typedef struct _GDir GDir;
4081 GDir * g_dir_open (const gchar *path,
4082 guint flags,
4083 GError **error);
4084 const gchar *g_dir_read_name (GDir *dir);
4085 void g_dir_rewind (GDir *dir);
4086 void g_dir_close (GDir *dir);
4087 typedef enum
4088 {
4089 G_FILE_ERROR_EXIST,
4090 G_FILE_ERROR_ISDIR,
4091 G_FILE_ERROR_ACCES,
4092 G_FILE_ERROR_NAMETOOLONG,
4093 G_FILE_ERROR_NOENT,
4094 G_FILE_ERROR_NOTDIR,
4095 G_FILE_ERROR_NXIO,
4096 G_FILE_ERROR_NODEV,
4097 G_FILE_ERROR_ROFS,
4098 G_FILE_ERROR_TXTBSY,
4099 G_FILE_ERROR_FAULT,
4100 G_FILE_ERROR_LOOP,
4101 G_FILE_ERROR_NOSPC,
4102 G_FILE_ERROR_NOMEM,
4103 G_FILE_ERROR_MFILE,
4104 G_FILE_ERROR_NFILE,
4105 G_FILE_ERROR_BADF,
4106 G_FILE_ERROR_INVAL,
4107 G_FILE_ERROR_PIPE,
4108 G_FILE_ERROR_AGAIN,
4109 G_FILE_ERROR_INTR,
4110 G_FILE_ERROR_IO,
4111 G_FILE_ERROR_PERM,
4112 G_FILE_ERROR_NOSYS,
4113 G_FILE_ERROR_FAILED
4114 } GFileError;
4115 typedef enum
4116 {
4117 G_FILE_TEST_IS_REGULAR = 1 << 0,
4118 G_FILE_TEST_IS_SYMLINK = 1 << 1,
4119 G_FILE_TEST_IS_DIR = 1 << 2,
4120 G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
4121 G_FILE_TEST_EXISTS = 1 << 4
4122 } GFileTest;
4123 GQuark g_file_error_quark (void);
4124 GFileError g_file_error_from_errno (gint err_no);
4125 gboolean g_file_test (const gchar *filename,
4126 GFileTest test);
4127 gboolean g_file_get_contents (const gchar *filename,
4128 gchar **contents,
4129 gsize *length,
4130 GError **error);
4131 gboolean g_file_set_contents (const gchar *filename,
4132 const gchar *contents,
4133 gssize length,
4134 GError **error);
4135 gchar *g_file_read_link (const gchar *filename,
4136 GError **error);
4137 gint g_mkstemp (gchar *tmpl);
4138 gint g_file_open_tmp (const gchar *tmpl,
4139 gchar **name_used,
4140 GError **error);
4141 char *g_format_size_for_display (goffset size);
4142 gchar *g_build_path (const gchar *separator,
4143 const gchar *first_element,
4144 ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
4145 gchar *g_build_pathv (const gchar *separator,
4146 gchar **args) __attribute__((__malloc__));
4147 gchar *g_build_filename (const gchar *first_element,
4148 ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
4149 gchar *g_build_filenamev (gchar **args) __attribute__((__malloc__));
4150 int g_mkdir_with_parents (const gchar *pathname,
4151 int mode);
4152 typedef struct _GHashTable GHashTable;
4153 typedef gboolean (*GHRFunc) (gpointer key,
4154 gpointer value,
4155 gpointer user_data);
4156 typedef struct _GHashTableIter GHashTableIter;
4157 struct _GHashTableIter
4158 {
4159 gpointer dummy1;
4160 gpointer dummy2;
4161 gpointer dummy3;
4162 int dummy4;
4163 gboolean dummy5;
4164 gpointer dummy6;
4165 };
4166 GHashTable* g_hash_table_new (GHashFunc hash_func,
4167 GEqualFunc key_equal_func);
4168 GHashTable* g_hash_table_new_full (GHashFunc hash_func,
4169 GEqualFunc key_equal_func,
4170 GDestroyNotify key_destroy_func,
4171 GDestroyNotify value_destroy_func);
4172 void g_hash_table_destroy (GHashTable *hash_table);
4173 void g_hash_table_insert (GHashTable *hash_table,
4174 gpointer key,
4175 gpointer value);
4176 void g_hash_table_replace (GHashTable *hash_table,
4177 gpointer key,
4178 gpointer value);
4179 gboolean g_hash_table_remove (GHashTable *hash_table,
4180 gconstpointer key);
4181 void g_hash_table_remove_all (GHashTable *hash_table);
4182 gboolean g_hash_table_steal (GHashTable *hash_table,
4183 gconstpointer key);
4184 void g_hash_table_steal_all (GHashTable *hash_table);
4185 gpointer g_hash_table_lookup (GHashTable *hash_table,
4186 gconstpointer key);
4187 gboolean g_hash_table_lookup_extended (GHashTable *hash_table,
4188 gconstpointer lookup_key,
4189 gpointer *orig_key,
4190 gpointer *value);
4191 void g_hash_table_foreach (GHashTable *hash_table,
4192 GHFunc func,
4193 gpointer user_data);
4194 gpointer g_hash_table_find (GHashTable *hash_table,
4195 GHRFunc predicate,
4196 gpoi