]> git.wh0rd.org - ICEs.git/blob - sb-bigloo/bigloo.i.1
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 gpointer user_data);
4197 guint g_hash_table_foreach_remove (GHashTable *hash_table,
4198 GHRFunc func,
4199 gpointer user_data);
4200 guint g_hash_table_foreach_steal (GHashTable *hash_table,
4201 GHRFunc func,
4202 gpointer user_data);
4203 guint g_hash_table_size (GHashTable *hash_table);
4204 GList * g_hash_table_get_keys (GHashTable *hash_table);
4205 GList * g_hash_table_get_values (GHashTable *hash_table);
4206 void g_hash_table_iter_init (GHashTableIter *iter,
4207 GHashTable *hash_table);
4208 gboolean g_hash_table_iter_next (GHashTableIter *iter,
4209 gpointer *key,
4210 gpointer *value);
4211 GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter);
4212 void g_hash_table_iter_remove (GHashTableIter *iter);
4213 void g_hash_table_iter_steal (GHashTableIter *iter);
4214 GHashTable* g_hash_table_ref (GHashTable *hash_table);
4215 void g_hash_table_unref (GHashTable *hash_table);
4216 gboolean g_str_equal (gconstpointer v1,
4217 gconstpointer v2);
4218 guint g_str_hash (gconstpointer v);
4219 gboolean g_int_equal (gconstpointer v1,
4220 gconstpointer v2);
4221 guint g_int_hash (gconstpointer v);
4222 guint g_direct_hash (gconstpointer v) __attribute__((__const__));
4223 gboolean g_direct_equal (gconstpointer v1,
4224 gconstpointer v2) __attribute__((__const__));
4225 typedef struct _GHook GHook;
4226 typedef struct _GHookList GHookList;
4227 typedef gint (*GHookCompareFunc) (GHook *new_hook,
4228 GHook *sibling);
4229 typedef gboolean (*GHookFindFunc) (GHook *hook,
4230 gpointer data);
4231 typedef void (*GHookMarshaller) (GHook *hook,
4232 gpointer marshal_data);
4233 typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
4234 gpointer marshal_data);
4235 typedef void (*GHookFunc) (gpointer data);
4236 typedef gboolean (*GHookCheckFunc) (gpointer data);
4237 typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
4238 GHook *hook);
4239 typedef enum
4240 {
4241 G_HOOK_FLAG_ACTIVE = 1 << 0,
4242 G_HOOK_FLAG_IN_CALL = 1 << 1,
4243 G_HOOK_FLAG_MASK = 0x0f
4244 } GHookFlagMask;
4245 struct _GHookList
4246 {
4247 gulong seq_id;
4248 guint hook_size : 16;
4249 guint is_setup : 1;
4250 GHook *hooks;
4251 gpointer dummy3;
4252 GHookFinalizeFunc finalize_hook;
4253 gpointer dummy[2];
4254 };
4255 struct _GHook
4256 {
4257 gpointer data;
4258 GHook *next;
4259 GHook *prev;
4260 guint ref_count;
4261 gulong hook_id;
4262 guint flags;
4263 gpointer func;
4264 GDestroyNotify destroy;
4265 };
4266 void g_hook_list_init (GHookList *hook_list,
4267 guint hook_size);
4268 void g_hook_list_clear (GHookList *hook_list);
4269 GHook* g_hook_alloc (GHookList *hook_list);
4270 void g_hook_free (GHookList *hook_list,
4271 GHook *hook);
4272 GHook * g_hook_ref (GHookList *hook_list,
4273 GHook *hook);
4274 void g_hook_unref (GHookList *hook_list,
4275 GHook *hook);
4276 gboolean g_hook_destroy (GHookList *hook_list,
4277 gulong hook_id);
4278 void g_hook_destroy_link (GHookList *hook_list,
4279 GHook *hook);
4280 void g_hook_prepend (GHookList *hook_list,
4281 GHook *hook);
4282 void g_hook_insert_before (GHookList *hook_list,
4283 GHook *sibling,
4284 GHook *hook);
4285 void g_hook_insert_sorted (GHookList *hook_list,
4286 GHook *hook,
4287 GHookCompareFunc func);
4288 GHook* g_hook_get (GHookList *hook_list,
4289 gulong hook_id);
4290 GHook* g_hook_find (GHookList *hook_list,
4291 gboolean need_valids,
4292 GHookFindFunc func,
4293 gpointer data);
4294 GHook* g_hook_find_data (GHookList *hook_list,
4295 gboolean need_valids,
4296 gpointer data);
4297 GHook* g_hook_find_func (GHookList *hook_list,
4298 gboolean need_valids,
4299 gpointer func);
4300 GHook* g_hook_find_func_data (GHookList *hook_list,
4301 gboolean need_valids,
4302 gpointer func,
4303 gpointer data);
4304 GHook* g_hook_first_valid (GHookList *hook_list,
4305 gboolean may_be_in_call);
4306 GHook* g_hook_next_valid (GHookList *hook_list,
4307 GHook *hook,
4308 gboolean may_be_in_call);
4309 gint g_hook_compare_ids (GHook *new_hook,
4310 GHook *sibling);
4311 void g_hook_list_invoke (GHookList *hook_list,
4312 gboolean may_recurse);
4313 void g_hook_list_invoke_check (GHookList *hook_list,
4314 gboolean may_recurse);
4315 void g_hook_list_marshal (GHookList *hook_list,
4316 gboolean may_recurse,
4317 GHookMarshaller marshaller,
4318 gpointer marshal_data);
4319 void g_hook_list_marshal_check (GHookList *hook_list,
4320 gboolean may_recurse,
4321 GHookCheckMarshaller marshaller,
4322 gpointer marshal_data);
4323 typedef struct _GPollFD GPollFD;
4324 typedef gint (*GPollFunc) (GPollFD *ufds,
4325 guint nfsd,
4326 gint timeout_);
4327 struct _GPollFD
4328 {
4329 gint fd;
4330 gushort events;
4331 gushort revents;
4332 };
4333 gint g_poll (GPollFD *fds,
4334 guint nfds,
4335 gint timeout);
4336 typedef struct _GSList GSList;
4337 struct _GSList
4338 {
4339 gpointer data;
4340 GSList *next;
4341 };
4342 GSList* g_slist_alloc (void) __attribute__((warn_unused_result));
4343 void g_slist_free (GSList *list);
4344 void g_slist_free_1 (GSList *list);
4345 GSList* g_slist_append (GSList *list,
4346 gpointer data) __attribute__((warn_unused_result));
4347 GSList* g_slist_prepend (GSList *list,
4348 gpointer data) __attribute__((warn_unused_result));
4349 GSList* g_slist_insert (GSList *list,
4350 gpointer data,
4351 gint position) __attribute__((warn_unused_result));
4352 GSList* g_slist_insert_sorted (GSList *list,
4353 gpointer data,
4354 GCompareFunc func) __attribute__((warn_unused_result));
4355 GSList* g_slist_insert_sorted_with_data (GSList *list,
4356 gpointer data,
4357 GCompareDataFunc func,
4358 gpointer user_data) __attribute__((warn_unused_result));
4359 GSList* g_slist_insert_before (GSList *slist,
4360 GSList *sibling,
4361 gpointer data) __attribute__((warn_unused_result));
4362 GSList* g_slist_concat (GSList *list1,
4363 GSList *list2) __attribute__((warn_unused_result));
4364 GSList* g_slist_remove (GSList *list,
4365 gconstpointer data) __attribute__((warn_unused_result));
4366 GSList* g_slist_remove_all (GSList *list,
4367 gconstpointer data) __attribute__((warn_unused_result));
4368 GSList* g_slist_remove_link (GSList *list,
4369 GSList *link_) __attribute__((warn_unused_result));
4370 GSList* g_slist_delete_link (GSList *list,
4371 GSList *link_) __attribute__((warn_unused_result));
4372 GSList* g_slist_reverse (GSList *list) __attribute__((warn_unused_result));
4373 GSList* g_slist_copy (GSList *list) __attribute__((warn_unused_result));
4374 GSList* g_slist_nth (GSList *list,
4375 guint n);
4376 GSList* g_slist_find (GSList *list,
4377 gconstpointer data);
4378 GSList* g_slist_find_custom (GSList *list,
4379 gconstpointer data,
4380 GCompareFunc func);
4381 gint g_slist_position (GSList *list,
4382 GSList *llink);
4383 gint g_slist_index (GSList *list,
4384 gconstpointer data);
4385 GSList* g_slist_last (GSList *list);
4386 guint g_slist_length (GSList *list);
4387 void g_slist_foreach (GSList *list,
4388 GFunc func,
4389 gpointer user_data);
4390 GSList* g_slist_sort (GSList *list,
4391 GCompareFunc compare_func) __attribute__((warn_unused_result));
4392 GSList* g_slist_sort_with_data (GSList *list,
4393 GCompareDataFunc compare_func,
4394 gpointer user_data) __attribute__((warn_unused_result));
4395 gpointer g_slist_nth_data (GSList *list,
4396 guint n);
4397 void g_slist_push_allocator (gpointer dummy);
4398 void g_slist_pop_allocator (void);
4399 typedef struct _GMainContext GMainContext;
4400 typedef struct _GMainLoop GMainLoop;
4401 typedef struct _GSource GSource;
4402 typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs;
4403 typedef struct _GSourceFuncs GSourceFuncs;
4404 typedef gboolean (*GSourceFunc) (gpointer data);
4405 typedef void (*GChildWatchFunc) (GPid pid,
4406 gint status,
4407 gpointer data);
4408 struct _GSource
4409 {
4410 gpointer callback_data;
4411 GSourceCallbackFuncs *callback_funcs;
4412 GSourceFuncs *source_funcs;
4413 guint ref_count;
4414 GMainContext *context;
4415 gint priority;
4416 guint flags;
4417 guint source_id;
4418 GSList *poll_fds;
4419 GSource *prev;
4420 GSource *next;
4421 gpointer reserved1;
4422 gpointer reserved2;
4423 };
4424 struct _GSourceCallbackFuncs
4425 {
4426 void (*ref) (gpointer cb_data);
4427 void (*unref) (gpointer cb_data);
4428 void (*get) (gpointer cb_data,
4429 GSource *source,
4430 GSourceFunc *func,
4431 gpointer *data);
4432 };
4433 typedef void (*GSourceDummyMarshal) (void);
4434 struct _GSourceFuncs
4435 {
4436 gboolean (*prepare) (GSource *source,
4437 gint *timeout_);
4438 gboolean (*check) (GSource *source);
4439 gboolean (*dispatch) (GSource *source,
4440 GSourceFunc callback,
4441 gpointer user_data);
4442 void (*finalize) (GSource *source);
4443 GSourceFunc closure_callback;
4444 GSourceDummyMarshal closure_marshal;
4445 };
4446 GMainContext *g_main_context_new (void);
4447 GMainContext *g_main_context_ref (GMainContext *context);
4448 void g_main_context_unref (GMainContext *context);
4449 GMainContext *g_main_context_default (void);
4450 gboolean g_main_context_iteration (GMainContext *context,
4451 gboolean may_block);
4452 gboolean g_main_context_pending (GMainContext *context);
4453 GSource *g_main_context_find_source_by_id (GMainContext *context,
4454 guint source_id);
4455 GSource *g_main_context_find_source_by_user_data (GMainContext *context,
4456 gpointer user_data);
4457 GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
4458 GSourceFuncs *funcs,
4459 gpointer user_data);
4460 void g_main_context_wakeup (GMainContext *context);
4461 gboolean g_main_context_acquire (GMainContext *context);
4462 void g_main_context_release (GMainContext *context);
4463 gboolean g_main_context_is_owner (GMainContext *context);
4464 gboolean g_main_context_wait (GMainContext *context,
4465 GCond *cond,
4466 GMutex *mutex);
4467 gboolean g_main_context_prepare (GMainContext *context,
4468 gint *priority);
4469 gint g_main_context_query (GMainContext *context,
4470 gint max_priority,
4471 gint *timeout_,
4472 GPollFD *fds,
4473 gint n_fds);
4474 gint g_main_context_check (GMainContext *context,
4475 gint max_priority,
4476 GPollFD *fds,
4477 gint n_fds);
4478 void g_main_context_dispatch (GMainContext *context);
4479 void g_main_context_set_poll_func (GMainContext *context,
4480 GPollFunc func);
4481 GPollFunc g_main_context_get_poll_func (GMainContext *context);
4482 void g_main_context_add_poll (GMainContext *context,
4483 GPollFD *fd,
4484 gint priority);
4485 void g_main_context_remove_poll (GMainContext *context,
4486 GPollFD *fd);
4487 gint g_main_depth (void);
4488 GSource *g_main_current_source (void);
4489 GMainLoop *g_main_loop_new (GMainContext *context,
4490 gboolean is_running);
4491 void g_main_loop_run (GMainLoop *loop);
4492 void g_main_loop_quit (GMainLoop *loop);
4493 GMainLoop *g_main_loop_ref (GMainLoop *loop);
4494 void g_main_loop_unref (GMainLoop *loop);
4495 gboolean g_main_loop_is_running (GMainLoop *loop);
4496 GMainContext *g_main_loop_get_context (GMainLoop *loop);
4497 GSource *g_source_new (GSourceFuncs *source_funcs,
4498 guint struct_size);
4499 GSource *g_source_ref (GSource *source);
4500 void g_source_unref (GSource *source);
4501 guint g_source_attach (GSource *source,
4502 GMainContext *context);
4503 void g_source_destroy (GSource *source);
4504 void g_source_set_priority (GSource *source,
4505 gint priority);
4506 gint g_source_get_priority (GSource *source);
4507 void g_source_set_can_recurse (GSource *source,
4508 gboolean can_recurse);
4509 gboolean g_source_get_can_recurse (GSource *source);
4510 guint g_source_get_id (GSource *source);
4511 GMainContext *g_source_get_context (GSource *source);
4512 void g_source_set_callback (GSource *source,
4513 GSourceFunc func,
4514 gpointer data,
4515 GDestroyNotify notify);
4516 void g_source_set_funcs (GSource *source,
4517 GSourceFuncs *funcs);
4518 gboolean g_source_is_destroyed (GSource *source);
4519 void g_source_set_callback_indirect (GSource *source,
4520 gpointer callback_data,
4521 GSourceCallbackFuncs *callback_funcs);
4522 void g_source_add_poll (GSource *source,
4523 GPollFD *fd);
4524 void g_source_remove_poll (GSource *source,
4525 GPollFD *fd);
4526 void g_source_get_current_time (GSource *source,
4527 GTimeVal *timeval);
4528 GSource *g_idle_source_new (void);
4529 GSource *g_child_watch_source_new (GPid pid);
4530 GSource *g_timeout_source_new (guint interval);
4531 GSource *g_timeout_source_new_seconds (guint interval);
4532 void g_get_current_time (GTimeVal *result);
4533 gboolean g_source_remove (guint tag);
4534 gboolean g_source_remove_by_user_data (gpointer user_data);
4535 gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
4536 gpointer user_data);
4537 guint g_timeout_add_full (gint priority,
4538 guint interval,
4539 GSourceFunc function,
4540 gpointer data,
4541 GDestroyNotify notify);
4542 guint g_timeout_add (guint interval,
4543 GSourceFunc function,
4544 gpointer data);
4545 guint g_timeout_add_seconds_full (gint priority,
4546 guint interval,
4547 GSourceFunc function,
4548 gpointer data,
4549 GDestroyNotify notify);
4550 guint g_timeout_add_seconds (guint interval,
4551 GSourceFunc function,
4552 gpointer data);
4553 guint g_child_watch_add_full (gint priority,
4554 GPid pid,
4555 GChildWatchFunc function,
4556 gpointer data,
4557 GDestroyNotify notify);
4558 guint g_child_watch_add (GPid pid,
4559 GChildWatchFunc function,
4560 gpointer data);
4561 guint g_idle_add (GSourceFunc function,
4562 gpointer data);
4563 guint g_idle_add_full (gint priority,
4564 GSourceFunc function,
4565 gpointer data,
4566 GDestroyNotify notify);
4567 gboolean g_idle_remove_by_data (gpointer data);
4568 extern GSourceFuncs g_timeout_funcs;
4569 extern GSourceFuncs g_child_watch_funcs;
4570 extern GSourceFuncs g_idle_funcs;
4571 typedef guint32 gunichar;
4572 typedef guint16 gunichar2;
4573 typedef enum
4574 {
4575 G_UNICODE_CONTROL,
4576 G_UNICODE_FORMAT,
4577 G_UNICODE_UNASSIGNED,
4578 G_UNICODE_PRIVATE_USE,
4579 G_UNICODE_SURROGATE,
4580 G_UNICODE_LOWERCASE_LETTER,
4581 G_UNICODE_MODIFIER_LETTER,
4582 G_UNICODE_OTHER_LETTER,
4583 G_UNICODE_TITLECASE_LETTER,
4584 G_UNICODE_UPPERCASE_LETTER,
4585 G_UNICODE_COMBINING_MARK,
4586 G_UNICODE_ENCLOSING_MARK,
4587 G_UNICODE_NON_SPACING_MARK,
4588 G_UNICODE_DECIMAL_NUMBER,
4589 G_UNICODE_LETTER_NUMBER,
4590 G_UNICODE_OTHER_NUMBER,
4591 G_UNICODE_CONNECT_PUNCTUATION,
4592 G_UNICODE_DASH_PUNCTUATION,
4593 G_UNICODE_CLOSE_PUNCTUATION,
4594 G_UNICODE_FINAL_PUNCTUATION,
4595 G_UNICODE_INITIAL_PUNCTUATION,
4596 G_UNICODE_OTHER_PUNCTUATION,
4597 G_UNICODE_OPEN_PUNCTUATION,
4598 G_UNICODE_CURRENCY_SYMBOL,
4599 G_UNICODE_MODIFIER_SYMBOL,
4600 G_UNICODE_MATH_SYMBOL,
4601 G_UNICODE_OTHER_SYMBOL,
4602 G_UNICODE_LINE_SEPARATOR,
4603 G_UNICODE_PARAGRAPH_SEPARATOR,
4604 G_UNICODE_SPACE_SEPARATOR
4605 } GUnicodeType;
4606 typedef enum
4607 {
4608 G_UNICODE_BREAK_MANDATORY,
4609 G_UNICODE_BREAK_CARRIAGE_RETURN,
4610 G_UNICODE_BREAK_LINE_FEED,
4611 G_UNICODE_BREAK_COMBINING_MARK,
4612 G_UNICODE_BREAK_SURROGATE,
4613 G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
4614 G_UNICODE_BREAK_INSEPARABLE,
4615 G_UNICODE_BREAK_NON_BREAKING_GLUE,
4616 G_UNICODE_BREAK_CONTINGENT,
4617 G_UNICODE_BREAK_SPACE,
4618 G_UNICODE_BREAK_AFTER,
4619 G_UNICODE_BREAK_BEFORE,
4620 G_UNICODE_BREAK_BEFORE_AND_AFTER,
4621 G_UNICODE_BREAK_HYPHEN,
4622 G_UNICODE_BREAK_NON_STARTER,
4623 G_UNICODE_BREAK_OPEN_PUNCTUATION,
4624 G_UNICODE_BREAK_CLOSE_PUNCTUATION,
4625 G_UNICODE_BREAK_QUOTATION,
4626 G_UNICODE_BREAK_EXCLAMATION,
4627 G_UNICODE_BREAK_IDEOGRAPHIC,
4628 G_UNICODE_BREAK_NUMERIC,
4629 G_UNICODE_BREAK_INFIX_SEPARATOR,
4630 G_UNICODE_BREAK_SYMBOL,
4631 G_UNICODE_BREAK_ALPHABETIC,
4632 G_UNICODE_BREAK_PREFIX,
4633 G_UNICODE_BREAK_POSTFIX,
4634 G_UNICODE_BREAK_COMPLEX_CONTEXT,
4635 G_UNICODE_BREAK_AMBIGUOUS,
4636 G_UNICODE_BREAK_UNKNOWN,
4637 G_UNICODE_BREAK_NEXT_LINE,
4638 G_UNICODE_BREAK_WORD_JOINER,
4639 G_UNICODE_BREAK_HANGUL_L_JAMO,
4640 G_UNICODE_BREAK_HANGUL_V_JAMO,
4641 G_UNICODE_BREAK_HANGUL_T_JAMO,
4642 G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
4643 G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE
4644 } GUnicodeBreakType;
4645 typedef enum
4646 {
4647 G_UNICODE_SCRIPT_INVALID_CODE = -1,
4648 G_UNICODE_SCRIPT_COMMON = 0,
4649 G_UNICODE_SCRIPT_INHERITED,
4650 G_UNICODE_SCRIPT_ARABIC,
4651 G_UNICODE_SCRIPT_ARMENIAN,
4652 G_UNICODE_SCRIPT_BENGALI,
4653 G_UNICODE_SCRIPT_BOPOMOFO,
4654 G_UNICODE_SCRIPT_CHEROKEE,
4655 G_UNICODE_SCRIPT_COPTIC,
4656 G_UNICODE_SCRIPT_CYRILLIC,
4657 G_UNICODE_SCRIPT_DESERET,
4658 G_UNICODE_SCRIPT_DEVANAGARI,
4659 G_UNICODE_SCRIPT_ETHIOPIC,
4660 G_UNICODE_SCRIPT_GEORGIAN,
4661 G_UNICODE_SCRIPT_GOTHIC,
4662 G_UNICODE_SCRIPT_GREEK,
4663 G_UNICODE_SCRIPT_GUJARATI,
4664 G_UNICODE_SCRIPT_GURMUKHI,
4665 G_UNICODE_SCRIPT_HAN,
4666 G_UNICODE_SCRIPT_HANGUL,
4667 G_UNICODE_SCRIPT_HEBREW,
4668 G_UNICODE_SCRIPT_HIRAGANA,
4669 G_UNICODE_SCRIPT_KANNADA,
4670 G_UNICODE_SCRIPT_KATAKANA,
4671 G_UNICODE_SCRIPT_KHMER,
4672 G_UNICODE_SCRIPT_LAO,
4673 G_UNICODE_SCRIPT_LATIN,
4674 G_UNICODE_SCRIPT_MALAYALAM,
4675 G_UNICODE_SCRIPT_MONGOLIAN,
4676 G_UNICODE_SCRIPT_MYANMAR,
4677 G_UNICODE_SCRIPT_OGHAM,
4678 G_UNICODE_SCRIPT_OLD_ITALIC,
4679 G_UNICODE_SCRIPT_ORIYA,
4680 G_UNICODE_SCRIPT_RUNIC,
4681 G_UNICODE_SCRIPT_SINHALA,
4682 G_UNICODE_SCRIPT_SYRIAC,
4683 G_UNICODE_SCRIPT_TAMIL,
4684 G_UNICODE_SCRIPT_TELUGU,
4685 G_UNICODE_SCRIPT_THAANA,
4686 G_UNICODE_SCRIPT_THAI,
4687 G_UNICODE_SCRIPT_TIBETAN,
4688 G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL,
4689 G_UNICODE_SCRIPT_YI,
4690 G_UNICODE_SCRIPT_TAGALOG,
4691 G_UNICODE_SCRIPT_HANUNOO,
4692 G_UNICODE_SCRIPT_BUHID,
4693 G_UNICODE_SCRIPT_TAGBANWA,
4694 G_UNICODE_SCRIPT_BRAILLE,
4695 G_UNICODE_SCRIPT_CYPRIOT,
4696 G_UNICODE_SCRIPT_LIMBU,
4697 G_UNICODE_SCRIPT_OSMANYA,
4698 G_UNICODE_SCRIPT_SHAVIAN,
4699 G_UNICODE_SCRIPT_LINEAR_B,
4700 G_UNICODE_SCRIPT_TAI_LE,
4701 G_UNICODE_SCRIPT_UGARITIC,
4702 G_UNICODE_SCRIPT_NEW_TAI_LUE,
4703 G_UNICODE_SCRIPT_BUGINESE,
4704 G_UNICODE_SCRIPT_GLAGOLITIC,
4705 G_UNICODE_SCRIPT_TIFINAGH,
4706 G_UNICODE_SCRIPT_SYLOTI_NAGRI,
4707 G_UNICODE_SCRIPT_OLD_PERSIAN,
4708 G_UNICODE_SCRIPT_KHAROSHTHI,
4709 G_UNICODE_SCRIPT_UNKNOWN,
4710 G_UNICODE_SCRIPT_BALINESE,
4711 G_UNICODE_SCRIPT_CUNEIFORM,
4712 G_UNICODE_SCRIPT_PHOENICIAN,
4713 G_UNICODE_SCRIPT_PHAGS_PA,
4714 G_UNICODE_SCRIPT_NKO,
4715 G_UNICODE_SCRIPT_KAYAH_LI,
4716 G_UNICODE_SCRIPT_LEPCHA,
4717 G_UNICODE_SCRIPT_REJANG,
4718 G_UNICODE_SCRIPT_SUNDANESE,
4719 G_UNICODE_SCRIPT_SAURASHTRA,
4720 G_UNICODE_SCRIPT_CHAM,
4721 G_UNICODE_SCRIPT_OL_CHIKI,
4722 G_UNICODE_SCRIPT_VAI,
4723 G_UNICODE_SCRIPT_CARIAN,
4724 G_UNICODE_SCRIPT_LYCIAN,
4725 G_UNICODE_SCRIPT_LYDIAN
4726 } GUnicodeScript;
4727 gboolean g_get_charset (const char **charset);
4728 gboolean g_unichar_isalnum (gunichar c) __attribute__((__const__));
4729 gboolean g_unichar_isalpha (gunichar c) __attribute__((__const__));
4730 gboolean g_unichar_iscntrl (gunichar c) __attribute__((__const__));
4731 gboolean g_unichar_isdigit (gunichar c) __attribute__((__const__));
4732 gboolean g_unichar_isgraph (gunichar c) __attribute__((__const__));
4733 gboolean g_unichar_islower (gunichar c) __attribute__((__const__));
4734 gboolean g_unichar_isprint (gunichar c) __attribute__((__const__));
4735 gboolean g_unichar_ispunct (gunichar c) __attribute__((__const__));
4736 gboolean g_unichar_isspace (gunichar c) __attribute__((__const__));
4737 gboolean g_unichar_isupper (gunichar c) __attribute__((__const__));
4738 gboolean g_unichar_isxdigit (gunichar c) __attribute__((__const__));
4739 gboolean g_unichar_istitle (gunichar c) __attribute__((__const__));
4740 gboolean g_unichar_isdefined (gunichar c) __attribute__((__const__));
4741 gboolean g_unichar_iswide (gunichar c) __attribute__((__const__));
4742 gboolean g_unichar_iswide_cjk(gunichar c) __attribute__((__const__));
4743 gboolean g_unichar_iszerowidth(gunichar c) __attribute__((__const__));
4744 gboolean g_unichar_ismark (gunichar c) __attribute__((__const__));
4745 gunichar g_unichar_toupper (gunichar c) __attribute__((__const__));
4746 gunichar g_unichar_tolower (gunichar c) __attribute__((__const__));
4747 gunichar g_unichar_totitle (gunichar c) __attribute__((__const__));
4748 gint g_unichar_digit_value (gunichar c) __attribute__((__const__));
4749 gint g_unichar_xdigit_value (gunichar c) __attribute__((__const__));
4750 GUnicodeType g_unichar_type (gunichar c) __attribute__((__const__));
4751 GUnicodeBreakType g_unichar_break_type (gunichar c) __attribute__((__const__));
4752 gint g_unichar_combining_class (gunichar uc) __attribute__((__const__));
4753 void g_unicode_canonical_ordering (gunichar *string,
4754 gsize len);
4755 gunichar *g_unicode_canonical_decomposition (gunichar ch,
4756 gsize *result_len) __attribute__((__malloc__));
4757 extern const gchar * const g_utf8_skip;
4758 gunichar g_utf8_get_char (const gchar *p) __attribute__((__pure__));
4759 gunichar g_utf8_get_char_validated (const gchar *p,
4760 gssize max_len) __attribute__((__pure__));
4761 gchar* g_utf8_offset_to_pointer (const gchar *str,
4762 glong offset) __attribute__((__pure__));
4763 glong g_utf8_pointer_to_offset (const gchar *str,
4764 const gchar *pos) __attribute__((__pure__));
4765 gchar* g_utf8_prev_char (const gchar *p) __attribute__((__pure__));
4766 gchar* g_utf8_find_next_char (const gchar *p,
4767 const gchar *end) __attribute__((__pure__));
4768 gchar* g_utf8_find_prev_char (const gchar *str,
4769 const gchar *p) __attribute__((__pure__));
4770 glong g_utf8_strlen (const gchar *p,
4771 gssize max) __attribute__((__pure__));
4772 gchar* g_utf8_strncpy (gchar *dest,
4773 const gchar *src,
4774 gsize n);
4775 gchar* g_utf8_strchr (const gchar *p,
4776 gssize len,
4777 gunichar c);
4778 gchar* g_utf8_strrchr (const gchar *p,
4779 gssize len,
4780 gunichar c);
4781 gchar* g_utf8_strreverse (const gchar *str,
4782 gssize len);
4783 gunichar2 *g_utf8_to_utf16 (const gchar *str,
4784 glong len,
4785 glong *items_read,
4786 glong *items_written,
4787 GError **error) __attribute__((__malloc__));
4788 gunichar * g_utf8_to_ucs4 (const gchar *str,
4789 glong len,
4790 glong *items_read,
4791 glong *items_written,
4792 GError **error) __attribute__((__malloc__));
4793 gunichar * g_utf8_to_ucs4_fast (const gchar *str,
4794 glong len,
4795 glong *items_written) __attribute__((__malloc__));
4796 gunichar * g_utf16_to_ucs4 (const gunichar2 *str,
4797 glong len,
4798 glong *items_read,
4799 glong *items_written,
4800 GError **error) __attribute__((__malloc__));
4801 gchar* g_utf16_to_utf8 (const gunichar2 *str,
4802 glong len,
4803 glong *items_read,
4804 glong *items_written,
4805 GError **error) __attribute__((__malloc__));
4806 gunichar2 *g_ucs4_to_utf16 (const gunichar *str,
4807 glong len,
4808 glong *items_read,
4809 glong *items_written,
4810 GError **error) __attribute__((__malloc__));
4811 gchar* g_ucs4_to_utf8 (const gunichar *str,
4812 glong len,
4813 glong *items_read,
4814 glong *items_written,
4815 GError **error) __attribute__((__malloc__));
4816 gint g_unichar_to_utf8 (gunichar c,
4817 gchar *outbuf);
4818 gboolean g_utf8_validate (const gchar *str,
4819 gssize max_len,
4820 const gchar **end);
4821 gboolean g_unichar_validate (gunichar ch) __attribute__((__const__));
4822 gchar *g_utf8_strup (const gchar *str,
4823 gssize len) __attribute__((__malloc__));
4824 gchar *g_utf8_strdown (const gchar *str,
4825 gssize len) __attribute__((__malloc__));
4826 gchar *g_utf8_casefold (const gchar *str,
4827 gssize len) __attribute__((__malloc__));
4828 typedef enum {
4829 G_NORMALIZE_DEFAULT,
4830 G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
4831 G_NORMALIZE_DEFAULT_COMPOSE,
4832 G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
4833 G_NORMALIZE_ALL,
4834 G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
4835 G_NORMALIZE_ALL_COMPOSE,
4836 G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
4837 } GNormalizeMode;
4838 gchar *g_utf8_normalize (const gchar *str,
4839 gssize len,
4840 GNormalizeMode mode) __attribute__((__malloc__));
4841 gint g_utf8_collate (const gchar *str1,
4842 const gchar *str2) __attribute__((__pure__));
4843 gchar *g_utf8_collate_key (const gchar *str,
4844 gssize len) __attribute__((__malloc__));
4845 gchar *g_utf8_collate_key_for_filename (const gchar *str,
4846 gssize len) __attribute__((__malloc__));
4847 gboolean g_unichar_get_mirror_char (gunichar ch,
4848 gunichar *mirrored_ch);
4849 GUnicodeScript g_unichar_get_script (gunichar ch) __attribute__((__const__));
4850 gchar *_g_utf8_make_valid (const gchar *name);
4851 typedef struct _GString GString;
4852 typedef struct _GStringChunk GStringChunk;
4853 struct _GString
4854 {
4855 gchar *str;
4856 gsize len;
4857 gsize allocated_len;
4858 };
4859 GStringChunk* g_string_chunk_new (gsize size);
4860 void g_string_chunk_free (GStringChunk *chunk);
4861 void g_string_chunk_clear (GStringChunk *chunk);
4862 gchar* g_string_chunk_insert (GStringChunk *chunk,
4863 const gchar *string);
4864 gchar* g_string_chunk_insert_len (GStringChunk *chunk,
4865 const gchar *string,
4866 gssize len);
4867 gchar* g_string_chunk_insert_const (GStringChunk *chunk,
4868 const gchar *string);
4869 GString* g_string_new (const gchar *init);
4870 GString* g_string_new_len (const gchar *init,
4871 gssize len);
4872 GString* g_string_sized_new (gsize dfl_size);
4873 gchar* g_string_free (GString *string,
4874 gboolean free_segment);
4875 gboolean g_string_equal (const GString *v,
4876 const GString *v2);
4877 guint g_string_hash (const GString *str);
4878 GString* g_string_assign (GString *string,
4879 const gchar *rval);
4880 GString* g_string_truncate (GString *string,
4881 gsize len);
4882 GString* g_string_set_size (GString *string,
4883 gsize len);
4884 GString* g_string_insert_len (GString *string,
4885 gssize pos,
4886 const gchar *val,
4887 gssize len);
4888 GString* g_string_append (GString *string,
4889 const gchar *val);
4890 GString* g_string_append_len (GString *string,
4891 const gchar *val,
4892 gssize len);
4893 GString* g_string_append_c (GString *string,
4894 gchar c);
4895 GString* g_string_append_unichar (GString *string,
4896 gunichar wc);
4897 GString* g_string_prepend (GString *string,
4898 const gchar *val);
4899 GString* g_string_prepend_c (GString *string,
4900 gchar c);
4901 GString* g_string_prepend_unichar (GString *string,
4902 gunichar wc);
4903 GString* g_string_prepend_len (GString *string,
4904 const gchar *val,
4905 gssize len);
4906 GString* g_string_insert (GString *string,
4907 gssize pos,
4908 const gchar *val);
4909 GString* g_string_insert_c (GString *string,
4910 gssize pos,
4911 gchar c);
4912 GString* g_string_insert_unichar (GString *string,
4913 gssize pos,
4914 gunichar wc);
4915 GString* g_string_overwrite (GString *string,
4916 gsize pos,
4917 const gchar *val);
4918 GString* g_string_overwrite_len (GString *string,
4919 gsize pos,
4920 const gchar *val,
4921 gssize len);
4922 GString* g_string_erase (GString *string,
4923 gssize pos,
4924 gssize len);
4925 GString* g_string_ascii_down (GString *string);
4926 GString* g_string_ascii_up (GString *string);
4927 void g_string_vprintf (GString *string,
4928 const gchar *format,
4929 va_list args);
4930 void g_string_printf (GString *string,
4931 const gchar *format,
4932 ...) __attribute__((__format__ (__printf__, 2, 3)));
4933 void g_string_append_vprintf (GString *string,
4934 const gchar *format,
4935 va_list args);
4936 void g_string_append_printf (GString *string,
4937 const gchar *format,
4938 ...) __attribute__((__format__ (__printf__, 2, 3)));
4939 GString * g_string_append_uri_escaped(GString *string,
4940 const char *unescaped,
4941 const char *reserved_chars_allowed,
4942 gboolean allow_utf8);
4943 static inline GString*
4944 g_string_append_c_inline (GString *gstring,
4945 gchar c)
4946 {
4947 if (gstring->len + 1 < gstring->allocated_len)
4948 {
4949 gstring->str[gstring->len++] = c;
4950 gstring->str[gstring->len] = 0;
4951 }
4952 else
4953 g_string_insert_c (gstring, -1, c);
4954 return gstring;
4955 }
4956 GString* g_string_down (GString *string);
4957 GString* g_string_up (GString *string);
4958 typedef struct _GIOChannel GIOChannel;
4959 typedef struct _GIOFuncs GIOFuncs;
4960 typedef enum
4961 {
4962 G_IO_ERROR_NONE,
4963 G_IO_ERROR_AGAIN,
4964 G_IO_ERROR_INVAL,
4965 G_IO_ERROR_UNKNOWN
4966 } GIOError;
4967 typedef enum
4968 {
4969 G_IO_CHANNEL_ERROR_FBIG,
4970 G_IO_CHANNEL_ERROR_INVAL,
4971 G_IO_CHANNEL_ERROR_IO,
4972 G_IO_CHANNEL_ERROR_ISDIR,
4973 G_IO_CHANNEL_ERROR_NOSPC,
4974 G_IO_CHANNEL_ERROR_NXIO,
4975 G_IO_CHANNEL_ERROR_OVERFLOW,
4976 G_IO_CHANNEL_ERROR_PIPE,
4977 G_IO_CHANNEL_ERROR_FAILED
4978 } GIOChannelError;
4979 typedef enum
4980 {
4981 G_IO_STATUS_ERROR,
4982 G_IO_STATUS_NORMAL,
4983 G_IO_STATUS_EOF,
4984 G_IO_STATUS_AGAIN
4985 } GIOStatus;
4986 typedef enum
4987 {
4988 G_SEEK_CUR,
4989 G_SEEK_SET,
4990 G_SEEK_END
4991 } GSeekType;
4992 typedef enum
4993 {
4994 G_IO_IN =1,
4995 G_IO_OUT =4,
4996 G_IO_PRI =2,
4997 G_IO_ERR =8,
4998 G_IO_HUP =16,
4999 G_IO_NVAL =32
5000 } GIOCondition;
5001 typedef enum
5002 {
5003 G_IO_FLAG_APPEND = 1 << 0,
5004 G_IO_FLAG_NONBLOCK = 1 << 1,
5005 G_IO_FLAG_IS_READABLE = 1 << 2,
5006 G_IO_FLAG_IS_WRITEABLE = 1 << 3,
5007 G_IO_FLAG_IS_SEEKABLE = 1 << 4,
5008 G_IO_FLAG_MASK = (1 << 5) - 1,
5009 G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
5010 G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
5011 } GIOFlags;
5012 struct _GIOChannel
5013 {
5014 gint ref_count;
5015 GIOFuncs *funcs;
5016 gchar *encoding;
5017 GIConv read_cd;
5018 GIConv write_cd;
5019 gchar *line_term;
5020 guint line_term_len;
5021 gsize buf_size;
5022 GString *read_buf;
5023 GString *encoded_read_buf;
5024 GString *write_buf;
5025 gchar partial_write_buf[6];
5026 guint use_buffer : 1;
5027 guint do_encode : 1;
5028 guint close_on_unref : 1;
5029 guint is_readable : 1;
5030 guint is_writeable : 1;
5031 guint is_seekable : 1;
5032 gpointer reserved1;
5033 gpointer reserved2;
5034 };
5035 typedef gboolean (*GIOFunc) (GIOChannel *source,
5036 GIOCondition condition,
5037 gpointer data);
5038 struct _GIOFuncs
5039 {
5040 GIOStatus (*io_read) (GIOChannel *channel,
5041 gchar *buf,
5042 gsize count,
5043 gsize *bytes_read,
5044 GError **err);
5045 GIOStatus (*io_write) (GIOChannel *channel,
5046 const gchar *buf,
5047 gsize count,
5048 gsize *bytes_written,
5049 GError **err);
5050 GIOStatus (*io_seek) (GIOChannel *channel,
5051 gint64 offset,
5052 GSeekType type,
5053 GError **err);
5054 GIOStatus (*io_close) (GIOChannel *channel,
5055 GError **err);
5056 GSource* (*io_create_watch) (GIOChannel *channel,
5057 GIOCondition condition);
5058 void (*io_free) (GIOChannel *channel);
5059 GIOStatus (*io_set_flags) (GIOChannel *channel,
5060 GIOFlags flags,
5061 GError **err);
5062 GIOFlags (*io_get_flags) (GIOChannel *channel);
5063 };
5064 void g_io_channel_init (GIOChannel *channel);
5065 GIOChannel *g_io_channel_ref (GIOChannel *channel);
5066 void g_io_channel_unref (GIOChannel *channel);
5067 GIOError g_io_channel_read (GIOChannel *channel,
5068 gchar *buf,
5069 gsize count,
5070 gsize *bytes_read);
5071 GIOError g_io_channel_write (GIOChannel *channel,
5072 const gchar *buf,
5073 gsize count,
5074 gsize *bytes_written);
5075 GIOError g_io_channel_seek (GIOChannel *channel,
5076 gint64 offset,
5077 GSeekType type);
5078 void g_io_channel_close (GIOChannel *channel);
5079 GIOStatus g_io_channel_shutdown (GIOChannel *channel,
5080 gboolean flush,
5081 GError **err);
5082 guint g_io_add_watch_full (GIOChannel *channel,
5083 gint priority,
5084 GIOCondition condition,
5085 GIOFunc func,
5086 gpointer user_data,
5087 GDestroyNotify notify);
5088 GSource * g_io_create_watch (GIOChannel *channel,
5089 GIOCondition condition);
5090 guint g_io_add_watch (GIOChannel *channel,
5091 GIOCondition condition,
5092 GIOFunc func,
5093 gpointer user_data);
5094 void g_io_channel_set_buffer_size (GIOChannel *channel,
5095 gsize size);
5096 gsize g_io_channel_get_buffer_size (GIOChannel *channel);
5097 GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel);
5098 GIOStatus g_io_channel_set_flags (GIOChannel *channel,
5099 GIOFlags flags,
5100 GError **error);
5101 GIOFlags g_io_channel_get_flags (GIOChannel *channel);
5102 void g_io_channel_set_line_term (GIOChannel *channel,
5103 const gchar *line_term,
5104 gint length);
5105 const gchar* g_io_channel_get_line_term (GIOChannel *channel,
5106 gint *length);
5107 void g_io_channel_set_buffered (GIOChannel *channel,
5108 gboolean buffered);
5109 gboolean g_io_channel_get_buffered (GIOChannel *channel);
5110 GIOStatus g_io_channel_set_encoding (GIOChannel *channel,
5111 const gchar *encoding,
5112 GError **error);
5113 const gchar* g_io_channel_get_encoding (GIOChannel *channel);
5114 void g_io_channel_set_close_on_unref (GIOChannel *channel,
5115 gboolean do_close);
5116 gboolean g_io_channel_get_close_on_unref (GIOChannel *channel);
5117 GIOStatus g_io_channel_flush (GIOChannel *channel,
5118 GError **error);
5119 GIOStatus g_io_channel_read_line (GIOChannel *channel,
5120 gchar **str_return,
5121 gsize *length,
5122 gsize *terminator_pos,
5123 GError **error);
5124 GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
5125 GString *buffer,
5126 gsize *terminator_pos,
5127 GError **error);
5128 GIOStatus g_io_channel_read_to_end (GIOChannel *channel,
5129 gchar **str_return,
5130 gsize *length,
5131 GError **error);
5132 GIOStatus g_io_channel_read_chars (GIOChannel *channel,
5133 gchar *buf,
5134 gsize count,
5135 gsize *bytes_read,
5136 GError **error);
5137 GIOStatus g_io_channel_read_unichar (GIOChannel *channel,
5138 gunichar *thechar,
5139 GError **error);
5140 GIOStatus g_io_channel_write_chars (GIOChannel *channel,
5141 const gchar *buf,
5142 gssize count,
5143 gsize *bytes_written,
5144 GError **error);
5145 GIOStatus g_io_channel_write_unichar (GIOChannel *channel,
5146 gunichar thechar,
5147 GError **error);
5148 GIOStatus g_io_channel_seek_position (GIOChannel *channel,
5149 gint64 offset,
5150 GSeekType type,
5151 GError **error);
5152 GIOChannel* g_io_channel_new_file (const gchar *filename,
5153 const gchar *mode,
5154 GError **error);
5155 GQuark g_io_channel_error_quark (void);
5156 GIOChannelError g_io_channel_error_from_errno (gint en);
5157 GIOChannel* g_io_channel_unix_new (int fd);
5158 gint g_io_channel_unix_get_fd (GIOChannel *channel);
5159 extern GSourceFuncs g_io_watch_funcs;
5160 typedef enum
5161 {
5162 G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
5163 G_KEY_FILE_ERROR_PARSE,
5164 G_KEY_FILE_ERROR_NOT_FOUND,
5165 G_KEY_FILE_ERROR_KEY_NOT_FOUND,
5166 G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
5167 G_KEY_FILE_ERROR_INVALID_VALUE
5168 } GKeyFileError;
5169 GQuark g_key_file_error_quark (void);
5170 typedef struct _GKeyFile GKeyFile;
5171 typedef enum
5172 {
5173 G_KEY_FILE_NONE = 0,
5174 G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
5175 G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
5176 } GKeyFileFlags;
5177 GKeyFile *g_key_file_new (void);
5178 void g_key_file_free (GKeyFile *key_file);
5179 void g_key_file_set_list_separator (GKeyFile *key_file,
5180 gchar separator);
5181 gboolean g_key_file_load_from_file (GKeyFile *key_file,
5182 const gchar *file,
5183 GKeyFileFlags flags,
5184 GError **error);
5185 gboolean g_key_file_load_from_data (GKeyFile *key_file,
5186 const gchar *data,
5187 gsize length,
5188 GKeyFileFlags flags,
5189 GError **error);
5190 gboolean g_key_file_load_from_dirs (GKeyFile *key_file,
5191 const gchar *file,
5192 const gchar **search_dirs,
5193 gchar **full_path,
5194 GKeyFileFlags flags,
5195 GError **error);
5196 gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file,
5197 const gchar *file,
5198 gchar **full_path,
5199 GKeyFileFlags flags,
5200 GError **error);
5201 gchar *g_key_file_to_data (GKeyFile *key_file,
5202 gsize *length,
5203 GError **error) __attribute__((__malloc__));
5204 gchar *g_key_file_get_start_group (GKeyFile *key_file) __attribute__((__malloc__));
5205 gchar **g_key_file_get_groups (GKeyFile *key_file,
5206 gsize *length) __attribute__((__malloc__));
5207 gchar **g_key_file_get_keys (GKeyFile *key_file,
5208 const gchar *group_name,
5209 gsize *length,
5210 GError **error) __attribute__((__malloc__));
5211 gboolean g_key_file_has_group (GKeyFile *key_file,
5212 const gchar *group_name);
5213 gboolean g_key_file_has_key (GKeyFile *key_file,
5214 const gchar *group_name,
5215 const gchar *key,
5216 GError **error);
5217 gchar *g_key_file_get_value (GKeyFile *key_file,
5218 const gchar *group_name,
5219 const gchar *key,
5220 GError **error) __attribute__((__malloc__));
5221 void g_key_file_set_value (GKeyFile *key_file,
5222 const gchar *group_name,
5223 const gchar *key,
5224 const gchar *value);
5225 gchar *g_key_file_get_string (GKeyFile *key_file,
5226 const gchar *group_name,
5227 const gchar *key,
5228 GError **error) __attribute__((__malloc__));
5229 void g_key_file_set_string (GKeyFile *key_file,
5230 const gchar *group_name,
5231 const gchar *key,
5232 const gchar *string);
5233 gchar *g_key_file_get_locale_string (GKeyFile *key_file,
5234 const gchar *group_name,
5235 const gchar *key,
5236 const gchar *locale,
5237 GError **error) __attribute__((__malloc__));
5238 void g_key_file_set_locale_string (GKeyFile *key_file,
5239 const gchar *group_name,
5240 const gchar *key,
5241 const gchar *locale,
5242 const gchar *string);
5243 gboolean g_key_file_get_boolean (GKeyFile *key_file,
5244 const gchar *group_name,
5245 const gchar *key,
5246 GError **error);
5247 void g_key_file_set_boolean (GKeyFile *key_file,
5248 const gchar *group_name,
5249 const gchar *key,
5250 gboolean value);
5251 gint g_key_file_get_integer (GKeyFile *key_file,
5252 const gchar *group_name,
5253 const gchar *key,
5254 GError **error);
5255 void g_key_file_set_integer (GKeyFile *key_file,
5256 const gchar *group_name,
5257 const gchar *key,
5258 gint value);
5259 gdouble g_key_file_get_double (GKeyFile *key_file,
5260 const gchar *group_name,
5261 const gchar *key,
5262 GError **error);
5263 void g_key_file_set_double (GKeyFile *key_file,
5264 const gchar *group_name,
5265 const gchar *key,
5266 gdouble value);
5267 gchar **g_key_file_get_string_list (GKeyFile *key_file,
5268 const gchar *group_name,
5269 const gchar *key,
5270 gsize *length,
5271 GError **error) __attribute__((__malloc__));
5272 void g_key_file_set_string_list (GKeyFile *key_file,
5273 const gchar *group_name,
5274 const gchar *key,
5275 const gchar * const list[],
5276 gsize length);
5277 gchar **g_key_file_get_locale_string_list (GKeyFile *key_file,
5278 const gchar *group_name,
5279 const gchar *key,
5280 const gchar *locale,
5281 gsize *length,
5282 GError **error) __attribute__((__malloc__));
5283 void g_key_file_set_locale_string_list (GKeyFile *key_file,
5284 const gchar *group_name,
5285 const gchar *key,
5286 const gchar *locale,
5287 const gchar * const list[],
5288 gsize length);
5289 gboolean *g_key_file_get_boolean_list (GKeyFile *key_file,
5290 const gchar *group_name,
5291 const gchar *key,
5292 gsize *length,
5293 GError **error) __attribute__((__malloc__));
5294 void g_key_file_set_boolean_list (GKeyFile *key_file,
5295 const gchar *group_name,
5296 const gchar *key,
5297 gboolean list[],
5298 gsize length);
5299 gint *g_key_file_get_integer_list (GKeyFile *key_file,
5300 const gchar *group_name,
5301 const gchar *key,
5302 gsize *length,
5303 GError **error) __attribute__((__malloc__));
5304 void g_key_file_set_double_list (GKeyFile *key_file,
5305 const gchar *group_name,
5306 const gchar *key,
5307 gdouble list[],
5308 gsize length);
5309 gdouble *g_key_file_get_double_list (GKeyFile *key_file,
5310 const gchar *group_name,
5311 const gchar *key,
5312 gsize *length,
5313 GError **error) __attribute__((__malloc__));
5314 void g_key_file_set_integer_list (GKeyFile *key_file,
5315 const gchar *group_name,
5316 const gchar *key,
5317 gint list[],
5318 gsize length);
5319 gboolean g_key_file_set_comment (GKeyFile *key_file,
5320 const gchar *group_name,
5321 const gchar *key,
5322 const gchar *comment,
5323 GError **error);
5324 gchar *g_key_file_get_comment (GKeyFile *key_file,
5325 const gchar *group_name,
5326 const gchar *key,
5327 GError **error) __attribute__((__malloc__));
5328 gboolean g_key_file_remove_comment (GKeyFile *key_file,
5329 const gchar *group_name,
5330 const gchar *key,
5331 GError **error);
5332 gboolean g_key_file_remove_key (GKeyFile *key_file,
5333 const gchar *group_name,
5334 const gchar *key,
5335 GError **error);
5336 gboolean g_key_file_remove_group (GKeyFile *key_file,
5337 const gchar *group_name,
5338 GError **error);
5339 typedef struct _GMappedFile GMappedFile;
5340 GMappedFile *g_mapped_file_new (const gchar *filename,
5341 gboolean writable,
5342 GError **error) __attribute__((__malloc__));
5343 gsize g_mapped_file_get_length (GMappedFile *file);
5344 gchar *g_mapped_file_get_contents (GMappedFile *file);
5345 void g_mapped_file_free (GMappedFile *file);
5346 typedef enum
5347 {
5348 G_MARKUP_ERROR_BAD_UTF8,
5349 G_MARKUP_ERROR_EMPTY,
5350 G_MARKUP_ERROR_PARSE,
5351 G_MARKUP_ERROR_UNKNOWN_ELEMENT,
5352 G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
5353 G_MARKUP_ERROR_INVALID_CONTENT,
5354 G_MARKUP_ERROR_MISSING_ATTRIBUTE
5355 } GMarkupError;
5356 GQuark g_markup_error_quark (void);
5357 typedef enum
5358 {
5359 G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
5360 G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1,
5361 G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2
5362 } GMarkupParseFlags;
5363 typedef struct _GMarkupParseContext GMarkupParseContext;
5364 typedef struct _GMarkupParser GMarkupParser;
5365 struct _GMarkupParser
5366 {
5367 void (*start_element) (GMarkupParseContext *context,
5368 const gchar *element_name,
5369 const gchar **attribute_names,
5370 const gchar **attribute_values,
5371 gpointer user_data,
5372 GError **error);
5373 void (*end_element) (GMarkupParseContext *context,
5374 const gchar *element_name,
5375 gpointer user_data,
5376 GError **error);
5377 void (*text) (GMarkupParseContext *context,
5378 const gchar *text,
5379 gsize text_len,
5380 gpointer user_data,
5381 GError **error);
5382 void (*passthrough) (GMarkupParseContext *context,
5383 const gchar *passthrough_text,
5384 gsize text_len,
5385 gpointer user_data,
5386 GError **error);
5387 void (*error) (GMarkupParseContext *context,
5388 GError *error,
5389 gpointer user_data);
5390 };
5391 GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser,
5392 GMarkupParseFlags flags,
5393 gpointer user_data,
5394 GDestroyNotify user_data_dnotify);
5395 void g_markup_parse_context_free (GMarkupParseContext *context);
5396 gboolean g_markup_parse_context_parse (GMarkupParseContext *context,
5397 const gchar *text,
5398 gssize text_len,
5399 GError **error);
5400 void g_markup_parse_context_push (GMarkupParseContext *context,
5401 GMarkupParser *parser,
5402 gpointer user_data);
5403 gpointer g_markup_parse_context_pop (GMarkupParseContext *context);
5404 gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context,
5405 GError **error);
5406 const gchar *g_markup_parse_context_get_element (GMarkupParseContext *context);
5407 const GSList *g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
5408 void g_markup_parse_context_get_position (GMarkupParseContext *context,
5409 gint *line_number,
5410 gint *char_number);
5411 gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);
5412 gchar* g_markup_escape_text (const gchar *text,
5413 gssize length);
5414 gchar *g_markup_printf_escaped (const char *format,
5415 ...) __attribute__((__format__ (__printf__, 1, 2)));
5416 gchar *g_markup_vprintf_escaped (const char *format,
5417 va_list args);
5418 typedef enum
5419 {
5420 G_MARKUP_COLLECT_INVALID,
5421 G_MARKUP_COLLECT_STRING,
5422 G_MARKUP_COLLECT_STRDUP,
5423 G_MARKUP_COLLECT_BOOLEAN,
5424 G_MARKUP_COLLECT_TRISTATE,
5425 G_MARKUP_COLLECT_OPTIONAL = (1 << 16)
5426 } GMarkupCollectType;
5427 gboolean g_markup_collect_attributes (const gchar *element_name,
5428 const gchar **attribute_names,
5429 const gchar **attribute_values,
5430 GError **error,
5431 GMarkupCollectType first_type,
5432 const gchar *first_attr,
5433 ...);
5434
5435 gsize g_printf_string_upper_bound (const gchar* format,
5436 va_list args);
5437 typedef enum
5438 {
5439 G_LOG_FLAG_RECURSION = 1 << 0,
5440 G_LOG_FLAG_FATAL = 1 << 1,
5441 G_LOG_LEVEL_ERROR = 1 << 2,
5442 G_LOG_LEVEL_CRITICAL = 1 << 3,
5443 G_LOG_LEVEL_WARNING = 1 << 4,
5444 G_LOG_LEVEL_MESSAGE = 1 << 5,
5445 G_LOG_LEVEL_INFO = 1 << 6,
5446 G_LOG_LEVEL_DEBUG = 1 << 7,
5447 G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
5448 } GLogLevelFlags;
5449 typedef void (*GLogFunc) (const gchar *log_domain,
5450 GLogLevelFlags log_level,
5451 const gchar *message,
5452 gpointer user_data);
5453 guint g_log_set_handler (const gchar *log_domain,
5454 GLogLevelFlags log_levels,
5455 GLogFunc log_func,
5456 gpointer user_data);
5457 void g_log_remove_handler (const gchar *log_domain,
5458 guint handler_id);
5459 void g_log_default_handler (const gchar *log_domain,
5460 GLogLevelFlags log_level,
5461 const gchar *message,
5462 gpointer unused_data);
5463 GLogFunc g_log_set_default_handler (GLogFunc log_func,
5464 gpointer user_data);
5465 void g_log (const gchar *log_domain,
5466 GLogLevelFlags log_level,
5467 const gchar *format,
5468 ...) __attribute__((__format__ (__printf__, 3, 4)));
5469 void g_logv (const gchar *log_domain,
5470 GLogLevelFlags log_level,
5471 const gchar *format,
5472 va_list args);
5473 GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
5474 GLogLevelFlags fatal_mask);
5475 GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
5476 __attribute__((visibility("hidden"))) void _g_log_fallback_handler (const gchar *log_domain,
5477 GLogLevelFlags log_level,
5478 const gchar *message,
5479 gpointer unused_data);
5480 void g_return_if_fail_warning (const char *log_domain,
5481 const char *pretty_function,
5482 const char *expression);
5483 void g_warn_message (const char *domain,
5484 const char *file,
5485 int line,
5486 const char *func,
5487 const char *warnexpr);
5488 void g_assert_warning (const char *log_domain,
5489 const char *file,
5490 const int line,
5491 const char *pretty_function,
5492 const char *expression) __attribute__((__noreturn__));
5493 typedef void (*GPrintFunc) (const gchar *string);
5494 void g_print (const gchar *format,
5495 ...) __attribute__((__format__ (__printf__, 1, 2)));
5496 GPrintFunc g_set_print_handler (GPrintFunc func);
5497 void g_printerr (const gchar *format,
5498 ...) __attribute__((__format__ (__printf__, 1, 2)));
5499 GPrintFunc g_set_printerr_handler (GPrintFunc func);
5500 typedef struct _GNode GNode;
5501 typedef enum
5502 {
5503 G_TRAVERSE_LEAVES = 1 << 0,
5504 G_TRAVERSE_NON_LEAVES = 1 << 1,
5505 G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES,
5506 G_TRAVERSE_MASK = 0x03,
5507 G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
5508 G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
5509 } GTraverseFlags;
5510 typedef enum
5511 {
5512 G_IN_ORDER,
5513 G_PRE_ORDER,
5514 G_POST_ORDER,
5515 G_LEVEL_ORDER
5516 } GTraverseType;
5517 typedef gboolean (*GNodeTraverseFunc) (GNode *node,
5518 gpointer data);
5519 typedef void (*GNodeForeachFunc) (GNode *node,
5520 gpointer data);
5521 typedef gpointer (*GCopyFunc) (gconstpointer src,
5522 gpointer data);
5523 struct _GNode
5524 {
5525 gpointer data;
5526 GNode *next;
5527 GNode *prev;
5528 GNode *parent;
5529 GNode *children;
5530 };
5531 GNode* g_node_new (gpointer data);
5532 void g_node_destroy (GNode *root);
5533 void g_node_unlink (GNode *node);
5534 GNode* g_node_copy_deep (GNode *node,
5535 GCopyFunc copy_func,
5536 gpointer data);
5537 GNode* g_node_copy (GNode *node);
5538 GNode* g_node_insert (GNode *parent,
5539 gint position,
5540 GNode *node);
5541 GNode* g_node_insert_before (GNode *parent,
5542 GNode *sibling,
5543 GNode *node);
5544 GNode* g_node_insert_after (GNode *parent,
5545 GNode *sibling,
5546 GNode *node);
5547 GNode* g_node_prepend (GNode *parent,
5548 GNode *node);
5549 guint g_node_n_nodes (GNode *root,
5550 GTraverseFlags flags);
5551 GNode* g_node_get_root (GNode *node);
5552 gboolean g_node_is_ancestor (GNode *node,
5553 GNode *descendant);
5554 guint g_node_depth (GNode *node);
5555 GNode* g_node_find (GNode *root,
5556 GTraverseType order,
5557 GTraverseFlags flags,
5558 gpointer data);
5559 void g_node_traverse (GNode *root,
5560 GTraverseType order,
5561 GTraverseFlags flags,
5562 gint max_depth,
5563 GNodeTraverseFunc func,
5564 gpointer data);
5565 guint g_node_max_height (GNode *root);
5566 void g_node_children_foreach (GNode *node,
5567 GTraverseFlags flags,
5568 GNodeForeachFunc func,
5569 gpointer data);
5570 void g_node_reverse_children (GNode *node);
5571 guint g_node_n_children (GNode *node);
5572 GNode* g_node_nth_child (GNode *node,
5573 guint n);
5574 GNode* g_node_last_child (GNode *node);
5575 GNode* g_node_find_child (GNode *node,
5576 GTraverseFlags flags,
5577 gpointer data);
5578 gint g_node_child_position (GNode *node,
5579 GNode *child);
5580 gint g_node_child_index (GNode *node,
5581 gpointer data);
5582 GNode* g_node_first_sibling (GNode *node);
5583 GNode* g_node_last_sibling (GNode *node);
5584 void g_node_push_allocator (gpointer dummy);
5585 void g_node_pop_allocator (void);
5586 typedef struct _GOptionContext GOptionContext;
5587 typedef struct _GOptionGroup GOptionGroup;
5588 typedef struct _GOptionEntry GOptionEntry;
5589 typedef enum
5590 {
5591 G_OPTION_FLAG_HIDDEN = 1 << 0,
5592 G_OPTION_FLAG_IN_MAIN = 1 << 1,
5593 G_OPTION_FLAG_REVERSE = 1 << 2,
5594 G_OPTION_FLAG_NO_ARG = 1 << 3,
5595 G_OPTION_FLAG_FILENAME = 1 << 4,
5596 G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
5597 G_OPTION_FLAG_NOALIAS = 1 << 6
5598 } GOptionFlags;
5599 typedef enum
5600 {
5601 G_OPTION_ARG_NONE,
5602 G_OPTION_ARG_STRING,
5603 G_OPTION_ARG_INT,
5604 G_OPTION_ARG_CALLBACK,
5605 G_OPTION_ARG_FILENAME,
5606 G_OPTION_ARG_STRING_ARRAY,
5607 G_OPTION_ARG_FILENAME_ARRAY,
5608 G_OPTION_ARG_DOUBLE,
5609 G_OPTION_ARG_INT64
5610 } GOptionArg;
5611 typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
5612 const gchar *value,
5613 gpointer data,
5614 GError **error);
5615 typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
5616 GOptionGroup *group,
5617 gpointer data,
5618 GError **error);
5619 typedef void (*GOptionErrorFunc) (GOptionContext *context,
5620 GOptionGroup *group,
5621 gpointer data,
5622 GError **error);
5623 typedef enum
5624 {
5625 G_OPTION_ERROR_UNKNOWN_OPTION,
5626 G_OPTION_ERROR_BAD_VALUE,
5627 G_OPTION_ERROR_FAILED
5628 } GOptionError;
5629 GQuark g_option_error_quark (void);
5630 struct _GOptionEntry
5631 {
5632 const gchar *long_name;
5633 gchar short_name;
5634 gint flags;
5635 GOptionArg arg;
5636 gpointer arg_data;
5637 const gchar *description;
5638 const gchar *arg_description;
5639 };
5640 GOptionContext *g_option_context_new (const gchar *parameter_string);
5641 void g_option_context_set_summary (GOptionContext *context,
5642 const gchar *summary);
5643 const gchar *g_option_context_get_summary (GOptionContext *context);
5644 void g_option_context_set_description (GOptionContext *context,
5645 const gchar *description);
5646 const gchar *g_option_context_get_description (GOptionContext *context);
5647 void g_option_context_free (GOptionContext *context);
5648 void g_option_context_set_help_enabled (GOptionContext *context,
5649 gboolean help_enabled);
5650 gboolean g_option_context_get_help_enabled (GOptionContext *context);
5651 void g_option_context_set_ignore_unknown_options (GOptionContext *context,
5652 gboolean ignore_unknown);
5653 gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);
5654 void g_option_context_add_main_entries (GOptionContext *context,
5655 const GOptionEntry *entries,
5656 const gchar *translation_domain);
5657 gboolean g_option_context_parse (GOptionContext *context,
5658 gint *argc,
5659 gchar ***argv,
5660 GError **error);
5661 void g_option_context_set_translate_func (GOptionContext *context,
5662 GTranslateFunc func,
5663 gpointer data,
5664 GDestroyNotify destroy_notify);
5665 void g_option_context_set_translation_domain (GOptionContext *context,
5666 const gchar *domain);
5667 void g_option_context_add_group (GOptionContext *context,
5668 GOptionGroup *group);
5669 void g_option_context_set_main_group (GOptionContext *context,
5670 GOptionGroup *group);
5671 GOptionGroup *g_option_context_get_main_group (GOptionContext *context);
5672 gchar *g_option_context_get_help (GOptionContext *context,
5673 gboolean main_help,
5674 GOptionGroup *group);
5675 GOptionGroup *g_option_group_new (const gchar *name,
5676 const gchar *description,
5677 const gchar *help_description,
5678 gpointer user_data,
5679 GDestroyNotify destroy);
5680 void g_option_group_set_parse_hooks (GOptionGroup *group,
5681 GOptionParseFunc pre_parse_func,
5682 GOptionParseFunc post_parse_func);
5683 void g_option_group_set_error_hook (GOptionGroup *group,
5684 GOptionErrorFunc error_func);
5685 void g_option_group_free (GOptionGroup *group);
5686 void g_option_group_add_entries (GOptionGroup *group,
5687 const GOptionEntry *entries);
5688 void g_option_group_set_translate_func (GOptionGroup *group,
5689 GTranslateFunc func,
5690 gpointer data,
5691 GDestroyNotify destroy_notify);
5692 void g_option_group_set_translation_domain (GOptionGroup *group,
5693 const gchar *domain);
5694 typedef struct _GPatternSpec GPatternSpec;
5695 GPatternSpec* g_pattern_spec_new (const gchar *pattern);
5696 void g_pattern_spec_free (GPatternSpec *pspec);
5697 gboolean g_pattern_spec_equal (GPatternSpec *pspec1,
5698 GPatternSpec *pspec2);
5699 gboolean g_pattern_match (GPatternSpec *pspec,
5700 guint string_length,
5701 const gchar *string,
5702 const gchar *string_reversed);
5703 gboolean g_pattern_match_string (GPatternSpec *pspec,
5704 const gchar *string);
5705 gboolean g_pattern_match_simple (const gchar *pattern,
5706 const gchar *string);
5707 guint g_spaced_primes_closest (guint num) __attribute__((__const__));
5708 void g_qsort_with_data (gconstpointer pbase,
5709 gint total_elems,
5710 gsize size,
5711 GCompareDataFunc compare_func,
5712 gpointer user_data);
5713 typedef struct _GQueue GQueue;
5714 struct _GQueue
5715 {
5716 GList *head;
5717 GList *tail;
5718 guint length;
5719 };
5720 GQueue* g_queue_new (void);
5721 void g_queue_free (GQueue *queue);
5722 void g_queue_init (GQueue *queue);
5723 void g_queue_clear (GQueue *queue);
5724 gboolean g_queue_is_empty (GQueue *queue);
5725 guint g_queue_get_length (GQueue *queue);
5726 void g_queue_reverse (GQueue *queue);
5727 GQueue * g_queue_copy (GQueue *queue);
5728 void g_queue_foreach (GQueue *queue,
5729 GFunc func,
5730 gpointer user_data);
5731 GList * g_queue_find (GQueue *queue,
5732 gconstpointer data);
5733 GList * g_queue_find_custom (GQueue *queue,
5734 gconstpointer data,
5735 GCompareFunc func);
5736 void g_queue_sort (GQueue *queue,
5737 GCompareDataFunc compare_func,
5738 gpointer user_data);
5739 void g_queue_push_head (GQueue *queue,
5740 gpointer data);
5741 void g_queue_push_tail (GQueue *queue,
5742 gpointer data);
5743 void g_queue_push_nth (GQueue *queue,
5744 gpointer data,
5745 gint n);
5746 gpointer g_queue_pop_head (GQueue *queue);
5747 gpointer g_queue_pop_tail (GQueue *queue);
5748 gpointer g_queue_pop_nth (GQueue *queue,
5749 guint n);
5750 gpointer g_queue_peek_head (GQueue *queue);
5751 gpointer g_queue_peek_tail (GQueue *queue);
5752 gpointer g_queue_peek_nth (GQueue *queue,
5753 guint n);
5754 gint g_queue_index (GQueue *queue,
5755 gconstpointer data);
5756 void g_queue_remove (GQueue *queue,
5757 gconstpointer data);
5758 void g_queue_remove_all (GQueue *queue,
5759 gconstpointer data);
5760 void g_queue_insert_before (GQueue *queue,
5761 GList *sibling,
5762 gpointer data);
5763 void g_queue_insert_after (GQueue *queue,
5764 GList *sibling,
5765 gpointer data);
5766 void g_queue_insert_sorted (GQueue *queue,
5767 gpointer data,
5768 GCompareDataFunc func,
5769 gpointer user_data);
5770 void g_queue_push_head_link (GQueue *queue,
5771 GList *link_);
5772 void g_queue_push_tail_link (GQueue *queue,
5773 GList *link_);
5774 void g_queue_push_nth_link (GQueue *queue,
5775 gint n,
5776 GList *link_);
5777 GList* g_queue_pop_head_link (GQueue *queue);
5778 GList* g_queue_pop_tail_link (GQueue *queue);
5779 GList* g_queue_pop_nth_link (GQueue *queue,
5780 guint n);
5781 GList* g_queue_peek_head_link (GQueue *queue);
5782 GList* g_queue_peek_tail_link (GQueue *queue);
5783 GList* g_queue_peek_nth_link (GQueue *queue,
5784 guint n);
5785 gint g_queue_link_index (GQueue *queue,
5786 GList *link_);
5787 void g_queue_unlink (GQueue *queue,
5788 GList *link_);
5789 void g_queue_delete_link (GQueue *queue,
5790 GList *link_);
5791 typedef struct _GRand GRand;
5792 GRand* g_rand_new_with_seed (guint32 seed);
5793 GRand* g_rand_new_with_seed_array (const guint32 *seed,
5794 guint seed_length);
5795 GRand* g_rand_new (void);
5796 void g_rand_free (GRand *rand_);
5797 GRand* g_rand_copy (GRand *rand_);
5798 void g_rand_set_seed (GRand *rand_,
5799 guint32 seed);
5800 void g_rand_set_seed_array (GRand *rand_,
5801 const guint32 *seed,
5802 guint seed_length);
5803 guint32 g_rand_int (GRand *rand_);
5804 gint32 g_rand_int_range (GRand *rand_,
5805 gint32 begin,
5806 gint32 end);
5807 gdouble g_rand_double (GRand *rand_);
5808 gdouble g_rand_double_range (GRand *rand_,
5809 gdouble begin,
5810 gdouble end);
5811 void g_random_set_seed (guint32 seed);
5812 guint32 g_random_int (void);
5813 gint32 g_random_int_range (gint32 begin,
5814 gint32 end);
5815 gdouble g_random_double (void);
5816 gdouble g_random_double_range (gdouble begin,
5817 gdouble end);
5818 typedef struct _GRelation GRelation;
5819 typedef struct _GTuples GTuples;
5820 struct _GTuples
5821 {
5822 guint len;
5823 };
5824 GRelation* g_relation_new (gint fields);
5825 void g_relation_destroy (GRelation *relation);
5826 void g_relation_index (GRelation *relation,
5827 gint field,
5828 GHashFunc hash_func,
5829 GEqualFunc key_equal_func);
5830 void g_relation_insert (GRelation *relation,
5831 ...);
5832 gint g_relation_delete (GRelation *relation,
5833 gconstpointer key,
5834 gint field);
5835 GTuples* g_relation_select (GRelation *relation,
5836 gconstpointer key,
5837 gint field);
5838 gint g_relation_count (GRelation *relation,
5839 gconstpointer key,
5840 gint field);
5841 gboolean g_relation_exists (GRelation *relation,
5842 ...);
5843 void g_relation_print (GRelation *relation);
5844 void g_tuples_destroy (GTuples *tuples);
5845 gpointer g_tuples_index (GTuples *tuples,
5846 gint index_,
5847 gint field);
5848 typedef enum
5849 {
5850 G_REGEX_ERROR_COMPILE,
5851 G_REGEX_ERROR_OPTIMIZE,
5852 G_REGEX_ERROR_REPLACE,
5853 G_REGEX_ERROR_MATCH,
5854 G_REGEX_ERROR_INTERNAL,
5855 G_REGEX_ERROR_STRAY_BACKSLASH = 101,
5856 G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102,
5857 G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103,
5858 G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104,
5859 G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105,
5860 G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106,
5861 G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107,
5862 G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108,
5863 G_REGEX_ERROR_NOTHING_TO_REPEAT = 109,
5864 G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112,
5865 G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113,
5866 G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114,
5867 G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115,
5868 G_REGEX_ERROR_UNTERMINATED_COMMENT = 118,
5869 G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120,
5870 G_REGEX_ERROR_MEMORY_ERROR = 121,
5871 G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125,
5872 G_REGEX_ERROR_MALFORMED_CONDITION = 126,
5873 G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127,
5874 G_REGEX_ERROR_ASSERTION_EXPECTED = 128,
5875 G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130,
5876 G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131,
5877 G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134,
5878 G_REGEX_ERROR_INVALID_CONDITION = 135,
5879 G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136,
5880 G_REGEX_ERROR_INFINITE_LOOP = 140,
5881 G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142,
5882 G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143,
5883 G_REGEX_ERROR_MALFORMED_PROPERTY = 146,
5884 G_REGEX_ERROR_UNKNOWN_PROPERTY = 147,
5885 G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148,
5886 G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149,
5887 G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151,
5888 G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154,
5889 G_REGEX_ERROR_DEFINE_REPETION = 155,
5890 G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156,
5891 G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157
5892 } GRegexError;
5893 GQuark g_regex_error_quark (void);
5894 typedef enum
5895 {
5896 G_REGEX_CASELESS = 1 << 0,
5897 G_REGEX_MULTILINE = 1 << 1,
5898 G_REGEX_DOTALL = 1 << 2,
5899 G_REGEX_EXTENDED = 1 << 3,
5900 G_REGEX_ANCHORED = 1 << 4,
5901 G_REGEX_DOLLAR_ENDONLY = 1 << 5,
5902 G_REGEX_UNGREEDY = 1 << 9,
5903 G_REGEX_RAW = 1 << 11,
5904 G_REGEX_NO_AUTO_CAPTURE = 1 << 12,
5905 G_REGEX_OPTIMIZE = 1 << 13,
5906 G_REGEX_DUPNAMES = 1 << 19,
5907 G_REGEX_NEWLINE_CR = 1 << 20,
5908 G_REGEX_NEWLINE_LF = 1 << 21,
5909 G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF
5910 } GRegexCompileFlags;
5911 typedef enum
5912 {
5913 G_REGEX_MATCH_ANCHORED = 1 << 4,
5914 G_REGEX_MATCH_NOTBOL = 1 << 7,
5915 G_REGEX_MATCH_NOTEOL = 1 << 8,
5916 G_REGEX_MATCH_NOTEMPTY = 1 << 10,
5917 G_REGEX_MATCH_PARTIAL = 1 << 15,
5918 G_REGEX_MATCH_NEWLINE_CR = 1 << 20,
5919 G_REGEX_MATCH_NEWLINE_LF = 1 << 21,
5920 G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF,
5921 G_REGEX_MATCH_NEWLINE_ANY = 1 << 22
5922 } GRegexMatchFlags;
5923 typedef struct _GRegex GRegex;
5924 typedef struct _GMatchInfo GMatchInfo;
5925 typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info,
5926 GString *result,
5927 gpointer user_data);
5928 GRegex *g_regex_new (const gchar *pattern,
5929 GRegexCompileFlags compile_options,
5930 GRegexMatchFlags match_options,
5931 GError **error);
5932 GRegex *g_regex_ref (GRegex *regex);
5933 void g_regex_unref (GRegex *regex);
5934 const gchar *g_regex_get_pattern (const GRegex *regex);
5935 gint g_regex_get_max_backref (const GRegex *regex);
5936 gint g_regex_get_capture_count (const GRegex *regex);
5937 gint g_regex_get_string_number (const GRegex *regex,
5938 const gchar *name);
5939 gchar *g_regex_escape_string (const gchar *string,
5940 gint length);
5941 gboolean g_regex_match_simple (const gchar *pattern,
5942 const gchar *string,
5943 GRegexCompileFlags compile_options,
5944 GRegexMatchFlags match_options);
5945 gboolean g_regex_match (const GRegex *regex,
5946 const gchar *string,
5947 GRegexMatchFlags match_options,
5948 GMatchInfo **match_info);
5949 gboolean g_regex_match_full (const GRegex *regex,
5950 const gchar *string,
5951 gssize string_len,
5952 gint start_position,
5953 GRegexMatchFlags match_options,
5954 GMatchInfo **match_info,
5955 GError **error);
5956 gboolean g_regex_match_all (const GRegex *regex,
5957 const gchar *string,
5958 GRegexMatchFlags match_options,
5959 GMatchInfo **match_info);
5960 gboolean g_regex_match_all_full (const GRegex *regex,
5961 const gchar *string,
5962 gssize string_len,
5963 gint start_position,
5964 GRegexMatchFlags match_options,
5965 GMatchInfo **match_info,
5966 GError **error);
5967 gchar **g_regex_split_simple (const gchar *pattern,
5968 const gchar *string,
5969 GRegexCompileFlags compile_options,
5970 GRegexMatchFlags match_options);
5971 gchar **g_regex_split (const GRegex *regex,
5972 const gchar *string,
5973 GRegexMatchFlags match_options);
5974 gchar **g_regex_split_full (const GRegex *regex,
5975 const gchar *string,
5976 gssize string_len,
5977 gint start_position,
5978 GRegexMatchFlags match_options,
5979 gint max_tokens,
5980 GError **error);
5981 gchar *g_regex_replace (const GRegex *regex,
5982 const gchar *string,
5983 gssize string_len,
5984 gint start_position,
5985 const gchar *replacement,
5986 GRegexMatchFlags match_options,
5987 GError **error);
5988 gchar *g_regex_replace_literal (const GRegex *regex,
5989 const gchar *string,
5990 gssize string_len,
5991 gint start_position,
5992 const gchar *replacement,
5993 GRegexMatchFlags match_options,
5994 GError **error);
5995 gchar *g_regex_replace_eval (const GRegex *regex,
5996 const gchar *string,
5997 gssize string_len,
5998 gint start_position,
5999 GRegexMatchFlags match_options,
6000 GRegexEvalCallback eval,
6001 gpointer user_data,
6002 GError **error);
6003 gboolean g_regex_check_replacement (const gchar *replacement,
6004 gboolean *has_references,
6005 GError **error);
6006 GRegex *g_match_info_get_regex (const GMatchInfo *match_info);
6007 const gchar *g_match_info_get_string (const GMatchInfo *match_info);
6008 void g_match_info_free (GMatchInfo *match_info);
6009 gboolean g_match_info_next (GMatchInfo *match_info,
6010 GError **error);
6011 gboolean g_match_info_matches (const GMatchInfo *match_info);
6012 gint g_match_info_get_match_count (const GMatchInfo *match_info);
6013 gboolean g_match_info_is_partial_match (const GMatchInfo *match_info);
6014 gchar *g_match_info_expand_references(const GMatchInfo *match_info,
6015 const gchar *string_to_expand,
6016 GError **error);
6017 gchar *g_match_info_fetch (const GMatchInfo *match_info,
6018 gint match_num);
6019 gboolean g_match_info_fetch_pos (const GMatchInfo *match_info,
6020 gint match_num,
6021 gint *start_pos,
6022 gint *end_pos);
6023 gchar *g_match_info_fetch_named (const GMatchInfo *match_info,
6024 const gchar *name);
6025 gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info,
6026 const gchar *name,
6027 gint *start_pos,
6028 gint *end_pos);
6029 gchar **g_match_info_fetch_all (const GMatchInfo *match_info);
6030 typedef struct _GScanner GScanner;
6031 typedef struct _GScannerConfig GScannerConfig;
6032 typedef union _GTokenValue GTokenValue;
6033 typedef void (*GScannerMsgFunc) (GScanner *scanner,
6034 gchar *message,
6035 gboolean error);
6036 typedef enum
6037 {
6038 G_ERR_UNKNOWN,
6039 G_ERR_UNEXP_EOF,
6040 G_ERR_UNEXP_EOF_IN_STRING,
6041 G_ERR_UNEXP_EOF_IN_COMMENT,
6042 G_ERR_NON_DIGIT_IN_CONST,
6043 G_ERR_DIGIT_RADIX,
6044 G_ERR_FLOAT_RADIX,
6045 G_ERR_FLOAT_MALFORMED
6046 } GErrorType;
6047 typedef enum
6048 {
6049 G_TOKEN_EOF = 0,
6050 G_TOKEN_LEFT_PAREN = '(',
6051 G_TOKEN_RIGHT_PAREN = ')',
6052 G_TOKEN_LEFT_CURLY = '{',
6053 G_TOKEN_RIGHT_CURLY = '}',
6054 G_TOKEN_LEFT_BRACE = '[',
6055 G_TOKEN_RIGHT_BRACE = ']',
6056 G_TOKEN_EQUAL_SIGN = '=',
6057 G_TOKEN_COMMA = ',',
6058 G_TOKEN_NONE = 256,
6059 G_TOKEN_ERROR,
6060 G_TOKEN_CHAR,
6061 G_TOKEN_BINARY,
6062 G_TOKEN_OCTAL,
6063 G_TOKEN_INT,
6064 G_TOKEN_HEX,
6065 G_TOKEN_FLOAT,
6066 G_TOKEN_STRING,
6067 G_TOKEN_SYMBOL,
6068 G_TOKEN_IDENTIFIER,
6069 G_TOKEN_IDENTIFIER_NULL,
6070 G_TOKEN_COMMENT_SINGLE,
6071 G_TOKEN_COMMENT_MULTI,
6072 G_TOKEN_LAST
6073 } GTokenType;
6074 union _GTokenValue
6075 {
6076 gpointer v_symbol;
6077 gchar *v_identifier;
6078 gulong v_binary;
6079 gulong v_octal;
6080 gulong v_int;
6081 guint64 v_int64;
6082 gdouble v_float;
6083 gulong v_hex;
6084 gchar *v_string;
6085 gchar *v_comment;
6086 guchar v_char;
6087 guint v_error;
6088 };
6089 struct _GScannerConfig
6090 {
6091 gchar *cset_skip_characters;
6092 gchar *cset_identifier_first;
6093 gchar *cset_identifier_nth;
6094 gchar *cpair_comment_single;
6095 guint case_sensitive : 1;
6096 guint skip_comment_multi : 1;
6097 guint skip_comment_single : 1;
6098 guint scan_comment_multi : 1;
6099 guint scan_identifier : 1;
6100 guint scan_identifier_1char : 1;
6101 guint scan_identifier_NULL : 1;
6102 guint scan_symbols : 1;
6103 guint scan_binary : 1;
6104 guint scan_octal : 1;
6105 guint scan_float : 1;
6106 guint scan_hex : 1;
6107 guint scan_hex_dollar : 1;
6108 guint scan_string_sq : 1;
6109 guint scan_string_dq : 1;
6110 guint numbers_2_int : 1;
6111 guint int_2_float : 1;
6112 guint identifier_2_string : 1;
6113 guint char_2_token : 1;
6114 guint symbol_2_token : 1;
6115 guint scope_0_fallback : 1;
6116 guint store_int64 : 1;
6117 guint padding_dummy;
6118 };
6119 struct _GScanner
6120 {
6121 gpointer user_data;
6122 guint max_parse_errors;
6123 guint parse_errors;
6124 const gchar *input_name;
6125 GData *qdata;
6126 GScannerConfig *config;
6127 GTokenType token;
6128 GTokenValue value;
6129 guint line;
6130 guint position;
6131 GTokenType next_token;
6132 GTokenValue next_value;
6133 guint next_line;
6134 guint next_position;
6135 GHashTable *symbol_table;
6136 gint input_fd;
6137 const gchar *text;
6138 const gchar *text_end;
6139 gchar *buffer;
6140 guint scope_id;
6141 GScannerMsgFunc msg_handler;
6142 };
6143 GScanner* g_scanner_new (const GScannerConfig *config_templ);
6144 void g_scanner_destroy (GScanner *scanner);
6145 void g_scanner_input_file (GScanner *scanner,
6146 gint input_fd);
6147 void g_scanner_sync_file_offset (GScanner *scanner);
6148 void g_scanner_input_text (GScanner *scanner,
6149 const gchar *text,
6150 guint text_len);
6151 GTokenType g_scanner_get_next_token (GScanner *scanner);
6152 GTokenType g_scanner_peek_next_token (GScanner *scanner);
6153 GTokenType g_scanner_cur_token (GScanner *scanner);
6154 GTokenValue g_scanner_cur_value (GScanner *scanner);
6155 guint g_scanner_cur_line (GScanner *scanner);
6156 guint g_scanner_cur_position (GScanner *scanner);
6157 gboolean g_scanner_eof (GScanner *scanner);
6158 guint g_scanner_set_scope (GScanner *scanner,
6159 guint scope_id);
6160 void g_scanner_scope_add_symbol (GScanner *scanner,
6161 guint scope_id,
6162 const gchar *symbol,
6163 gpointer value);
6164 void g_scanner_scope_remove_symbol (GScanner *scanner,
6165 guint scope_id,
6166 const gchar *symbol);
6167 gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
6168 guint scope_id,
6169 const gchar *symbol);
6170 void g_scanner_scope_foreach_symbol (GScanner *scanner,
6171 guint scope_id,
6172 GHFunc func,
6173 gpointer user_data);
6174 gpointer g_scanner_lookup_symbol (GScanner *scanner,
6175 const gchar *symbol);
6176 void g_scanner_unexp_token (GScanner *scanner,
6177 GTokenType expected_token,
6178 const gchar *identifier_spec,
6179 const gchar *symbol_spec,
6180 const gchar *symbol_name,
6181 const gchar *message,
6182 gint is_error);
6183 void g_scanner_error (GScanner *scanner,
6184 const gchar *format,
6185 ...) __attribute__((__format__ (__printf__, 2, 3)));
6186 void g_scanner_warn (GScanner *scanner,
6187 const gchar *format,
6188 ...) __attribute__((__format__ (__printf__, 2, 3)));
6189 typedef struct _GSequence GSequence;
6190 typedef struct _GSequenceNode GSequenceIter;
6191 typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
6192 GSequenceIter *b,
6193 gpointer data);
6194 GSequence * g_sequence_new (GDestroyNotify data_destroy);
6195 void g_sequence_free (GSequence *seq);
6196 gint g_sequence_get_length (GSequence *seq);
6197 void g_sequence_foreach (GSequence *seq,
6198 GFunc func,
6199 gpointer user_data);
6200 void g_sequence_foreach_range (GSequenceIter *begin,
6201 GSequenceIter *end,
6202 GFunc func,
6203 gpointer user_data);
6204 void g_sequence_sort (GSequence *seq,
6205 GCompareDataFunc cmp_func,
6206 gpointer cmp_data);
6207 void g_sequence_sort_iter (GSequence *seq,
6208 GSequenceIterCompareFunc cmp_func,
6209 gpointer cmp_data);
6210 GSequenceIter *g_sequence_get_begin_iter (GSequence *seq);
6211 GSequenceIter *g_sequence_get_end_iter (GSequence *seq);
6212 GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq,
6213 gint pos);
6214 GSequenceIter *g_sequence_append (GSequence *seq,
6215 gpointer data);
6216 GSequenceIter *g_sequence_prepend (GSequence *seq,
6217 gpointer data);
6218 GSequenceIter *g_sequence_insert_before (GSequenceIter *iter,
6219 gpointer data);
6220 void g_sequence_move (GSequenceIter *src,
6221 GSequenceIter *dest);
6222 void g_sequence_swap (GSequenceIter *a,
6223 GSequenceIter *b);
6224 GSequenceIter *g_sequence_insert_sorted (GSequence *seq,
6225 gpointer data,
6226 GCompareDataFunc cmp_func,
6227 gpointer cmp_data);
6228 GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq,
6229 gpointer data,
6230 GSequenceIterCompareFunc iter_cmp,
6231 gpointer cmp_data);
6232 void g_sequence_sort_changed (GSequenceIter *iter,
6233 GCompareDataFunc cmp_func,
6234 gpointer cmp_data);
6235 void g_sequence_sort_changed_iter (GSequenceIter *iter,
6236 GSequenceIterCompareFunc iter_cmp,
6237 gpointer cmp_data);
6238 void g_sequence_remove (GSequenceIter *iter);
6239 void g_sequence_remove_range (GSequenceIter *begin,
6240 GSequenceIter *end);
6241 void g_sequence_move_range (GSequenceIter *dest,
6242 GSequenceIter *begin,
6243 GSequenceIter *end);
6244 GSequenceIter *g_sequence_search (GSequence *seq,
6245 gpointer data,
6246 GCompareDataFunc cmp_func,
6247 gpointer cmp_data);
6248 GSequenceIter *g_sequence_search_iter (GSequence *seq,
6249 gpointer data,
6250 GSequenceIterCompareFunc iter_cmp,
6251 gpointer cmp_data);
6252 gpointer g_sequence_get (GSequenceIter *iter);
6253 void g_sequence_set (GSequenceIter *iter,
6254 gpointer data);
6255 gboolean g_sequence_iter_is_begin (GSequenceIter *iter);
6256 gboolean g_sequence_iter_is_end (GSequenceIter *iter);
6257 GSequenceIter *g_sequence_iter_next (GSequenceIter *iter);
6258 GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter);
6259 gint g_sequence_iter_get_position (GSequenceIter *iter);
6260 GSequenceIter *g_sequence_iter_move (GSequenceIter *iter,
6261 gint delta);
6262 GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);
6263 gint g_sequence_iter_compare (GSequenceIter *a,
6264 GSequenceIter *b);
6265 GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin,
6266 GSequenceIter *end);
6267 typedef enum
6268 {
6269 G_SHELL_ERROR_BAD_QUOTING,
6270 G_SHELL_ERROR_EMPTY_STRING,
6271 G_SHELL_ERROR_FAILED
6272 } GShellError;
6273 GQuark g_shell_error_quark (void);
6274 gchar* g_shell_quote (const gchar *unquoted_string);
6275 gchar* g_shell_unquote (const gchar *quoted_string,
6276 GError **error);
6277 gboolean g_shell_parse_argv (const gchar *command_line,
6278 gint *argcp,
6279 gchar ***argvp,
6280 GError **error);
6281 typedef enum
6282 {
6283 G_SPAWN_ERROR_FORK,
6284 G_SPAWN_ERROR_READ,
6285 G_SPAWN_ERROR_CHDIR,
6286 G_SPAWN_ERROR_ACCES,
6287 G_SPAWN_ERROR_PERM,
6288 G_SPAWN_ERROR_2BIG,
6289 G_SPAWN_ERROR_NOEXEC,
6290 G_SPAWN_ERROR_NAMETOOLONG,
6291 G_SPAWN_ERROR_NOENT,
6292 G_SPAWN_ERROR_NOMEM,
6293 G_SPAWN_ERROR_NOTDIR,
6294 G_SPAWN_ERROR_LOOP,
6295 G_SPAWN_ERROR_TXTBUSY,
6296 G_SPAWN_ERROR_IO,
6297 G_SPAWN_ERROR_NFILE,
6298 G_SPAWN_ERROR_MFILE,
6299 G_SPAWN_ERROR_INVAL,
6300 G_SPAWN_ERROR_ISDIR,
6301 G_SPAWN_ERROR_LIBBAD,
6302 G_SPAWN_ERROR_FAILED
6303 } GSpawnError;
6304 typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
6305 typedef enum
6306 {
6307 G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
6308 G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
6309 G_SPAWN_SEARCH_PATH = 1 << 2,
6310 G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
6311 G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
6312 G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
6313 G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6
6314 } GSpawnFlags;
6315 GQuark g_spawn_error_quark (void);
6316 gboolean g_spawn_async (const gchar *working_directory,
6317 gchar **argv,
6318 gchar **envp,
6319 GSpawnFlags flags,
6320 GSpawnChildSetupFunc child_setup,
6321 gpointer user_data,
6322 GPid *child_pid,
6323 GError **error);
6324 gboolean g_spawn_async_with_pipes (const gchar *working_directory,
6325 gchar **argv,
6326 gchar **envp,
6327 GSpawnFlags flags,
6328 GSpawnChildSetupFunc child_setup,
6329 gpointer user_data,
6330 GPid *child_pid,
6331 gint *standard_input,
6332 gint *standard_output,
6333 gint *standard_error,
6334 GError **error);
6335 gboolean g_spawn_sync (const gchar *working_directory,
6336 gchar **argv,
6337 gchar **envp,
6338 GSpawnFlags flags,
6339 GSpawnChildSetupFunc child_setup,
6340 gpointer user_data,
6341 gchar **standard_output,
6342 gchar **standard_error,
6343 gint *exit_status,
6344 GError **error);
6345 gboolean g_spawn_command_line_sync (const gchar *command_line,
6346 gchar **standard_output,
6347 gchar **standard_error,
6348 gint *exit_status,
6349 GError **error);
6350 gboolean g_spawn_command_line_async (const gchar *command_line,
6351 GError **error);
6352 void g_spawn_close_pid (GPid pid);
6353 typedef enum {
6354 G_ASCII_ALNUM = 1 << 0,
6355 G_ASCII_ALPHA = 1 << 1,
6356 G_ASCII_CNTRL = 1 << 2,
6357 G_ASCII_DIGIT = 1 << 3,
6358 G_ASCII_GRAPH = 1 << 4,
6359 G_ASCII_LOWER = 1 << 5,
6360 G_ASCII_PRINT = 1 << 6,
6361 G_ASCII_PUNCT = 1 << 7,
6362 G_ASCII_SPACE = 1 << 8,
6363 G_ASCII_UPPER = 1 << 9,
6364 G_ASCII_XDIGIT = 1 << 10
6365 } GAsciiType;
6366 extern const guint16 * const g_ascii_table;
6367 gchar g_ascii_tolower (gchar c) __attribute__((__const__));
6368 gchar g_ascii_toupper (gchar c) __attribute__((__const__));
6369 gint g_ascii_digit_value (gchar c) __attribute__((__const__));
6370 gint g_ascii_xdigit_value (gchar c) __attribute__((__const__));
6371 gchar* g_strdelimit (gchar *string,
6372 const gchar *delimiters,
6373 gchar new_delimiter);
6374 gchar* g_strcanon (gchar *string,
6375 const gchar *valid_chars,
6376 gchar substitutor);
6377 const gchar* g_strerror (gint errnum) __attribute__((__const__));
6378 const gchar* g_strsignal (gint signum) __attribute__((__const__));
6379 gchar* g_strreverse (gchar *string);
6380 gsize g_strlcpy (gchar *dest,
6381 const gchar *src,
6382 gsize dest_size);
6383 gsize g_strlcat (gchar *dest,
6384 const gchar *src,
6385 gsize dest_size);
6386 gchar * g_strstr_len (const gchar *haystack,
6387 gssize haystack_len,
6388 const gchar *needle);
6389 gchar * g_strrstr (const gchar *haystack,
6390 const gchar *needle);
6391 gchar * g_strrstr_len (const gchar *haystack,
6392 gssize haystack_len,
6393 const gchar *needle);
6394 gboolean g_str_has_suffix (const gchar *str,
6395 const gchar *suffix);
6396 gboolean g_str_has_prefix (const gchar *str,
6397 const gchar *prefix);
6398 gdouble g_strtod (const gchar *nptr,
6399 gchar **endptr);
6400 gdouble g_ascii_strtod (const gchar *nptr,
6401 gchar **endptr);
6402 guint64 g_ascii_strtoull (const gchar *nptr,
6403 gchar **endptr,
6404 guint base);
6405 gint64 g_ascii_strtoll (const gchar *nptr,
6406 gchar **endptr,
6407 guint base);
6408 gchar * g_ascii_dtostr (gchar *buffer,
6409 gint buf_len,
6410 gdouble d);
6411 gchar * g_ascii_formatd (gchar *buffer,
6412 gint buf_len,
6413 const gchar *format,
6414 gdouble d);
6415 gchar* g_strchug (gchar *string);
6416 gchar* g_strchomp (gchar *string);
6417 gint g_ascii_strcasecmp (const gchar *s1,
6418 const gchar *s2);
6419 gint g_ascii_strncasecmp (const gchar *s1,
6420 const gchar *s2,
6421 gsize n);
6422 gchar* g_ascii_strdown (const gchar *str,
6423 gssize len) __attribute__((__malloc__));
6424 gchar* g_ascii_strup (const gchar *str,
6425 gssize len) __attribute__((__malloc__));
6426 gint g_strcasecmp (const gchar *s1,
6427 const gchar *s2);
6428 gint g_strncasecmp (const gchar *s1,
6429 const gchar *s2,
6430 guint n);
6431 gchar* g_strdown (gchar *string);
6432 gchar* g_strup (gchar *string);
6433 gchar* g_strdup (const gchar *str) __attribute__((__malloc__));
6434 gchar* g_strdup_printf (const gchar *format,
6435 ...) __attribute__((__format__ (__printf__, 1, 2))) __attribute__((__malloc__));
6436 gchar* g_strdup_vprintf (const gchar *format,
6437 va_list args) __attribute__((__malloc__));
6438 gchar* g_strndup (const gchar *str,
6439 gsize n) __attribute__((__malloc__));
6440 gchar* g_strnfill (gsize length,
6441 gchar fill_char) __attribute__((__malloc__));
6442 gchar* g_strconcat (const gchar *string1,
6443 ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
6444 gchar* g_strjoin (const gchar *separator,
6445 ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
6446 gchar* g_strcompress (const gchar *source) __attribute__((__malloc__));
6447 gchar* g_strescape (const gchar *source,
6448 const gchar *exceptions) __attribute__((__malloc__));
6449 gpointer g_memdup (gconstpointer mem,
6450 guint byte_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(2)));
6451 gchar** g_strsplit (const gchar *string,
6452 const gchar *delimiter,
6453 gint max_tokens) __attribute__((__malloc__));
6454 gchar ** g_strsplit_set (const gchar *string,
6455 const gchar *delimiters,
6456 gint max_tokens) __attribute__((__malloc__));
6457 gchar* g_strjoinv (const gchar *separator,
6458 gchar **str_array) __attribute__((__malloc__));
6459 void g_strfreev (gchar **str_array);
6460 gchar** g_strdupv (gchar **str_array) __attribute__((__malloc__));
6461 guint g_strv_length (gchar **str_array);
6462 gchar* g_stpcpy (gchar *dest,
6463 const char *src);
6464 const gchar *g_strip_context (const gchar *msgid,
6465 const gchar *msgval) __attribute__((__format_arg__ (1)));
6466 const gchar *g_dgettext (const gchar *domain,
6467 const gchar *msgid) __attribute__((__format_arg__ (2)));
6468 const gchar *g_dngettext (const gchar *domain,
6469 const gchar *msgid,
6470 const gchar *msgid_plural,
6471 gulong n) __attribute__((__format_arg__ (3)));
6472 const gchar *g_dpgettext (const gchar *domain,
6473 const gchar *msgctxtid,
6474 gsize msgidoffset) __attribute__((__format_arg__ (2)));
6475 const gchar *g_dpgettext2 (const gchar *domain,
6476 const gchar *context,
6477 const gchar *msgid) __attribute__((__format_arg__ (3)));
6478 typedef struct GTestCase GTestCase;
6479 typedef struct GTestSuite GTestSuite;
6480 int g_strcmp0 (const char *str1,
6481 const char *str2);
6482 void g_test_minimized_result (double minimized_quantity,
6483 const char *format,
6484 ...) __attribute__((__format__ (__printf__, 2, 3)));
6485 void g_test_maximized_result (double maximized_quantity,
6486 const char *format,
6487 ...) __attribute__((__format__ (__printf__, 2, 3)));
6488 void g_test_init (int *argc,
6489 char ***argv,
6490 ...);
6491 int g_test_run (void);
6492 void g_test_add_func (const char *testpath,
6493 void (*test_func) (void));
6494 void g_test_add_data_func (const char *testpath,
6495 gconstpointer test_data,
6496 void (*test_func) (gconstpointer));
6497 void g_test_message (const char *format,
6498 ...) __attribute__((__format__ (__printf__, 1, 2)));
6499 void g_test_bug_base (const char *uri_pattern);
6500 void g_test_bug (const char *bug_uri_snippet);
6501 void g_test_timer_start (void);
6502 double g_test_timer_elapsed (void);
6503 double g_test_timer_last (void);
6504 void g_test_queue_free (gpointer gfree_pointer);
6505 void g_test_queue_destroy (GDestroyNotify destroy_func,
6506 gpointer destroy_data);
6507 typedef enum {
6508 G_TEST_TRAP_SILENCE_STDOUT = 1 << 7,
6509 G_TEST_TRAP_SILENCE_STDERR = 1 << 8,
6510 G_TEST_TRAP_INHERIT_STDIN = 1 << 9
6511 } GTestTrapFlags;
6512 gboolean g_test_trap_fork (guint64 usec_timeout,
6513 GTestTrapFlags test_trap_flags);
6514 gboolean g_test_trap_has_passed (void);
6515 gboolean g_test_trap_reached_timeout (void);
6516 gint32 g_test_rand_int (void);
6517 gint32 g_test_rand_int_range (gint32 begin,
6518 gint32 end);
6519 double g_test_rand_double (void);
6520 double g_test_rand_double_range (double range_start,
6521 double range_end);
6522 GTestCase* g_test_create_case (const char *test_name,
6523 gsize data_size,
6524 gconstpointer test_data,
6525 void (*data_setup) (void),
6526 void (*data_test) (void),
6527 void (*data_teardown) (void));
6528 GTestSuite* g_test_create_suite (const char *suite_name);
6529 GTestSuite* g_test_get_root (void);
6530 void g_test_suite_add (GTestSuite *suite,
6531 GTestCase *test_case);
6532 void g_test_suite_add_suite (GTestSuite *suite,
6533 GTestSuite *nestedsuite);
6534 int g_test_run_suite (GTestSuite *suite);
6535 void g_test_trap_assertions (const char *domain,
6536 const char *file,
6537 int line,
6538 const char *func,
6539 guint64 assertion_flags,
6540 const char *pattern);
6541 void g_assertion_message (const char *domain,
6542 const char *file,
6543 int line,
6544 const char *func,
6545 const char *message) __attribute__((__noreturn__));
6546 void g_assertion_message_expr (const char *domain,
6547 const char *file,
6548 int line,
6549 const char *func,
6550 const char *expr) __attribute__((__noreturn__));
6551 void g_assertion_message_cmpstr (const char *domain,
6552 const char *file,
6553 int line,
6554 const char *func,
6555 const char *expr,
6556 const char *arg1,
6557 const char *cmp,
6558 const char *arg2) __attribute__((__noreturn__));
6559 void g_assertion_message_cmpnum (const char *domain,
6560 const char *file,
6561 int line,
6562 const char *func,
6563 const char *expr,
6564 long double arg1,
6565 const char *cmp,
6566 long double arg2,
6567 char numtype) __attribute__((__noreturn__));
6568 void g_assertion_message_error (const char *domain,
6569 const char *file,
6570 int line,
6571 const char *func,
6572 const char *expr,
6573 GError *error,
6574 GQuark error_domain,
6575 int error_code) __attribute__((__noreturn__));
6576 void g_test_add_vtable (const char *testpath,
6577 gsize data_size,
6578 gconstpointer test_data,
6579 void (*data_setup) (void),
6580 void (*data_test) (void),
6581 void (*data_teardown) (void));
6582 typedef struct {
6583 gboolean test_initialized;
6584 gboolean test_quick;
6585 gboolean test_perf;
6586 gboolean test_verbose;
6587 gboolean test_quiet;
6588 } GTestConfig;
6589 extern const GTestConfig * const g_test_config_vars;
6590 typedef enum {
6591 G_TEST_LOG_NONE,
6592 G_TEST_LOG_ERROR,
6593 G_TEST_LOG_START_BINARY,
6594 G_TEST_LOG_LIST_CASE,
6595 G_TEST_LOG_SKIP_CASE,
6596 G_TEST_LOG_START_CASE,
6597 G_TEST_LOG_STOP_CASE,
6598 G_TEST_LOG_MIN_RESULT,
6599 G_TEST_LOG_MAX_RESULT,
6600 G_TEST_LOG_MESSAGE
6601 } GTestLogType;
6602 typedef struct {
6603 GTestLogType log_type;
6604 guint n_strings;
6605 gchar **strings;
6606 guint n_nums;
6607 long double *nums;
6608 } GTestLogMsg;
6609 typedef struct {
6610 GString *data;
6611 GSList *msgs;
6612 } GTestLogBuffer;
6613 const char* g_test_log_type_name (GTestLogType log_type);
6614 GTestLogBuffer* g_test_log_buffer_new (void);
6615 void g_test_log_buffer_free (GTestLogBuffer *tbuffer);
6616 void g_test_log_buffer_push (GTestLogBuffer *tbuffer,
6617 guint n_bytes,
6618 const guint8 *bytes);
6619 GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer);
6620 void g_test_log_msg_free (GTestLogMsg *tmsg);
6621 typedef struct _GThreadPool GThreadPool;
6622 struct _GThreadPool
6623 {
6624 GFunc func;
6625 gpointer user_data;
6626 gboolean exclusive;
6627 };
6628 GThreadPool* g_thread_pool_new (GFunc func,
6629 gpointer user_data,
6630 gint max_threads,
6631 gboolean exclusive,
6632 GError **error);
6633 void g_thread_pool_push (GThreadPool *pool,
6634 gpointer data,
6635 GError **error);
6636 void g_thread_pool_set_max_threads (GThreadPool *pool,
6637 gint max_threads,
6638 GError **error);
6639 gint g_thread_pool_get_max_threads (GThreadPool *pool);
6640 guint g_thread_pool_get_num_threads (GThreadPool *pool);
6641 guint g_thread_pool_unprocessed (GThreadPool *pool);
6642 void g_thread_pool_free (GThreadPool *pool,
6643 gboolean immediate,
6644 gboolean wait_);
6645 void g_thread_pool_set_max_unused_threads (gint max_threads);
6646 gint g_thread_pool_get_max_unused_threads (void);
6647 guint g_thread_pool_get_num_unused_threads (void);
6648 void g_thread_pool_stop_unused_threads (void);
6649 void g_thread_pool_set_sort_function (GThreadPool *pool,
6650 GCompareDataFunc func,
6651 gpointer user_data);
6652 void g_thread_pool_set_max_idle_time (guint interval);
6653 guint g_thread_pool_get_max_idle_time (void);
6654 typedef struct _GTimer GTimer;
6655 GTimer* g_timer_new (void);
6656 void g_timer_destroy (GTimer *timer);
6657 void g_timer_start (GTimer *timer);
6658 void g_timer_stop (GTimer *timer);
6659 void g_timer_reset (GTimer *timer);
6660 void g_timer_continue (GTimer *timer);
6661 gdouble g_timer_elapsed (GTimer *timer,
6662 gulong *microseconds);
6663 void g_usleep (gulong microseconds);
6664 void g_time_val_add (GTimeVal *time_,
6665 glong microseconds);
6666 gboolean g_time_val_from_iso8601 (const gchar *iso_date,
6667 GTimeVal *time_);
6668 gchar* g_time_val_to_iso8601 (GTimeVal *time_) __attribute__((__malloc__));
6669 typedef struct _GTree GTree;
6670 typedef gboolean (*GTraverseFunc) (gpointer key,
6671 gpointer value,
6672 gpointer data);
6673 GTree* g_tree_new (GCompareFunc key_compare_func);
6674 GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func,
6675 gpointer key_compare_data);
6676 GTree* g_tree_new_full (GCompareDataFunc key_compare_func,
6677 gpointer key_compare_data,
6678 GDestroyNotify key_destroy_func,
6679 GDestroyNotify value_destroy_func);
6680 void g_tree_destroy (GTree *tree);
6681 void g_tree_insert (GTree *tree,
6682 gpointer key,
6683 gpointer value);
6684 void g_tree_replace (GTree *tree,
6685 gpointer key,
6686 gpointer value);
6687 gboolean g_tree_remove (GTree *tree,
6688 gconstpointer key);
6689 gboolean g_tree_steal (GTree *tree,
6690 gconstpointer key);
6691 gpointer g_tree_lookup (GTree *tree,
6692 gconstpointer key);
6693 gboolean g_tree_lookup_extended (GTree *tree,
6694 gconstpointer lookup_key,
6695 gpointer *orig_key,
6696 gpointer *value);
6697 void g_tree_foreach (GTree *tree,
6698 GTraverseFunc func,
6699 gpointer user_data);
6700 void g_tree_traverse (GTree *tree,
6701 GTraverseFunc traverse_func,
6702 GTraverseType traverse_type,
6703 gpointer user_data);
6704 gpointer g_tree_search (GTree *tree,
6705 GCompareFunc search_func,
6706 gconstpointer user_data);
6707 gint g_tree_height (GTree *tree);
6708 gint g_tree_nnodes (GTree *tree);
6709 char * g_uri_unescape_string (const char *escaped_string,
6710 const char *illegal_characters);
6711 char * g_uri_unescape_segment (const char *escaped_string,
6712 const char *escaped_string_end,
6713 const char *illegal_characters);
6714 char * g_uri_parse_scheme (const char *uri);
6715 char * g_uri_escape_string (const char *unescaped,
6716 const char *reserved_chars_allowed,
6717 gboolean allow_utf8);
6718 typedef gsize GType;
6719 typedef struct _GValue GValue;
6720 typedef union _GTypeCValue GTypeCValue;
6721 typedef struct _GTypePlugin GTypePlugin;
6722 typedef struct _GTypeClass GTypeClass;
6723 typedef struct _GTypeInterface GTypeInterface;
6724 typedef struct _GTypeInstance GTypeInstance;
6725 typedef struct _GTypeInfo GTypeInfo;
6726 typedef struct _GTypeFundamentalInfo GTypeFundamentalInfo;
6727 typedef struct _GInterfaceInfo GInterfaceInfo;
6728 typedef struct _GTypeValueTable GTypeValueTable;
6729 typedef struct _GTypeQuery GTypeQuery;
6730 struct _GTypeClass
6731 {
6732 GType g_type;
6733 };
6734 struct _GTypeInstance
6735 {
6736 GTypeClass *g_class;
6737 };
6738 struct _GTypeInterface
6739 {
6740 GType g_type;
6741 GType g_instance_type;
6742 };
6743 struct _GTypeQuery
6744 {
6745 GType type;
6746 const gchar *type_name;
6747 guint class_size;
6748 guint instance_size;
6749 };
6750 typedef enum
6751 {
6752 G_TYPE_DEBUG_NONE = 0,
6753 G_TYPE_DEBUG_OBJECTS = 1 << 0,
6754 G_TYPE_DEBUG_SIGNALS = 1 << 1,
6755 G_TYPE_DEBUG_MASK = 0x03
6756 } GTypeDebugFlags;
6757 void g_type_init (void);
6758 void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags);
6759 const gchar* g_type_name (GType type);
6760 GQuark g_type_qname (GType type);
6761 GType g_type_from_name (const gchar *name);
6762 GType g_type_parent (GType type);
6763 guint g_type_depth (GType type);
6764 GType g_type_next_base (GType leaf_type,
6765 GType root_type);
6766 gboolean g_type_is_a (GType type,
6767 GType is_a_type);
6768 gpointer g_type_class_ref (GType type);
6769 gpointer g_type_class_peek (GType type);
6770 gpointer g_type_class_peek_static (GType type);
6771 void g_type_class_unref (gpointer g_class);
6772 gpointer g_type_class_peek_parent (gpointer g_class);
6773 gpointer g_type_interface_peek (gpointer instance_class,
6774 GType iface_type);
6775 gpointer g_type_interface_peek_parent (gpointer g_iface);
6776 gpointer g_type_default_interface_ref (GType g_type);
6777 gpointer g_type_default_interface_peek (GType g_type);
6778 void g_type_default_interface_unref (gpointer g_iface);
6779 GType* g_type_children (GType type,
6780 guint *n_children);
6781 GType* g_type_interfaces (GType type,
6782 guint *n_interfaces);
6783 void g_type_set_qdata (GType type,
6784 GQuark quark,
6785 gpointer data);
6786 gpointer g_type_get_qdata (GType type,
6787 GQuark quark);
6788 void g_type_query (GType type,
6789 GTypeQuery *query);
6790 typedef void (*GBaseInitFunc) (gpointer g_class);
6791 typedef void (*GBaseFinalizeFunc) (gpointer g_class);
6792 typedef void (*GClassInitFunc) (gpointer g_class,
6793 gpointer class_data);
6794 typedef void (*GClassFinalizeFunc) (gpointer g_class,
6795 gpointer class_data);
6796 typedef void (*GInstanceInitFunc) (GTypeInstance *instance,
6797 gpointer g_class);
6798 typedef void (*GInterfaceInitFunc) (gpointer g_iface,
6799 gpointer iface_data);
6800 typedef void (*GInterfaceFinalizeFunc) (gpointer g_iface,
6801 gpointer iface_data);
6802 typedef gboolean (*GTypeClassCacheFunc) (gpointer cache_data,
6803 GTypeClass *g_class);
6804 typedef void (*GTypeInterfaceCheckFunc) (gpointer check_data,
6805 gpointer g_iface);
6806 typedef enum
6807 {
6808 G_TYPE_FLAG_CLASSED = (1 << 0),
6809 G_TYPE_FLAG_INSTANTIATABLE = (1 << 1),
6810 G_TYPE_FLAG_DERIVABLE = (1 << 2),
6811 G_TYPE_FLAG_DEEP_DERIVABLE = (1 << 3)
6812 } GTypeFundamentalFlags;
6813 typedef enum
6814 {
6815 G_TYPE_FLAG_ABSTRACT = (1 << 4),
6816 G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5)
6817 } GTypeFlags;
6818 struct _GTypeInfo
6819 {
6820 guint16 class_size;
6821 GBaseInitFunc base_init;
6822 GBaseFinalizeFunc base_finalize;
6823 GClassInitFunc class_init;
6824 GClassFinalizeFunc class_finalize;
6825 gconstpointer class_data;
6826 guint16 instance_size;
6827 guint16 n_preallocs;
6828 GInstanceInitFunc instance_init;
6829 const GTypeValueTable *value_table;
6830 };
6831 struct _GTypeFundamentalInfo
6832 {
6833 GTypeFundamentalFlags type_flags;
6834 };
6835 struct _GInterfaceInfo
6836 {
6837 GInterfaceInitFunc interface_init;
6838 GInterfaceFinalizeFunc interface_finalize;
6839 gpointer interface_data;
6840 };
6841 struct _GTypeValueTable
6842 {
6843 void (*value_init) (GValue *value);
6844 void (*value_free) (GValue *value);
6845 void (*value_copy) (const GValue *src_value,
6846 GValue *dest_value);
6847 gpointer (*value_peek_pointer) (const GValue *value);
6848 gchar *collect_format;
6849 gchar* (*collect_value) (GValue *value,
6850 guint n_collect_values,
6851 GTypeCValue *collect_values,
6852 guint collect_flags);
6853 gchar *lcopy_format;
6854 gchar* (*lcopy_value) (const GValue *value,
6855 guint n_collect_values,
6856 GTypeCValue *collect_values,
6857 guint collect_flags);
6858 };
6859 GType g_type_register_static (GType parent_type,
6860 const gchar *type_name,
6861 const GTypeInfo *info,
6862 GTypeFlags flags);
6863 GType g_type_register_static_simple (GType parent_type,
6864 const gchar *type_name,
6865 guint class_size,
6866 GClassInitFunc class_init,
6867 guint instance_size,
6868 GInstanceInitFunc instance_init,
6869 GTypeFlags flags);
6870 GType g_type_register_dynamic (GType parent_type,
6871 const gchar *type_name,
6872 GTypePlugin *plugin,
6873 GTypeFlags flags);
6874 GType g_type_register_fundamental (GType type_id,
6875 const gchar *type_name,
6876 const GTypeInfo *info,
6877 const GTypeFundamentalInfo *finfo,
6878 GTypeFlags flags);
6879 void g_type_add_interface_static (GType instance_type,
6880 GType interface_type,
6881 const GInterfaceInfo *info);
6882 void g_type_add_interface_dynamic (GType instance_type,
6883 GType interface_type,
6884 GTypePlugin *plugin);
6885 void g_type_interface_add_prerequisite (GType interface_type,
6886 GType prerequisite_type);
6887 GType*g_type_interface_prerequisites (GType interface_type,
6888 guint *n_prerequisites);
6889 void g_type_class_add_private (gpointer g_class,
6890 gsize private_size);
6891 gpointer g_type_instance_get_private (GTypeInstance *instance,
6892 GType private_type);
6893 GTypePlugin* g_type_get_plugin (GType type);
6894 GTypePlugin* g_type_interface_get_plugin (GType instance_type,
6895 GType interface_type);
6896 GType g_type_fundamental_next (void);
6897 GType g_type_fundamental (GType type_id);
6898 GTypeInstance* g_type_create_instance (GType type);
6899 void g_type_free_instance (GTypeInstance *instance);
6900 void g_type_add_class_cache_func (gpointer cache_data,
6901 GTypeClassCacheFunc cache_func);
6902 void g_type_remove_class_cache_func (gpointer cache_data,
6903 GTypeClassCacheFunc cache_func);
6904 void g_type_class_unref_uncached (gpointer g_class);
6905 void g_type_add_interface_check (gpointer check_data,
6906 GTypeInterfaceCheckFunc check_func);
6907 void g_type_remove_interface_check (gpointer check_data,
6908 GTypeInterfaceCheckFunc check_func);
6909 GTypeValueTable* g_type_value_table_peek (GType type);
6910 gboolean g_type_check_instance (GTypeInstance *instance) __attribute__((__pure__));
6911 GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance,
6912 GType iface_type);
6913 gboolean g_type_check_instance_is_a (GTypeInstance *instance,
6914 GType iface_type) __attribute__((__pure__));
6915 GTypeClass* g_type_check_class_cast (GTypeClass *g_class,
6916 GType is_a_type);
6917 gboolean g_type_check_class_is_a (GTypeClass *g_class,
6918 GType is_a_type) __attribute__((__pure__));
6919 gboolean g_type_check_is_value_type (GType type) __attribute__((__const__));
6920 gboolean g_type_check_value (GValue *value) __attribute__((__pure__));
6921 gboolean g_type_check_value_holds (GValue *value,
6922 GType type) __attribute__((__pure__));
6923 gboolean g_type_test_flags (GType type,
6924 guint flags) __attribute__((__const__));
6925 const gchar* g_type_name_from_instance (GTypeInstance *instance);
6926 const gchar* g_type_name_from_class (GTypeClass *g_class);
6927 __attribute__((visibility("hidden"))) void g_value_c_init (void);
6928 __attribute__((visibility("hidden"))) void g_value_types_init (void);
6929 __attribute__((visibility("hidden"))) void g_enum_types_init (void);
6930 __attribute__((visibility("hidden"))) void g_param_type_init (void);
6931 __attribute__((visibility("hidden"))) void g_boxed_type_init (void);
6932 __attribute__((visibility("hidden"))) void g_object_type_init (void);
6933 __attribute__((visibility("hidden"))) void g_param_spec_types_init (void);
6934 __attribute__((visibility("hidden"))) void g_value_transforms_init (void);
6935 __attribute__((visibility("hidden"))) void g_signal_init (void);
6936 extern GTypeDebugFlags _g_type_debug_flags;
6937 typedef gpointer (*GBoxedCopyFunc) (gpointer boxed);
6938 typedef void (*GBoxedFreeFunc) (gpointer boxed);
6939 gpointer g_boxed_copy (GType boxed_type,
6940 gconstpointer src_boxed);
6941 void g_boxed_free (GType boxed_type,
6942 gpointer boxed);
6943 void g_value_set_boxed (GValue *value,
6944 gconstpointer v_boxed);
6945 void g_value_set_static_boxed (GValue *value,
6946 gconstpointer v_boxed);
6947 gpointer g_value_get_boxed (const GValue *value);
6948 gpointer g_value_dup_boxed (const GValue *value);
6949 GType g_boxed_type_register_static (const gchar *name,
6950 GBoxedCopyFunc boxed_copy,
6951 GBoxedFreeFunc boxed_free);
6952 void g_value_take_boxed (GValue *value,
6953 gconstpointer v_boxed);
6954 void g_value_set_boxed_take_ownership (GValue *value,
6955 gconstpointer v_boxed);
6956 GType g_closure_get_type (void) __attribute__((__const__));
6957 GType g_value_get_type (void) __attribute__((__const__));
6958 GType g_value_array_get_type (void) __attribute__((__const__));
6959 GType g_date_get_type (void) __attribute__((__const__));
6960 GType g_strv_get_type (void) __attribute__((__const__));
6961 GType g_gstring_get_type (void) __attribute__((__const__));
6962 GType g_hash_table_get_type (void) __attribute__((__const__));
6963 GType g_regex_get_type (void) __attribute__((__const__));
6964 typedef gchar** GStrv;
6965 typedef struct _GEnumClass GEnumClass;
6966 typedef struct _GFlagsClass GFlagsClass;
6967 typedef struct _GEnumValue GEnumValue;
6968 typedef struct _GFlagsValue GFlagsValue;
6969 struct _GEnumClass
6970 {
6971 GTypeClass g_type_class;
6972 gint minimum;
6973 gint maximum;
6974 guint n_values;
6975 GEnumValue *values;
6976 };
6977 struct _GFlagsClass
6978 {
6979 GTypeClass g_type_class;
6980 guint mask;
6981 guint n_values;
6982 GFlagsValue *values;
6983 };
6984 struct _GEnumValue
6985 {
6986 gint value;
6987 const gchar *value_name;
6988 const gchar *value_nick;
6989 };
6990 struct _GFlagsValue
6991 {
6992 guint value;
6993 const gchar *value_name;
6994 const gchar *value_nick;
6995 };
6996 GEnumValue* g_enum_get_value (GEnumClass *enum_class,
6997 gint value);
6998 GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class,
6999 const gchar *name);
7000 GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class,
7001 const gchar *nick);
7002 GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class,
7003 guint value);
7004 GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class,
7005 const gchar *name);
7006 GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class,
7007 const gchar *nick);
7008 void g_value_set_enum (GValue *value,
7009 gint v_enum);
7010 gint g_value_get_enum (const GValue *value);
7011 void g_value_set_flags (GValue *value,
7012 guint v_flags);
7013 guint g_value_get_flags (const GValue *value);
7014 GType g_enum_register_static (const gchar *name,
7015 const GEnumValue *const_static_values);
7016 GType g_flags_register_static (const gchar *name,
7017 const GFlagsValue *const_static_values);
7018 void g_enum_complete_type_info (GType g_enum_type,
7019 GTypeInfo *info,
7020 const GEnumValue *const_values);
7021 void g_flags_complete_type_info (GType g_flags_type,
7022 GTypeInfo *info,
7023 const GFlagsValue *const_values);
7024 typedef void (*GValueTransform) (const GValue *src_value,
7025 GValue *dest_value);
7026 struct _GValue
7027 {
7028 GType g_type;
7029 union {
7030 gint v_int;
7031 guint v_uint;
7032 glong v_long;
7033 gulong v_ulong;
7034 gint64 v_int64;
7035 guint64 v_uint64;
7036 gfloat v_float;
7037 gdouble v_double;
7038 gpointer v_pointer;
7039 } data[2];
7040 };
7041 GValue* g_value_init (GValue *value,
7042 GType g_type);
7043 void g_value_copy (const GValue *src_value,
7044 GValue *dest_value);
7045 GValue* g_value_reset (GValue *value);
7046 void g_value_unset (GValue *value);
7047 void g_value_set_instance (GValue *value,
7048 gpointer instance);
7049 gboolean g_value_fits_pointer (const GValue *value);
7050 gpointer g_value_peek_pointer (const GValue *value);
7051 gboolean g_value_type_compatible (GType src_type,
7052 GType dest_type);
7053 gboolean g_value_type_transformable (GType src_type,
7054 GType dest_type);
7055 gboolean g_value_transform (const GValue *src_value,
7056 GValue *dest_value);
7057 void g_value_register_transform_func (GType src_type,
7058 GType dest_type,
7059 GValueTransform transform_func);
7060 typedef enum
7061 {
7062 G_PARAM_READABLE = 1 << 0,
7063 G_PARAM_WRITABLE = 1 << 1,
7064 G_PARAM_CONSTRUCT = 1 << 2,
7065 G_PARAM_CONSTRUCT_ONLY = 1 << 3,
7066 G_PARAM_LAX_VALIDATION = 1 << 4,
7067 G_PARAM_STATIC_NAME = 1 << 5,
7068 G_PARAM_PRIVATE = G_PARAM_STATIC_NAME,
7069 G_PARAM_STATIC_NICK = 1 << 6,
7070 G_PARAM_STATIC_BLURB = 1 << 7
7071 } GParamFlags;
7072 typedef struct _GParamSpec GParamSpec;
7073 typedef struct _GParamSpecClass GParamSpecClass;
7074 typedef struct _GParameter GParameter;
7075 typedef struct _GParamSpecPool GParamSpecPool;
7076 struct _GParamSpec
7077 {
7078 GTypeInstance g_type_instance;
7079 gchar *name;
7080 GParamFlags flags;
7081 GType value_type;
7082 GType owner_type;
7083 gchar *_nick;
7084 gchar *_blurb;
7085 GData *qdata;
7086 guint ref_count;
7087 guint param_id;
7088 };
7089 struct _GParamSpecClass
7090 {
7091 GTypeClass g_type_class;
7092 GType value_type;
7093 void (*finalize) (GParamSpec *pspec);
7094 void (*value_set_default) (GParamSpec *pspec,
7095 GValue *value);
7096 gboolean (*value_validate) (GParamSpec *pspec,
7097 GValue *value);
7098 gint (*values_cmp) (GParamSpec *pspec,
7099 const GValue *value1,
7100 const GValue *value2);
7101 gpointer dummy[4];
7102 };
7103 struct _GParameter
7104 {
7105 const gchar *name;
7106 GValue value;
7107 };
7108 GParamSpec* g_param_spec_ref (GParamSpec *pspec);
7109 void g_param_spec_unref (GParamSpec *pspec);
7110 void g_param_spec_sink (GParamSpec *pspec);
7111 GParamSpec* g_param_spec_ref_sink (GParamSpec *pspec);
7112 gpointer g_param_spec_get_qdata (GParamSpec *pspec,
7113 GQuark quark);
7114 void g_param_spec_set_qdata (GParamSpec *pspec,
7115 GQuark quark,
7116 gpointer data);
7117 void g_param_spec_set_qdata_full (GParamSpec *pspec,
7118 GQuark quark,
7119 gpointer data,
7120 GDestroyNotify destroy);
7121 gpointer g_param_spec_steal_qdata (GParamSpec *pspec,
7122 GQuark quark);
7123 GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec);
7124 void g_param_value_set_default (GParamSpec *pspec,
7125 GValue *value);
7126 gboolean g_param_value_defaults (GParamSpec *pspec,
7127 GValue *value);
7128 gboolean g_param_value_validate (GParamSpec *pspec,
7129 GValue *value);
7130 gboolean g_param_value_convert (GParamSpec *pspec,
7131 const GValue *src_value,
7132 GValue *dest_value,
7133 gboolean strict_validation);
7134 gint g_param_values_cmp (GParamSpec *pspec,
7135 const GValue *value1,
7136 const GValue *value2);
7137 const gchar* g_param_spec_get_name (GParamSpec *pspec);
7138 const gchar* g_param_spec_get_nick (GParamSpec *pspec);
7139 const gchar* g_param_spec_get_blurb (GParamSpec *pspec);
7140 void g_value_set_param (GValue *value,
7141 GParamSpec *param);
7142 GParamSpec* g_value_get_param (const GValue *value);
7143 GParamSpec* g_value_dup_param (const GValue *value);
7144 void g_value_take_param (GValue *value,
7145 GParamSpec *param);
7146 void g_value_set_param_take_ownership (GValue *value,
7147 GParamSpec *param);
7148 typedef struct _GParamSpecTypeInfo GParamSpecTypeInfo;
7149 struct _GParamSpecTypeInfo
7150 {
7151 guint16 instance_size;
7152 guint16 n_preallocs;
7153 void (*instance_init) (GParamSpec *pspec);
7154 GType value_type;
7155 void (*finalize) (GParamSpec *pspec);
7156 void (*value_set_default) (GParamSpec *pspec,
7157 GValue *value);
7158 gboolean (*value_validate) (GParamSpec *pspec,
7159 GValue *value);
7160 gint (*values_cmp) (GParamSpec *pspec,
7161 const GValue *value1,
7162 const GValue *value2);
7163 };
7164 GType g_param_type_register_static (const gchar *name,
7165 const GParamSpecTypeInfo *pspec_info);
7166 GType _g_param_type_register_static_constant (const gchar *name,
7167 const GParamSpecTypeInfo *pspec_info,
7168 GType opt_type);
7169 gpointer g_param_spec_internal (GType param_type,
7170 const gchar *name,
7171 const gchar *nick,
7172 const gchar *blurb,
7173 GParamFlags flags);
7174 GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing);
7175 void g_param_spec_pool_insert (GParamSpecPool *pool,
7176 GParamSpec *pspec,
7177 GType owner_type);
7178 void g_param_spec_pool_remove (GParamSpecPool *pool,
7179 GParamSpec *pspec);
7180 GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool,
7181 const gchar *param_name,
7182 GType owner_type,
7183 gboolean walk_ancestors);
7184 GList* g_param_spec_pool_list_owned (GParamSpecPool *pool,
7185 GType owner_type);
7186 GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
7187 GType owner_type,
7188 guint *n_pspecs_p);
7189 typedef struct _GClosure GClosure;
7190 typedef struct _GClosureNotifyData GClosureNotifyData;
7191 typedef void (*GCallback) (void);
7192 typedef void (*GClosureNotify) (gpointer data,
7193 GClosure *closure);
7194 typedef void (*GClosureMarshal) (GClosure *closure,
7195 GValue *return_value,
7196 guint n_param_values,
7197 const GValue *param_values,
7198 gpointer invocation_hint,
7199 gpointer marshal_data);
7200 typedef struct _GCClosure GCClosure;
7201 struct _GClosureNotifyData
7202 {
7203 gpointer data;
7204 GClosureNotify notify;
7205 };
7206 struct _GClosure
7207 {
7208 volatile guint ref_count : 15;
7209 volatile guint meta_marshal : 1;
7210 volatile guint n_guards : 1;
7211 volatile guint n_fnotifiers : 2;
7212 volatile guint n_inotifiers : 8;
7213 volatile guint in_inotify : 1;
7214 volatile guint floating : 1;
7215 volatile guint derivative_flag : 1;
7216 volatile guint in_marshal : 1;
7217 volatile guint is_invalid : 1;
7218 void (*marshal) (GClosure *closure,
7219 GValue *return_value,
7220 guint n_param_values,
7221 const GValue *param_values,
7222 gpointer invocation_hint,
7223 gpointer marshal_data);
7224 gpointer data;
7225 GClosureNotifyData *notifiers;
7226 };
7227 struct _GCClosure
7228 {
7229 GClosure closure;
7230 gpointer callback;
7231 };
7232 GClosure* g_cclosure_new (GCallback callback_func,
7233 gpointer user_data,
7234 GClosureNotify destroy_data);
7235 GClosure* g_cclosure_new_swap (GCallback callback_func,
7236 gpointer user_data,
7237 GClosureNotify destroy_data);
7238 GClosure* g_signal_type_cclosure_new (GType itype,
7239 guint struct_offset);
7240 GClosure* g_closure_ref (GClosure *closure);
7241 void g_closure_sink (GClosure *closure);
7242 void g_closure_unref (GClosure *closure);
7243 GClosure* g_closure_new_simple (guint sizeof_closure,
7244 gpointer data);
7245 void g_closure_add_finalize_notifier (GClosure *closure,
7246 gpointer notify_data,
7247 GClosureNotify notify_func);
7248 void g_closure_remove_finalize_notifier (GClosure *closure,
7249 gpointer notify_data,
7250 GClosureNotify notify_func);
7251 void g_closure_add_invalidate_notifier (GClosure *closure,
7252 gpointer notify_data,
7253 GClosureNotify notify_func);
7254 void g_closure_remove_invalidate_notifier (GClosure *closure,
7255 gpointer notify_data,
7256 GClosureNotify notify_func);
7257 void g_closure_add_marshal_guards (GClosure *closure,
7258 gpointer pre_marshal_data,
7259 GClosureNotify pre_marshal_notify,
7260 gpointer post_marshal_data,
7261 GClosureNotify post_marshal_notify);
7262 void g_closure_set_marshal (GClosure *closure,
7263 GClosureMarshal marshal);
7264 void g_closure_set_meta_marshal (GClosure *closure,
7265 gpointer marshal_data,
7266 GClosureMarshal meta_marshal);
7267 void g_closure_invalidate (GClosure *closure);
7268 void g_closure_invoke (GClosure *closure,
7269 GValue *return_value,
7270 guint n_param_values,
7271 const GValue *param_values,
7272 gpointer invocation_hint);
7273 extern void g_cclosure_marshal_VOID__VOID (GClosure *closure,
7274 GValue *return_value,
7275 guint n_param_values,
7276 const GValue *param_values,
7277 gpointer invocation_hint,
7278 gpointer marshal_data);
7279 extern void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure,
7280 GValue *return_value,
7281 guint n_param_values,
7282 const GValue *param_values,
7283 gpointer invocation_hint,
7284 gpointer marshal_data);
7285 extern void g_cclosure_marshal_VOID__CHAR (GClosure *closure,
7286 GValue *return_value,
7287 guint n_param_values,
7288 const GValue *param_values,
7289 gpointer invocation_hint,
7290 gpointer marshal_data);
7291 extern void g_cclosure_marshal_VOID__UCHAR (GClosure *closure,
7292 GValue *return_value,
7293 guint n_param_values,
7294 const GValue *param_values,
7295 gpointer invocation_hint,
7296 gpointer marshal_data);
7297 extern void g_cclosure_marshal_VOID__INT (GClosure *closure,
7298 GValue *return_value,
7299 guint n_param_values,
7300 const GValue *param_values,
7301 gpointer invocation_hint,
7302 gpointer marshal_data);
7303 extern void g_cclosure_marshal_VOID__UINT (GClosure *closure,
7304 GValue *return_value,
7305 guint n_param_values,
7306 const GValue *param_values,
7307 gpointer invocation_hint,
7308 gpointer marshal_data);
7309 extern void g_cclosure_marshal_VOID__LONG (GClosure *closure,
7310 GValue *return_value,
7311 guint n_param_values,
7312 const GValue *param_values,
7313 gpointer invocation_hint,
7314 gpointer marshal_data);
7315 extern void g_cclosure_marshal_VOID__ULONG (GClosure *closure,
7316 GValue *return_value,
7317 guint n_param_values,
7318 const GValue *param_values,
7319 gpointer invocation_hint,
7320 gpointer marshal_data);
7321 extern void g_cclosure_marshal_VOID__ENUM (GClosure *closure,
7322 GValue *return_value,
7323 guint n_param_values,
7324 const GValue *param_values,
7325 gpointer invocation_hint,
7326 gpointer marshal_data);
7327 extern void g_cclosure_marshal_VOID__FLAGS (GClosure *closure,
7328 GValue *return_value,
7329 guint n_param_values,
7330 const GValue *param_values,
7331 gpointer invocation_hint,
7332 gpointer marshal_data);
7333 extern void g_cclosure_marshal_VOID__FLOAT (GClosure *closure,
7334 GValue *return_value,
7335 guint n_param_values,
7336 const GValue *param_values,
7337 gpointer invocation_hint,
7338 gpointer marshal_data);
7339 extern void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure,
7340 GValue *return_value,
7341 guint n_param_values,
7342 const GValue *param_values,
7343 gpointer invocation_hint,
7344 gpointer marshal_data);
7345 extern void g_cclosure_marshal_VOID__STRING (GClosure *closure,
7346 GValue *return_value,
7347 guint n_param_values,
7348 const GValue *param_values,
7349 gpointer invocation_hint,
7350 gpointer marshal_data);
7351 extern void g_cclosure_marshal_VOID__PARAM (GClosure *closure,
7352 GValue *return_value,
7353 guint n_param_values,
7354 const GValue *param_values,
7355 gpointer invocation_hint,
7356 gpointer marshal_data);
7357 extern void g_cclosure_marshal_VOID__BOXED (GClosure *closure,
7358 GValue *return_value,
7359 guint n_param_values,
7360 const GValue *param_values,
7361 gpointer invocation_hint,
7362 gpointer marshal_data);
7363 extern void g_cclosure_marshal_VOID__POINTER (GClosure *closure,
7364 GValue *return_value,
7365 guint n_param_values,
7366 const GValue *param_values,
7367 gpointer invocation_hint,
7368 gpointer marshal_data);
7369 extern void g_cclosure_marshal_VOID__OBJECT (GClosure *closure,
7370 GValue *return_value,
7371 guint n_param_values,
7372 const GValue *param_values,
7373 gpointer invocation_hint,
7374 gpointer marshal_data);
7375 extern void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure,
7376 GValue *return_value,
7377 guint n_param_values,
7378 const GValue *param_values,
7379 gpointer invocation_hint,
7380 gpointer marshal_data);
7381 extern void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure,
7382 GValue *return_value,
7383 guint n_param_values,
7384 const GValue *param_values,
7385 gpointer invocation_hint,
7386 gpointer marshal_data);
7387 extern void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure,
7388 GValue *return_value,
7389 guint n_param_values,
7390 const GValue *param_values,
7391 gpointer invocation_hint,
7392 gpointer marshal_data);
7393 typedef struct _GSignalQuery GSignalQuery;
7394 typedef struct _GSignalInvocationHint GSignalInvocationHint;
7395 typedef GClosureMarshal GSignalCMarshaller;
7396 typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,
7397 guint n_param_values,
7398 const GValue *param_values,
7399 gpointer data);
7400 typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,
7401 GValue *return_accu,
7402 const GValue *handler_return,
7403 gpointer data);
7404 typedef enum
7405 {
7406 G_SIGNAL_RUN_FIRST = 1 << 0,
7407 G_SIGNAL_RUN_LAST = 1 << 1,
7408 G_SIGNAL_RUN_CLEANUP = 1 << 2,
7409 G_SIGNAL_NO_RECURSE = 1 << 3,
7410 G_SIGNAL_DETAILED = 1 << 4,
7411 G_SIGNAL_ACTION = 1 << 5,
7412 G_SIGNAL_NO_HOOKS = 1 << 6
7413 } GSignalFlags;
7414 typedef enum
7415 {
7416 G_CONNECT_AFTER = 1 << 0,
7417 G_CONNECT_SWAPPED = 1 << 1
7418 } GConnectFlags;
7419 typedef enum
7420 {
7421 G_SIGNAL_MATCH_ID = 1 << 0,
7422 G_SIGNAL_MATCH_DETAIL = 1 << 1,
7423 G_SIGNAL_MATCH_CLOSURE = 1 << 2,
7424 G_SIGNAL_MATCH_FUNC = 1 << 3,
7425 G_SIGNAL_MATCH_DATA = 1 << 4,
7426 G_SIGNAL_MATCH_UNBLOCKED = 1 << 5
7427 } GSignalMatchType;
7428 struct _GSignalInvocationHint
7429 {
7430 guint signal_id;
7431 GQuark detail;
7432 GSignalFlags run_type;
7433 };
7434 struct _GSignalQuery
7435 {
7436 guint signal_id;
7437 const gchar *signal_name;
7438 GType itype;
7439 GSignalFlags signal_flags;
7440 GType return_type;
7441 guint n_params;
7442 const GType *param_types;
7443 };
7444 guint g_signal_newv (const gchar *signal_name,
7445 GType itype,
7446 GSignalFlags signal_flags,
7447 GClosure *class_closure,
7448 GSignalAccumulator accumulator,
7449 gpointer accu_data,
7450 GSignalCMarshaller c_marshaller,
7451 GType return_type,
7452 guint n_params,
7453 GType *param_types);
7454 guint g_signal_new_valist (const gchar *signal_name,
7455 GType itype,
7456 GSignalFlags signal_flags,
7457 GClosure *class_closure,
7458 GSignalAccumulator accumulator,
7459 gpointer accu_data,
7460 GSignalCMarshaller c_marshaller,
7461 GType return_type,
7462 guint n_params,
7463 va_list args);
7464 guint g_signal_new (const gchar *signal_name,
7465 GType itype,
7466 GSignalFlags signal_flags,
7467 guint class_offset,
7468 GSignalAccumulator accumulator,
7469 gpointer accu_data,
7470 GSignalCMarshaller c_marshaller,
7471 GType return_type,
7472 guint n_params,
7473 ...);
7474 guint g_signal_new_class_handler (const gchar *signal_name,
7475 GType itype,
7476 GSignalFlags signal_flags,
7477 GCallback class_handler,
7478 GSignalAccumulator accumulator,
7479 gpointer accu_data,
7480 GSignalCMarshaller c_marshaller,
7481 GType return_type,
7482 guint n_params,
7483 ...);
7484 void g_signal_emitv (const GValue *instance_and_params,
7485 guint signal_id,
7486 GQuark detail,
7487 GValue *return_value);
7488 void g_signal_emit_valist (gpointer instance,
7489 guint signal_id,
7490 GQuark detail,
7491 va_list var_args);
7492 void g_signal_emit (gpointer instance,
7493 guint signal_id,
7494 GQuark detail,
7495 ...);
7496 void g_signal_emit_by_name (gpointer instance,
7497 const gchar *detailed_signal,
7498 ...);
7499 guint g_signal_lookup (const gchar *name,
7500 GType itype);
7501 const gchar* g_signal_name (guint signal_id);
7502 void g_signal_query (guint signal_id,
7503 GSignalQuery *query);
7504 guint* g_signal_list_ids (GType itype,
7505 guint *n_ids);
7506 gboolean g_signal_parse_name (const gchar *detailed_signal,
7507 GType itype,
7508 guint *signal_id_p,
7509 GQuark *detail_p,
7510 gboolean force_detail_quark);
7511 GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance);
7512 void g_signal_stop_emission (gpointer instance,
7513 guint signal_id,
7514 GQuark detail);
7515 void g_signal_stop_emission_by_name (gpointer instance,
7516 const gchar *detailed_signal);
7517 gulong g_signal_add_emission_hook (guint signal_id,
7518 GQuark detail,
7519 GSignalEmissionHook hook_func,
7520 gpointer hook_data,
7521 GDestroyNotify data_destroy);
7522 void g_signal_remove_emission_hook (guint signal_id,
7523 gulong hook_id);
7524 gboolean g_signal_has_handler_pending (gpointer instance,
7525 guint signal_id,
7526 GQuark detail,
7527 gboolean may_be_blocked);
7528 gulong g_signal_connect_closure_by_id (gpointer instance,
7529 guint signal_id,
7530 GQuark detail,
7531 GClosure *closure,
7532 gboolean after);
7533 gulong g_signal_connect_closure (gpointer instance,
7534 const gchar *detailed_signal,
7535 GClosure *closure,
7536 gboolean after);
7537 gulong g_signal_connect_data (gpointer instance,
7538 const gchar *detailed_signal,
7539 GCallback c_handler,
7540 gpointer data,
7541 GClosureNotify destroy_data,
7542 GConnectFlags connect_flags);
7543 void g_signal_handler_block (gpointer instance,
7544 gulong handler_id);
7545 void g_signal_handler_unblock (gpointer instance,
7546 gulong handler_id);
7547 void g_signal_handler_disconnect (gpointer instance,
7548 gulong handler_id);
7549 gboolean g_signal_handler_is_connected (gpointer instance,
7550 gulong handler_id);
7551 gulong g_signal_handler_find (gpointer instance,
7552 GSignalMatchType mask,
7553 guint signal_id,
7554 GQuark detail,
7555 GClosure *closure,
7556 gpointer func,
7557 gpointer data);
7558 guint g_signal_handlers_block_matched (gpointer instance,
7559 GSignalMatchType mask,
7560 guint signal_id,
7561 GQuark detail,
7562 GClosure *closure,
7563 gpointer func,
7564 gpointer data);
7565 guint g_signal_handlers_unblock_matched (gpointer instance,
7566 GSignalMatchType mask,
7567 guint signal_id,
7568 GQuark detail,
7569 GClosure *closure,
7570 gpointer func,
7571 gpointer data);
7572 guint g_signal_handlers_disconnect_matched (gpointer instance,
7573 GSignalMatchType mask,
7574 guint signal_id,
7575 GQuark detail,
7576 GClosure *closure,
7577 gpointer func,
7578 gpointer data);
7579 void g_signal_override_class_closure (guint signal_id,
7580 GType instance_type,
7581 GClosure *class_closure);
7582 void g_signal_override_class_handler (const gchar *signal_name,
7583 GType instance_type,
7584 GCallback class_handler);
7585 void g_signal_chain_from_overridden (const GValue *instance_and_params,
7586 GValue *return_value);
7587 void g_signal_chain_from_overridden_handler (gpointer instance,
7588 ...);
7589 gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
7590 GValue *return_accu,
7591 const GValue *handler_return,
7592 gpointer dummy);
7593 void g_signal_handlers_destroy (gpointer instance);
7594 void _g_signals_destroy (GType itype);
7595 typedef struct _GObject GObject;
7596 typedef struct _GObjectClass GObjectClass;
7597 typedef struct _GObject GInitiallyUnowned;
7598 typedef struct _GObjectClass GInitiallyUnownedClass;
7599 typedef struct _GObjectConstructParam GObjectConstructParam;
7600 typedef void (*GObjectGetPropertyFunc) (GObject *object,
7601 guint property_id,
7602 GValue *value,
7603 GParamSpec *pspec);
7604 typedef void (*GObjectSetPropertyFunc) (GObject *object,
7605 guint property_id,
7606 const GValue *value,
7607 GParamSpec *pspec);
7608 typedef void (*GObjectFinalizeFunc) (GObject *object);
7609 typedef void (*GWeakNotify) (gpointer data,
7610 GObject *where_the_object_was);
7611 struct _GObject
7612 {
7613 GTypeInstance g_type_instance;
7614 volatile guint ref_count;
7615 GData *qdata;
7616 };
7617 struct _GObjectClass
7618 {
7619 GTypeClass g_type_class;
7620 GSList *construct_properties;
7621 GObject* (*constructor) (GType type,
7622 guint n_construct_properties,
7623 GObjectConstructParam *construct_properties);
7624 void (*set_property) (GObject *object,
7625 guint property_id,
7626 const GValue *value,
7627 GParamSpec *pspec);
7628 void (*get_property) (GObject *object,
7629 guint property_id,
7630 GValue *value,
7631 GParamSpec *pspec);
7632 void (*dispose) (GObject *object);
7633 void (*finalize) (GObject *object);
7634 void (*dispatch_properties_changed) (GObject *object,
7635 guint n_pspecs,
7636 GParamSpec **pspecs);
7637 void (*notify) (GObject *object,
7638 GParamSpec *pspec);
7639 void (*constructed) (GObject *object);
7640 gpointer pdummy[7];
7641 };
7642 struct _GObjectConstructParam
7643 {
7644 GParamSpec *pspec;
7645 GValue *value;
7646 };
7647 GType g_initially_unowned_get_type (void);
7648 void g_object_class_install_property (GObjectClass *oclass,
7649 guint property_id,
7650 GParamSpec *pspec);
7651 GParamSpec* g_object_class_find_property (GObjectClass *oclass,
7652 const gchar *property_name);
7653 GParamSpec**g_object_class_list_properties (GObjectClass *oclass,
7654 guint *n_properties);
7655 void g_object_class_override_property (GObjectClass *oclass,
7656 guint property_id,
7657 const gchar *name);
7658 void g_object_interface_install_property (gpointer g_iface,
7659 GParamSpec *pspec);
7660 GParamSpec* g_object_interface_find_property (gpointer g_iface,
7661 const gchar *property_name);
7662 GParamSpec**g_object_interface_list_properties (gpointer g_iface,
7663 guint *n_properties_p);
7664 GType g_object_get_type (void) __attribute__((__const__));
7665 gpointer g_object_new (GType object_type,
7666 const gchar *first_property_name,
7667 ...);
7668 gpointer g_object_newv (GType object_type,
7669 guint n_parameters,
7670 GParameter *parameters);
7671 GObject* g_object_new_valist (GType object_type,
7672 const gchar *first_property_name,
7673 va_list var_args);
7674 void g_object_set (gpointer object,
7675 const gchar *first_property_name,
7676 ...) __attribute__((__sentinel__));
7677 void g_object_get (gpointer object,
7678 const gchar *first_property_name,
7679 ...) __attribute__((__sentinel__));
7680 gpointer g_object_connect (gpointer object,
7681 const gchar *signal_spec,
7682 ...) __attribute__((__sentinel__));
7683 void g_object_disconnect (gpointer object,
7684 const gchar *signal_spec,
7685 ...) __attribute__((__sentinel__));
7686 void g_object_set_valist (GObject *object,
7687 const gchar *first_property_name,
7688 va_list var_args);
7689 void g_object_get_valist (GObject *object,
7690 const gchar *first_property_name,
7691 va_list var_args);
7692 void g_object_set_property (GObject *object,
7693 const gchar *property_name,
7694 const GValue *value);
7695 void g_object_get_property (GObject *object,
7696 const gchar *property_name,
7697 GValue *value);
7698 void g_object_freeze_notify (GObject *object);
7699 void g_object_notify (GObject *object,
7700 const gchar *property_name);
7701 void g_object_thaw_notify (GObject *object);
7702 gboolean g_object_is_floating (gpointer object);
7703 gpointer g_object_ref_sink (gpointer object);
7704 gpointer g_object_ref (gpointer object);
7705 void g_object_unref (gpointer object);
7706 void g_object_weak_ref (GObject *object,
7707 GWeakNotify notify,
7708 gpointer data);
7709 void g_object_weak_unref (GObject *object,
7710 GWeakNotify notify,
7711 gpointer data);
7712 void g_object_add_weak_pointer (GObject *object,
7713 gpointer *weak_pointer_location);
7714 void g_object_remove_weak_pointer (GObject *object,
7715 gpointer *weak_pointer_location);
7716 typedef void (*GToggleNotify) (gpointer data,
7717 GObject *object,
7718 gboolean is_last_ref);
7719 void g_object_add_toggle_ref (GObject *object,
7720 GToggleNotify notify,
7721 gpointer data);
7722 void g_object_remove_toggle_ref (GObject *object,
7723 GToggleNotify notify,
7724 gpointer data);
7725 gpointer g_object_get_qdata (GObject *object,
7726 GQuark quark);
7727 void g_object_set_qdata (GObject *object,
7728 GQuark quark,
7729 gpointer data);
7730 void g_object_set_qdata_full (GObject *object,
7731 GQuark quark,
7732 gpointer data,
7733 GDestroyNotify destroy);
7734 gpointer g_object_steal_qdata (GObject *object,
7735 GQuark quark);
7736 gpointer g_object_get_data (GObject *object,
7737 const gchar *key);
7738 void g_object_set_data (GObject *object,
7739 const gchar *key,
7740 gpointer data);
7741 void g_object_set_data_full (GObject *object,
7742 const gchar *key,
7743 gpointer data,
7744 GDestroyNotify destroy);
7745 gpointer g_object_steal_data (GObject *object,
7746 const gchar *key);
7747 void g_object_watch_closure (GObject *object,
7748 GClosure *closure);
7749 GClosure* g_cclosure_new_object (GCallback callback_func,
7750 GObject *object);
7751 GClosure* g_cclosure_new_object_swap (GCallback callback_func,
7752 GObject *object);
7753 GClosure* g_closure_new_object (guint sizeof_closure,
7754 GObject *object);
7755 void g_value_set_object (GValue *value,
7756 gpointer v_object);
7757 gpointer g_value_get_object (const GValue *value);
7758 gpointer g_value_dup_object (const GValue *value);
7759 gulong g_signal_connect_object (gpointer instance,
7760 const gchar *detailed_signal,
7761 GCallback c_handler,
7762 gpointer gobject,
7763 GConnectFlags connect_flags);
7764 void g_object_force_floating (GObject *object);
7765 void g_object_run_dispose (GObject *object);
7766 void g_value_take_object (GValue *value,
7767 gpointer v_object);
7768 void g_value_set_object_take_ownership (GValue *value,
7769 gpointer v_object);
7770 gsize g_object_compat_control (gsize what,
7771 gpointer data);
7772 typedef struct _GParamSpecChar GParamSpecChar;
7773 typedef struct _GParamSpecUChar GParamSpecUChar;
7774 typedef struct _GParamSpecBoolean GParamSpecBoolean;
7775 typedef struct _GParamSpecInt GParamSpecInt;
7776 typedef struct _GParamSpecUInt GParamSpecUInt;
7777 typedef struct _GParamSpecLong GParamSpecLong;
7778 typedef struct _GParamSpecULong GParamSpecULong;
7779 typedef struct _GParamSpecInt64 GParamSpecInt64;
7780 typedef struct _GParamSpecUInt64 GParamSpecUInt64;
7781 typedef struct _GParamSpecUnichar GParamSpecUnichar;
7782 typedef struct _GParamSpecEnum GParamSpecEnum;
7783 typedef struct _GParamSpecFlags GParamSpecFlags;
7784 typedef struct _GParamSpecFloat GParamSpecFloat;
7785 typedef struct _GParamSpecDouble GParamSpecDouble;
7786 typedef struct _GParamSpecString GParamSpecString;
7787 typedef struct _GParamSpecParam GParamSpecParam;
7788 typedef struct _GParamSpecBoxed GParamSpecBoxed;
7789 typedef struct _GParamSpecPointer GParamSpecPointer;
7790 typedef struct _GParamSpecValueArray GParamSpecValueArray;
7791 typedef struct _GParamSpecObject GParamSpecObject;
7792 typedef struct _GParamSpecOverride GParamSpecOverride;
7793 typedef struct _GParamSpecGType GParamSpecGType;
7794 struct _GParamSpecChar
7795 {
7796 GParamSpec parent_instance;
7797 gint8 minimum;
7798 gint8 maximum;
7799 gint8 default_value;
7800 };
7801 struct _GParamSpecUChar
7802 {
7803 GParamSpec parent_instance;
7804 guint8 minimum;
7805 guint8 maximum;
7806 guint8 default_value;
7807 };
7808 struct _GParamSpecBoolean
7809 {
7810 GParamSpec parent_instance;
7811 gboolean default_value;
7812 };
7813 struct _GParamSpecInt
7814 {
7815 GParamSpec parent_instance;
7816 gint minimum;
7817 gint maximum;
7818 gint default_value;
7819 };
7820 struct _GParamSpecUInt
7821 {
7822 GParamSpec parent_instance;
7823 guint minimum;
7824 guint maximum;
7825 guint default_value;
7826 };
7827 struct _GParamSpecLong
7828 {
7829 GParamSpec parent_instance;
7830 glong minimum;
7831 glong maximum;
7832 glong default_value;
7833 };
7834 struct _GParamSpecULong
7835 {
7836 GParamSpec parent_instance;
7837 gulong minimum;
7838 gulong maximum;
7839 gulong default_value;
7840 };
7841 struct _GParamSpecInt64
7842 {
7843 GParamSpec parent_instance;
7844 gint64 minimum;
7845 gint64 maximum;
7846 gint64 default_value;
7847 };
7848 struct _GParamSpecUInt64
7849 {
7850 GParamSpec parent_instance;
7851 guint64 minimum;
7852 guint64 maximum;
7853 guint64 default_value;
7854 };
7855 struct _GParamSpecUnichar
7856 {
7857 GParamSpec parent_instance;
7858 gunichar default_value;
7859 };
7860 struct _GParamSpecEnum
7861 {
7862 GParamSpec parent_instance;
7863 GEnumClass *enum_class;
7864 gint default_value;
7865 };
7866 struct _GParamSpecFlags
7867 {
7868 GParamSpec parent_instance;
7869 GFlagsClass *flags_class;
7870 guint default_value;
7871 };
7872 struct _GParamSpecFloat
7873 {
7874 GParamSpec parent_instance;
7875 gfloat minimum;
7876 gfloat maximum;
7877 gfloat default_value;
7878 gfloat epsilon;
7879 };
7880 struct _GParamSpecDouble
7881 {
7882 GParamSpec parent_instance;
7883 gdouble minimum;
7884 gdouble maximum;
7885 gdouble default_value;
7886 gdouble epsilon;
7887 };
7888 struct _GParamSpecString
7889 {
7890 GParamSpec parent_instance;
7891 gchar *default_value;
7892 gchar *cset_first;
7893 gchar *cset_nth;
7894 gchar substitutor;
7895 guint null_fold_if_empty : 1;
7896 guint ensure_non_null : 1;
7897 };
7898 struct _GParamSpecParam
7899 {
7900 GParamSpec parent_instance;
7901 };
7902 struct _GParamSpecBoxed
7903 {
7904 GParamSpec parent_instance;
7905 };
7906 struct _GParamSpecPointer
7907 {
7908 GParamSpec parent_instance;
7909 };
7910 struct _GParamSpecValueArray
7911 {
7912 GParamSpec parent_instance;
7913 GParamSpec *element_spec;
7914 guint fixed_n_elements;
7915 };
7916 struct _GParamSpecObject
7917 {
7918 GParamSpec parent_instance;
7919 };
7920 struct _GParamSpecOverride
7921 {
7922 GParamSpec parent_instance;
7923 GParamSpec *overridden;
7924 };
7925 struct _GParamSpecGType
7926 {
7927 GParamSpec parent_instance;
7928 GType is_a_type;
7929 };
7930 GParamSpec* g_param_spec_char (const gchar *name,
7931 const gchar *nick,
7932 const gchar *blurb,
7933 gint8 minimum,
7934 gint8 maximum,
7935 gint8 default_value,
7936 GParamFlags flags);
7937 GParamSpec* g_param_spec_uchar (const gchar *name,
7938 const gchar *nick,
7939 const gchar *blurb,
7940 guint8 minimum,
7941 guint8 maximum,
7942 guint8 default_value,
7943 GParamFlags flags);
7944 GParamSpec* g_param_spec_boolean (const gchar *name,
7945 const gchar *nick,
7946 const gchar *blurb,
7947 gboolean default_value,
7948 GParamFlags flags);
7949 GParamSpec* g_param_spec_int (const gchar *name,
7950 const gchar *nick,
7951 const gchar *blurb,
7952 gint minimum,
7953 gint maximum,
7954 gint default_value,
7955 GParamFlags flags);
7956 GParamSpec* g_param_spec_uint (const gchar *name,
7957 const gchar *nick,
7958 const gchar *blurb,
7959 guint minimum,
7960 guint maximum,
7961 guint default_value,
7962 GParamFlags flags);
7963 GParamSpec* g_param_spec_long (const gchar *name,
7964 const gchar *nick,
7965 const gchar *blurb,
7966 glong minimum,
7967 glong maximum,
7968 glong default_value,
7969 GParamFlags flags);
7970 GParamSpec* g_param_spec_ulong (const gchar *name,
7971 const gchar *nick,
7972 const gchar *blurb,
7973 gulong minimum,
7974 gulong maximum,
7975 gulong default_value,
7976 GParamFlags flags);
7977 GParamSpec* g_param_spec_int64 (const gchar *name,
7978 const gchar *nick,
7979 const gchar *blurb,
7980 gint64 minimum,
7981 gint64 maximum,
7982 gint64 default_value,
7983 GParamFlags flags);
7984 GParamSpec* g_param_spec_uint64 (const gchar *name,
7985 const gchar *nick,
7986 const gchar *blurb,
7987 guint64 minimum,
7988 guint64 maximum,
7989 guint64 default_value,
7990 GParamFlags flags);
7991 GParamSpec* g_param_spec_unichar (const gchar *name,
7992 const gchar *nick,
7993 const gchar *blurb,
7994 gunichar default_value,
7995 GParamFlags flags);
7996 GParamSpec* g_param_spec_enum (const gchar *name,
7997 const gchar *nick,
7998 const gchar *blurb,
7999 GType enum_type,
8000 gint default_value,
8001 GParamFlags flags);
8002 GParamSpec* g_param_spec_flags (const gchar *name,
8003 const gchar *nick,
8004 const gchar *blurb,
8005 GType flags_type,
8006 guint default_value,
8007 GParamFlags flags);
8008 GParamSpec* g_param_spec_float (const gchar *name,
8009 const gchar *nick,
8010 const gchar *blurb,
8011 gfloat minimum,
8012 gfloat maximum,
8013 gfloat default_value,
8014 GParamFlags flags);
8015 GParamSpec* g_param_spec_double (const gchar *name,
8016 const gchar *nick,
8017 const gchar *blurb,
8018 gdouble minimum,
8019 gdouble maximum,
8020 gdouble default_value,
8021 GParamFlags flags);
8022 GParamSpec* g_param_spec_string (const gchar *name,
8023 const gchar *nick,
8024 const gchar *blurb,
8025 const gchar *default_value,
8026 GParamFlags flags);
8027 GParamSpec* g_param_spec_param (const gchar *name,
8028 const gchar *nick,
8029 const gchar *blurb,
8030 GType param_type,
8031 GParamFlags flags);
8032 GParamSpec* g_param_spec_boxed (const gchar *name,
8033 const gchar *nick,
8034 const gchar *blurb,
8035 GType boxed_type,
8036 GParamFlags flags);
8037 GParamSpec* g_param_spec_pointer (const gchar *name,
8038 const gchar *nick,
8039 const gchar *blurb,
8040 GParamFlags flags);
8041 GParamSpec* g_param_spec_value_array (const gchar *name,
8042 const gchar *nick,
8043 const gchar *blurb,
8044 GParamSpec *element_spec,
8045 GParamFlags flags);
8046 GParamSpec* g_param_spec_object (const gchar *name,
8047 const gchar *nick,
8048 const gchar *blurb,
8049 GType object_type,
8050 GParamFlags flags);
8051 GParamSpec* g_param_spec_override (const gchar *name,
8052 GParamSpec *overridden);
8053 GParamSpec* g_param_spec_gtype (const gchar *name,
8054 const gchar *nick,
8055 const gchar *blurb,
8056 GType is_a_type,
8057 GParamFlags flags);
8058 extern GType *g_param_spec_types;
8059 void g_source_set_closure (GSource *source,
8060 GClosure *closure);
8061 GType g_io_channel_get_type (void);
8062 GType g_io_condition_get_type (void);
8063 typedef struct _GTypeModule GTypeModule;
8064 typedef struct _GTypeModuleClass GTypeModuleClass;
8065 struct _GTypeModule
8066 {
8067 GObject parent_instance;
8068 guint use_count;
8069 GSList *type_infos;
8070 GSList *interface_infos;
8071 gchar *name;
8072 };
8073 struct _GTypeModuleClass
8074 {
8075 GObjectClass parent_class;
8076 gboolean (* load) (GTypeModule *module);
8077 void (* unload) (GTypeModule *module);
8078 void (*reserved1) (void);
8079 void (*reserved2) (void);
8080 void (*reserved3) (void);
8081 void (*reserved4) (void);
8082 };
8083 GType g_type_module_get_type (void) __attribute__((__const__));
8084 gboolean g_type_module_use (GTypeModule *module);
8085 void g_type_module_unuse (GTypeModule *module);
8086 void g_type_module_set_name (GTypeModule *module,
8087 const gchar *name);
8088 GType g_type_module_register_type (GTypeModule *module,
8089 GType parent_type,
8090 const gchar *type_name,
8091 const GTypeInfo *type_info,
8092 GTypeFlags flags);
8093 void g_type_module_add_interface (GTypeModule *module,
8094 GType instance_type,
8095 GType interface_type,
8096 const GInterfaceInfo *interface_info);
8097 GType g_type_module_register_enum (GTypeModule *module,
8098 const gchar *name,
8099 const GEnumValue *const_static_values);
8100 GType g_type_module_register_flags (GTypeModule *module,
8101 const gchar *name,
8102 const GFlagsValue *const_static_values);
8103 typedef struct _GTypePluginClass GTypePluginClass;
8104 typedef void (*GTypePluginUse) (GTypePlugin *plugin);
8105 typedef void (*GTypePluginUnuse) (GTypePlugin *plugin);
8106 typedef void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin,
8107 GType g_type,
8108 GTypeInfo *info,
8109 GTypeValueTable *value_table);
8110 typedef void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin,
8111 GType instance_type,
8112 GType interface_type,
8113 GInterfaceInfo *info);
8114 struct _GTypePluginClass
8115 {
8116 GTypeInterface base_iface;
8117 GTypePluginUse use_plugin;
8118 GTypePluginUnuse unuse_plugin;
8119 GTypePluginCompleteTypeInfo complete_type_info;
8120 GTypePluginCompleteInterfaceInfo complete_interface_info;
8121 };
8122 GType g_type_plugin_get_type (void) __attribute__((__const__));
8123 void g_type_plugin_use (GTypePlugin *plugin);
8124 void g_type_plugin_unuse (GTypePlugin *plugin);
8125 void g_type_plugin_complete_type_info (GTypePlugin *plugin,
8126 GType g_type,
8127 GTypeInfo *info,
8128 GTypeValueTable *value_table);
8129 void g_type_plugin_complete_interface_info (GTypePlugin *plugin,
8130 GType instance_type,
8131 GType interface_type,
8132 GInterfaceInfo *info);
8133 typedef struct _GValueArray GValueArray;
8134 struct _GValueArray
8135 {
8136 guint n_values;
8137 GValue *values;
8138 guint n_prealloced;
8139 };
8140 GValue* g_value_array_get_nth (GValueArray *value_array,
8141 guint index_);
8142 GValueArray* g_value_array_new (guint n_prealloced);
8143 void g_value_array_free (GValueArray *value_array);
8144 GValueArray* g_value_array_copy (const GValueArray *value_array);
8145 GValueArray* g_value_array_prepend (GValueArray *value_array,
8146 const GValue *value);
8147 GValueArray* g_value_array_append (GValueArray *value_array,
8148 const GValue *value);
8149 GValueArray* g_value_array_insert (GValueArray *value_array,
8150 guint index_,
8151 const GValue *value);
8152 GValueArray* g_value_array_remove (GValueArray *value_array,
8153 guint index_);
8154 GValueArray* g_value_array_sort (GValueArray *value_array,
8155 GCompareFunc compare_func);
8156 GValueArray* g_value_array_sort_with_data (GValueArray *value_array,
8157 GCompareDataFunc compare_func,
8158 gpointer user_data);
8159 void g_value_set_char (GValue *value,
8160 gchar v_char);
8161 gchar g_value_get_char (const GValue *value);
8162 void g_value_set_uchar (GValue *value,
8163 guchar v_uchar);
8164 guchar g_value_get_uchar (const GValue *value);
8165 void g_value_set_boolean (GValue *value,
8166 gboolean v_boolean);
8167 gboolean g_value_get_boolean (const GValue *value);
8168 void g_value_set_int (GValue *value,
8169 gint v_int);
8170 gint g_value_get_int (const GValue *value);
8171 void g_value_set_uint (GValue *value,
8172 guint v_uint);
8173 guint g_value_get_uint (const GValue *value);
8174 void g_value_set_long (GValue *value,
8175 glong v_long);
8176 glong g_value_get_long (const GValue *value);
8177 void g_value_set_ulong (GValue *value,
8178 gulong v_ulong);
8179 gulong g_value_get_ulong (const GValue *value);
8180 void g_value_set_int64 (GValue *value,
8181 gint64 v_int64);
8182 gint64 g_value_get_int64 (const GValue *value);
8183 void g_value_set_uint64 (GValue *value,
8184 guint64 v_uint64);
8185 guint64 g_value_get_uint64 (const GValue *value);
8186 void g_value_set_float (GValue *value,
8187 gfloat v_float);
8188 gfloat g_value_get_float (const GValue *value);
8189 void g_value_set_double (GValue *value,
8190 gdouble v_double);
8191 gdouble g_value_get_double (const GValue *value);
8192 void g_value_set_string (GValue *value,
8193 const gchar *v_string);
8194 void g_value_set_static_string (GValue *value,
8195 const gchar *v_string);
8196 const gchar* g_value_get_string (const GValue *value);
8197 gchar* g_value_dup_string (const GValue *value);
8198 void g_value_set_pointer (GValue *value,
8199 gpointer v_pointer);
8200 gpointer g_value_get_pointer (const GValue *value);
8201 GType g_gtype_get_type (void);
8202 void g_value_set_gtype (GValue *value,
8203 GType v_gtype);
8204 GType g_value_get_gtype (const GValue *value);
8205 GType g_pointer_type_register_static (const gchar *name);
8206 gchar* g_strdup_value_contents (const GValue *value);
8207 void g_value_take_string (GValue *value,
8208 gchar *v_string);
8209 void g_value_set_string_take_ownership (GValue *value,
8210 gchar *v_string);
8211 typedef gchar* gchararray;
8212 GType gst_object_flags_get_type (void);
8213 GType gst_bin_flags_get_type (void);
8214 GType gst_buffer_flag_get_type (void);
8215 GType gst_buffer_copy_flags_get_type (void);
8216 GType gst_buffer_list_item_get_type (void);
8217 GType gst_bus_flags_get_type (void);
8218 GType gst_bus_sync_reply_get_type (void);
8219 GType gst_caps_flags_get_type (void);
8220 GType gst_clock_return_get_type (void);
8221 GType gst_clock_entry_type_get_type (void);
8222 GType gst_clock_flags_get_type (void);
8223 GType gst_debug_graph_details_get_type (void);
8224 GType gst_state_get_type (void);
8225 GType gst_state_change_return_get_type (void);
8226 GType gst_state_change_get_type (void);
8227 GType gst_element_flags_get_type (void);
8228 GType gst_core_error_get_type (void);
8229 GType gst_library_error_get_type (void);
8230 GType gst_resource_error_get_type (void);
8231 GType gst_stream_error_get_type (void);
8232 GType gst_event_type_flags_get_type (void);
8233 GType gst_event_type_get_type (void);
8234 GType gst_seek_type_get_type (void);
8235 GType gst_seek_flags_get_type (void);
8236 GType gst_format_get_type (void);
8237 GType gst_index_certainty_get_type (void);
8238 GType gst_index_entry_type_get_type (void);
8239 GType gst_index_lookup_method_get_type (void);
8240 GType gst_assoc_flags_get_type (void);
8241 GType gst_index_resolver_method_get_type (void);
8242 GType gst_index_flags_get_type (void);
8243 GType gst_debug_level_get_type (void);
8244 GType gst_debug_color_flags_get_type (void);
8245 GType gst_iterator_result_get_type (void);
8246 GType gst_iterator_item_get_type (void);
8247 GType gst_message_type_get_type (void);
8248 GType gst_structure_change_type_get_type (void);
8249 GType gst_stream_status_type_get_type (void);
8250 GType gst_mini_object_flags_get_type (void);
8251 GType gst_pad_link_return_get_type (void);
8252 GType gst_flow_return_get_type (void);
8253 GType gst_activate_mode_get_type (void);
8254 GType gst_pad_direction_get_type (void);
8255 GType gst_pad_flags_get_type (void);
8256 GType gst_pad_presence_get_type (void);
8257 GType gst_pad_template_flags_get_type (void);
8258 GType gst_pipeline_flags_get_type (void);
8259 GType gst_plugin_error_get_type (void);
8260 GType gst_plugin_flags_get_type (void);
8261 GType gst_plugin_dependency_flags_get_type (void);
8262 GType gst_rank_get_type (void);
8263 GType gst_query_type_get_type (void);
8264 GType gst_buffering_mode_get_type (void);
8265 GType gst_clock_type_get_type (void);
8266 GType gst_tag_merge_mode_get_type (void);
8267 GType gst_tag_flag_get_type (void);
8268 GType gst_task_state_get_type (void);
8269 GType gst_alloc_trace_flags_get_type (void);
8270 GType gst_type_find_probability_get_type (void);
8271 GType gst_uri_type_get_type (void);
8272 GType gst_search_mode_get_type (void);
8273 GType gst_parse_error_get_type (void);
8274 GType gst_parse_flags_get_type (void);
8275 typedef struct _GstElement GstElement;
8276 typedef struct _GstElementClass GstElementClass;
8277 typedef enum {
8278 GST_STATE_VOID_PENDING = 0,
8279 GST_STATE_NULL = 1,
8280 GST_STATE_READY = 2,
8281 GST_STATE_PAUSED = 3,
8282 GST_STATE_PLAYING = 4
8283 } GstState;
8284 void xmlCheckVersion(int version);
8285 typedef unsigned char xmlChar;
8286 xmlChar *
8287 xmlStrdup (const xmlChar *cur);
8288 xmlChar *
8289 xmlStrndup (const xmlChar *cur,
8290 int len);
8291 xmlChar *
8292 xmlCharStrndup (const char *cur,
8293 int len);
8294 xmlChar *
8295 xmlCharStrdup (const char *cur);
8296 xmlChar *
8297 xmlStrsub (const xmlChar *str,
8298 int start,
8299 int len);
8300 const xmlChar *
8301 xmlStrchr (const xmlChar *str,
8302 xmlChar val);
8303 const xmlChar *
8304 xmlStrstr (const xmlChar *str,
8305 const xmlChar *val);
8306 const xmlChar *
8307 xmlStrcasestr (const xmlChar *str,
8308 const xmlChar *val);
8309 int
8310 xmlStrcmp (const xmlChar *str1,
8311 const xmlChar *str2);
8312 int
8313 xmlStrncmp (const xmlChar *str1,
8314 const xmlChar *str2,
8315 int len);
8316 int
8317 xmlStrcasecmp (const xmlChar *str1,
8318 const xmlChar *str2);
8319 int
8320 xmlStrncasecmp (const xmlChar *str1,
8321 const xmlChar *str2,
8322 int len);
8323 int
8324 xmlStrEqual (const xmlChar *str1,
8325 const xmlChar *str2);
8326 int
8327 xmlStrQEqual (const xmlChar *pref,
8328 const xmlChar *name,
8329 const xmlChar *str);
8330 int
8331 xmlStrlen (const xmlChar *str);
8332 xmlChar *
8333 xmlStrcat (xmlChar *cur,
8334 const xmlChar *add);
8335 xmlChar *
8336 xmlStrncat (xmlChar *cur,
8337 const xmlChar *add,
8338 int len);
8339 xmlChar *
8340 xmlStrncatNew (const xmlChar *str1,
8341 const xmlChar *str2,
8342 int len);
8343 int
8344 xmlStrPrintf (xmlChar *buf,
8345 int len,
8346 const xmlChar *msg,
8347 ...);
8348 int
8349 xmlStrVPrintf (xmlChar *buf,
8350 int len,
8351 const xmlChar *msg,
8352 va_list ap);
8353 int
8354 xmlGetUTF8Char (const unsigned char *utf,
8355 int *len);
8356 int
8357 xmlCheckUTF8 (const unsigned char *utf);
8358 int
8359 xmlUTF8Strsize (const xmlChar *utf,
8360 int len);
8361 xmlChar *
8362 xmlUTF8Strndup (const xmlChar *utf,
8363 int len);
8364 const xmlChar *
8365 xmlUTF8Strpos (const xmlChar *utf,
8366 int pos);
8367 int
8368 xmlUTF8Strloc (const xmlChar *utf,
8369 const xmlChar *utfchar);
8370 xmlChar *
8371 xmlUTF8Strsub (const xmlChar *utf,
8372 int start,
8373 int len);
8374 int
8375 xmlUTF8Strlen (const xmlChar *utf);
8376 int
8377 xmlUTF8Size (const xmlChar *utf);
8378 int
8379 xmlUTF8Charcmp (const xmlChar *utf1,
8380 const xmlChar *utf2);
8381 typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
8382 typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
8383 typedef struct _xmlOutputBuffer xmlOutputBuffer;
8384 typedef xmlOutputBuffer *xmlOutputBufferPtr;
8385 typedef struct _xmlParserInput xmlParserInput;
8386 typedef xmlParserInput *xmlParserInputPtr;
8387 typedef struct _xmlParserCtxt xmlParserCtxt;
8388 typedef xmlParserCtxt *xmlParserCtxtPtr;
8389 typedef struct _xmlSAXLocator xmlSAXLocator;
8390 typedef xmlSAXLocator *xmlSAXLocatorPtr;
8391 typedef struct _xmlSAXHandler xmlSAXHandler;
8392 typedef xmlSAXHandler *xmlSAXHandlerPtr;
8393 typedef struct _xmlEntity xmlEntity;
8394 typedef xmlEntity *xmlEntityPtr;
8395 typedef enum {
8396 XML_BUFFER_ALLOC_DOUBLEIT,
8397 XML_BUFFER_ALLOC_EXACT,
8398 XML_BUFFER_ALLOC_IMMUTABLE,
8399 XML_BUFFER_ALLOC_IO
8400 } xmlBufferAllocationScheme;
8401 typedef struct _xmlBuffer xmlBuffer;
8402 typedef xmlBuffer *xmlBufferPtr;
8403 struct _xmlBuffer {
8404 xmlChar *content;
8405 unsigned int use;
8406 unsigned int size;
8407 xmlBufferAllocationScheme alloc;
8408 xmlChar *contentIO;
8409 };
8410 typedef enum {
8411 XML_ELEMENT_NODE= 1,
8412 XML_ATTRIBUTE_NODE= 2,
8413 XML_TEXT_NODE= 3,
8414 XML_CDATA_SECTION_NODE= 4,
8415 XML_ENTITY_REF_NODE= 5,
8416 XML_ENTITY_NODE= 6,
8417 XML_PI_NODE= 7,
8418 XML_COMMENT_NODE= 8,
8419 XML_DOCUMENT_NODE= 9,
8420 XML_DOCUMENT_TYPE_NODE= 10,
8421 XML_DOCUMENT_FRAG_NODE= 11,
8422 XML_NOTATION_NODE= 12,
8423 XML_HTML_DOCUMENT_NODE= 13,
8424 XML_DTD_NODE= 14,
8425 XML_ELEMENT_DECL= 15,
8426 XML_ATTRIBUTE_DECL= 16,
8427 XML_ENTITY_DECL= 17,
8428 XML_NAMESPACE_DECL= 18,
8429 XML_XINCLUDE_START= 19,
8430 XML_XINCLUDE_END= 20
8431 ,XML_DOCB_DOCUMENT_NODE= 21
8432 } xmlElementType;
8433 typedef struct _xmlNotation xmlNotation;
8434 typedef xmlNotation *xmlNotationPtr;
8435 struct _xmlNotation {
8436 const xmlChar *name;
8437 const xmlChar *PublicID;
8438 const xmlChar *SystemID;
8439 };
8440 typedef enum {
8441 XML_ATTRIBUTE_CDATA = 1,
8442 XML_ATTRIBUTE_ID,
8443 XML_ATTRIBUTE_IDREF ,
8444 XML_ATTRIBUTE_IDREFS,
8445 XML_ATTRIBUTE_ENTITY,
8446 XML_ATTRIBUTE_ENTITIES,
8447 XML_ATTRIBUTE_NMTOKEN,
8448 XML_ATTRIBUTE_NMTOKENS,
8449 XML_ATTRIBUTE_ENUMERATION,
8450 XML_ATTRIBUTE_NOTATION
8451 } xmlAttributeType;
8452 typedef enum {
8453 XML_ATTRIBUTE_NONE = 1,
8454 XML_ATTRIBUTE_REQUIRED,
8455 XML_ATTRIBUTE_IMPLIED,
8456 XML_ATTRIBUTE_FIXED
8457 } xmlAttributeDefault;
8458 typedef struct _xmlEnumeration xmlEnumeration;
8459 typedef xmlEnumeration *xmlEnumerationPtr;
8460 struct _xmlEnumeration {
8461 struct _xmlEnumeration *next;
8462 const xmlChar *name;
8463 };
8464 typedef struct _xmlAttribute xmlAttribute;
8465 typedef xmlAttribute *xmlAttributePtr;
8466 struct _xmlAttribute {
8467 void *_private;
8468 xmlElementType type;
8469 const xmlChar *name;
8470 struct _xmlNode *children;
8471 struct _xmlNode *last;
8472 struct _xmlDtd *parent;
8473 struct _xmlNode *next;
8474 struct _xmlNode *prev;
8475 struct _xmlDoc *doc;
8476 struct _xmlAttribute *nexth;
8477 xmlAttributeType atype;
8478 xmlAttributeDefault def;
8479 const xmlChar *defaultValue;
8480 xmlEnumerationPtr tree;
8481 const xmlChar *prefix;
8482 const xmlChar *elem;
8483 };
8484 typedef enum {
8485 XML_ELEMENT_CONTENT_PCDATA = 1,
8486 XML_ELEMENT_CONTENT_ELEMENT,
8487 XML_ELEMENT_CONTENT_SEQ,
8488 XML_ELEMENT_CONTENT_OR
8489 } xmlElementContentType;
8490 typedef enum {
8491 XML_ELEMENT_CONTENT_ONCE = 1,
8492 XML_ELEMENT_CONTENT_OPT,
8493 XML_ELEMENT_CONTENT_MULT,
8494 XML_ELEMENT_CONTENT_PLUS
8495 } xmlElementContentOccur;
8496 typedef struct _xmlElementContent xmlElementContent;
8497 typedef xmlElementContent *xmlElementContentPtr;
8498 struct _xmlElementContent {
8499 xmlElementContentType type;
8500 xmlElementContentOccur ocur;
8501 const xmlChar *name;
8502 struct _xmlElementContent *c1;
8503 struct _xmlElementContent *c2;
8504 struct _xmlElementContent *parent;
8505 const xmlChar *prefix;
8506 };
8507 typedef enum {
8508 XML_ELEMENT_TYPE_UNDEFINED = 0,
8509 XML_ELEMENT_TYPE_EMPTY = 1,
8510 XML_ELEMENT_TYPE_ANY,
8511 XML_ELEMENT_TYPE_MIXED,
8512 XML_ELEMENT_TYPE_ELEMENT
8513 } xmlElementTypeVal;
8514 typedef struct _xmlRegexp xmlRegexp;
8515 typedef xmlRegexp *xmlRegexpPtr;
8516 typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
8517 typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
8518 typedef struct _xmlDict xmlDict;
8519 typedef xmlDict *xmlDictPtr;
8520 xmlDictPtr
8521 xmlDictCreate (void);
8522 xmlDictPtr
8523 xmlDictCreateSub(xmlDictPtr sub);
8524 int
8525 xmlDictReference(xmlDictPtr dict);
8526 void
8527 xmlDictFree (xmlDictPtr dict);
8528 const xmlChar *
8529 xmlDictLookup (xmlDictPtr dict,
8530 const xmlChar *name,
8531 int len);
8532 const xmlChar *
8533 xmlDictExists (xmlDictPtr dict,
8534 const xmlChar *name,
8535 int len);
8536 const xmlChar *
8537 xmlDictQLookup (xmlDictPtr dict,
8538 const xmlChar *prefix,
8539 const xmlChar *name);
8540 int
8541 xmlDictOwns (xmlDictPtr dict,
8542 const xmlChar *str);
8543 int
8544 xmlDictSize (xmlDictPtr dict);
8545 void
8546 xmlDictCleanup (void);
8547 xmlRegexpPtr
8548 xmlRegexpCompile (const xmlChar *regexp);
8549 void xmlRegFreeRegexp(xmlRegexpPtr regexp);
8550 int
8551 xmlRegexpExec (xmlRegexpPtr comp,
8552 const xmlChar *value);
8553 void
8554 xmlRegexpPrint (FILE *output,
8555 xmlRegexpPtr regexp);
8556 int
8557 xmlRegexpIsDeterminist(xmlRegexpPtr comp);
8558 typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
8559 const xmlChar *token,
8560 void *transdata,
8561 void *inputdata);
8562 xmlRegExecCtxtPtr
8563 xmlRegNewExecCtxt (xmlRegexpPtr comp,
8564 xmlRegExecCallbacks callback,
8565 void *data);
8566 void
8567 xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
8568 int
8569 xmlRegExecPushString(xmlRegExecCtxtPtr exec,
8570 const xmlChar *value,
8571 void *data);
8572 int
8573 xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
8574 const xmlChar *value,
8575 const xmlChar *value2,
8576 void *data);
8577 int
8578 xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
8579 int *nbval,
8580 int *nbneg,
8581 xmlChar **values,
8582 int *terminal);
8583 int
8584 xmlRegExecErrInfo (xmlRegExecCtxtPtr exec,
8585 const xmlChar **string,
8586 int *nbval,
8587 int *nbneg,
8588 xmlChar **values,
8589 int *terminal);
8590 typedef struct _xmlExpCtxt xmlExpCtxt;
8591 typedef xmlExpCtxt *xmlExpCtxtPtr;
8592 void
8593 xmlExpFreeCtxt (xmlExpCtxtPtr ctxt);
8594 xmlExpCtxtPtr
8595 xmlExpNewCtxt (int maxNodes,
8596 xmlDictPtr dict);
8597 int
8598 xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
8599 int
8600 xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
8601 typedef struct _xmlExpNode xmlExpNode;
8602 typedef xmlExpNode *xmlExpNodePtr;
8603 typedef enum {
8604 XML_EXP_EMPTY = 0,
8605 XML_EXP_FORBID = 1,
8606 XML_EXP_ATOM = 2,
8607 XML_EXP_SEQ = 3,
8608 XML_EXP_OR = 4,
8609 XML_EXP_COUNT = 5
8610 } xmlExpNodeType;
8611 extern xmlExpNodePtr forbiddenExp;
8612 extern xmlExpNodePtr emptyExp;
8613 void
8614 xmlExpFree (xmlExpCtxtPtr ctxt,
8615 xmlExpNodePtr expr);
8616 void
8617 xmlExpRef (xmlExpNodePtr expr);
8618 xmlExpNodePtr
8619 xmlExpParse (xmlExpCtxtPtr ctxt,
8620 const char *expr);
8621 xmlExpNodePtr
8622 xmlExpNewAtom (xmlExpCtxtPtr ctxt,
8623 const xmlChar *name,
8624 int len);
8625 xmlExpNodePtr
8626 xmlExpNewOr (xmlExpCtxtPtr ctxt,
8627 xmlExpNodePtr left,
8628 xmlExpNodePtr right);
8629 xmlExpNodePtr
8630 xmlExpNewSeq (xmlExpCtxtPtr ctxt,
8631 xmlExpNodePtr left,
8632 xmlExpNodePtr right);
8633 xmlExpNodePtr
8634 xmlExpNewRange (xmlExpCtxtPtr ctxt,
8635 xmlExpNodePtr subset,
8636 int min,
8637 int max);
8638 int
8639 xmlExpIsNillable(xmlExpNodePtr expr);
8640 int
8641 xmlExpMaxToken (xmlExpNodePtr expr);
8642 int
8643 xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
8644 xmlExpNodePtr expr,
8645 const xmlChar**langList,
8646 int len);
8647 int
8648 xmlExpGetStart (xmlExpCtxtPtr ctxt,
8649 xmlExpNodePtr expr,
8650 const xmlChar**tokList,
8651 int len);
8652 xmlExpNodePtr
8653 xmlExpStringDerive(xmlExpCtxtPtr ctxt,
8654 xmlExpNodePtr expr,
8655 const xmlChar *str,
8656 int len);
8657 xmlExpNodePtr
8658 xmlExpExpDerive (xmlExpCtxtPtr ctxt,
8659 xmlExpNodePtr expr,
8660 xmlExpNodePtr sub);
8661 int
8662 xmlExpSubsume (xmlExpCtxtPtr ctxt,
8663 xmlExpNodePtr expr,
8664 xmlExpNodePtr sub);
8665 void
8666 xmlExpDump (xmlBufferPtr buf,
8667 xmlExpNodePtr expr);
8668 typedef struct _xmlElement xmlElement;
8669 typedef xmlElement *xmlElementPtr;
8670 struct _xmlElement {
8671 void *_private;
8672 xmlElementType type;
8673 const xmlChar *name;
8674 struct _xmlNode *children;
8675 struct _xmlNode *last;
8676 struct _xmlDtd *parent;
8677 struct _xmlNode *next;
8678 struct _xmlNode *prev;
8679 struct _xmlDoc *doc;
8680 xmlElementTypeVal etype;
8681 xmlElementContentPtr content;
8682 xmlAttributePtr attributes;
8683 const xmlChar *prefix;
8684 xmlRegexpPtr contModel;
8685 };
8686 typedef xmlElementType xmlNsType;
8687 typedef struct _xmlNs xmlNs;
8688 typedef xmlNs *xmlNsPtr;
8689 struct _xmlNs {
8690 struct _xmlNs *next;
8691 xmlNsType type;
8692 const xmlChar *href;
8693 const xmlChar *prefix;
8694 void *_private;
8695 struct _xmlDoc *context;
8696 };
8697 typedef struct _xmlDtd xmlDtd;
8698 typedef xmlDtd *xmlDtdPtr;
8699 struct _xmlDtd {
8700 void *_private;
8701 xmlElementType type;
8702 const xmlChar *name;
8703 struct _xmlNode *children;
8704 struct _xmlNode *last;
8705 struct _xmlDoc *parent;
8706 struct _xmlNode *next;
8707 struct _xmlNode *prev;
8708 struct _xmlDoc *doc;
8709 void *notations;
8710 void *elements;
8711 void *attributes;
8712 void *entities;
8713 const xmlChar *ExternalID;
8714 const xmlChar *SystemID;
8715 void *pentities;
8716 };
8717 typedef struct _xmlAttr xmlAttr;
8718 typedef xmlAttr *xmlAttrPtr;
8719 struct _xmlAttr {
8720 void *_private;
8721 xmlElementType type;
8722 const xmlChar *name;
8723 struct _xmlNode *children;
8724 struct _xmlNode *last;
8725 struct _xmlNode *parent;
8726 struct _xmlAttr *next;
8727 struct _xmlAttr *prev;
8728 struct _xmlDoc *doc;
8729 xmlNs *ns;
8730 xmlAttributeType atype;
8731 void *psvi;
8732 };
8733 typedef struct _xmlID xmlID;
8734 typedef xmlID *xmlIDPtr;
8735 struct _xmlID {
8736 struct _xmlID *next;
8737 const xmlChar *value;
8738 xmlAttrPtr attr;
8739 const xmlChar *name;
8740 int lineno;
8741 struct _xmlDoc *doc;
8742 };
8743 typedef struct _xmlRef xmlRef;
8744 typedef xmlRef *xmlRefPtr;
8745 struct _xmlRef {
8746 struct _xmlRef *next;
8747 const xmlChar *value;
8748 xmlAttrPtr attr;
8749 const xmlChar *name;
8750 int lineno;
8751 };
8752 typedef struct _xmlNode xmlNode;
8753 typedef xmlNode *xmlNodePtr;
8754 struct _xmlNode {
8755 void *_private;
8756 xmlElementType type;
8757 const xmlChar *name;
8758 struct _xmlNode *children;
8759 struct _xmlNode *last;
8760 struct _xmlNode *parent;
8761 struct _xmlNode *next;
8762 struct _xmlNode *prev;
8763 struct _xmlDoc *doc;
8764 xmlNs *ns;
8765 xmlChar *content;
8766 struct _xmlAttr *properties;
8767 xmlNs *nsDef;
8768 void *psvi;
8769 unsigned short line;
8770 unsigned short extra;
8771 };
8772 typedef enum {
8773 XML_DOC_WELLFORMED = 1<<0,
8774 XML_DOC_NSVALID = 1<<1,
8775 XML_DOC_OLD10 = 1<<2,
8776 XML_DOC_DTDVALID = 1<<3,
8777 XML_DOC_XINCLUDE = 1<<4,
8778 XML_DOC_USERBUILT = 1<<5,
8779 XML_DOC_INTERNAL = 1<<6,
8780 XML_DOC_HTML = 1<<7
8781 } xmlDocProperties;
8782 typedef struct _xmlDoc xmlDoc;
8783 typedef xmlDoc *xmlDocPtr;
8784 struct _xmlDoc {
8785 void *_private;
8786 xmlElementType type;
8787 char *name;
8788 struct _xmlNode *children;
8789 struct _xmlNode *last;
8790 struct _xmlNode *parent;
8791 struct _xmlNode *next;
8792 struct _xmlNode *prev;
8793 struct _xmlDoc *doc;
8794 int compression;
8795 int standalone;
8796 struct _xmlDtd *intSubset;
8797 struct _xmlDtd *extSubset;
8798 struct _xmlNs *oldNs;
8799 const xmlChar *version;
8800 const xmlChar *encoding;
8801 void *ids;
8802 void *refs;
8803 const xmlChar *URL;
8804 int charset;
8805 struct _xmlDict *dict;
8806 void *psvi;
8807 int parseFlags;
8808 int properties;
8809 };
8810 typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
8811 typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
8812 typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
8813 xmlNodePtr node,
8814 const xmlChar *nsName,
8815 const xmlChar *nsPrefix);
8816 struct _xmlDOMWrapCtxt {
8817 void * _private;
8818 int type;
8819 void * namespaceMap;
8820 xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
8821 };
8822 int
8823 xmlValidateNCName (const xmlChar *value,
8824 int space);
8825 int
8826 xmlValidateQName (const xmlChar *value,
8827 int space);
8828 int
8829 xmlValidateName (const xmlChar *value,
8830 int space);
8831 int
8832 xmlValidateNMToken (const xmlChar *value,
8833 int space);
8834 xmlChar *
8835 xmlBuildQName (const xmlChar *ncname,
8836 const xmlChar *prefix,
8837 xmlChar *memory,
8838 int len);
8839 xmlChar *
8840 xmlSplitQName2 (const xmlChar *name,
8841 xmlChar **prefix);
8842 const xmlChar *
8843 xmlSplitQName3 (const xmlChar *name,
8844 int *len);
8845 void
8846 xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
8847 xmlBufferAllocationScheme
8848 xmlGetBufferAllocationScheme(void);
8849 xmlBufferPtr
8850 xmlBufferCreate (void);
8851 xmlBufferPtr
8852 xmlBufferCreateSize (size_t size);
8853 xmlBufferPtr
8854 xmlBufferCreateStatic (void *mem,
8855 size_t size);
8856 int
8857 xmlBufferResize (xmlBufferPtr buf,
8858 unsigned int size);
8859 void
8860 xmlBufferFree (xmlBufferPtr buf);
8861 int
8862 xmlBufferDump (FILE *file,
8863 xmlBufferPtr buf);
8864 int
8865 xmlBufferAdd (xmlBufferPtr buf,
8866 const xmlChar *str,
8867 int len);
8868 int
8869 xmlBufferAddHead (xmlBufferPtr buf,
8870 const xmlChar *str,
8871 int len);
8872 int
8873 xmlBufferCat (xmlBufferPtr buf,
8874 const xmlChar *str);
8875 int
8876 xmlBufferCCat (xmlBufferPtr buf,
8877 const char *str);
8878 int
8879 xmlBufferShrink (xmlBufferPtr buf,
8880 unsigned int len);
8881 int
8882 xmlBufferGrow (xmlBufferPtr buf,
8883 unsigned int len);
8884 void
8885 xmlBufferEmpty (xmlBufferPtr buf);
8886 const xmlChar*
8887 xmlBufferContent (const xmlBufferPtr buf);
8888 void
8889 xmlBufferSetAllocationScheme(xmlBufferPtr buf,
8890 xmlBufferAllocationScheme scheme);
8891 int
8892 xmlBufferLength (const xmlBufferPtr buf);
8893 xmlDtdPtr
8894 xmlCreateIntSubset (xmlDocPtr doc,
8895 const xmlChar *name,
8896 const xmlChar *ExternalID,
8897 const xmlChar *SystemID);
8898 xmlDtdPtr
8899 xmlNewDtd (xmlDocPtr doc,
8900 const xmlChar *name,
8901 const xmlChar *ExternalID,
8902 const xmlChar *SystemID);
8903 xmlDtdPtr
8904 xmlGetIntSubset (xmlDocPtr doc);
8905 void
8906 xmlFreeDtd (xmlDtdPtr cur);
8907 xmlNsPtr
8908 xmlNewGlobalNs (xmlDocPtr doc,
8909 const xmlChar *href,
8910 const xmlChar *prefix);
8911 xmlNsPtr
8912 xmlNewNs (xmlNodePtr node,
8913 const xmlChar *href,
8914 const xmlChar *prefix);
8915 void
8916 xmlFreeNs (xmlNsPtr cur);
8917 void
8918 xmlFreeNsList (xmlNsPtr cur);
8919 xmlDocPtr
8920 xmlNewDoc (const xmlChar *version);
8921 void
8922 xmlFreeDoc (xmlDocPtr cur);
8923 xmlAttrPtr
8924 xmlNewDocProp (xmlDocPtr doc,
8925 const xmlChar *name,
8926 const xmlChar *value);
8927 xmlAttrPtr
8928 xmlNewProp (xmlNodePtr node,
8929 const xmlChar *name,
8930 const xmlChar *value);
8931 xmlAttrPtr
8932 xmlNewNsProp (xmlNodePtr node,
8933 xmlNsPtr ns,
8934 const xmlChar *name,
8935 const xmlChar *value);
8936 xmlAttrPtr
8937 xmlNewNsPropEatName (xmlNodePtr node,
8938 xmlNsPtr ns,
8939 xmlChar *name,
8940 const xmlChar *value);
8941 void
8942 xmlFreePropList (xmlAttrPtr cur);
8943 void
8944 xmlFreeProp (xmlAttrPtr cur);
8945 xmlAttrPtr
8946 xmlCopyProp (xmlNodePtr target,
8947 xmlAttrPtr cur);
8948 xmlAttrPtr
8949 xmlCopyPropList (xmlNodePtr target,
8950 xmlAttrPtr cur);
8951 xmlDtdPtr
8952 xmlCopyDtd (xmlDtdPtr dtd);
8953 xmlDocPtr
8954 xmlCopyDoc (xmlDocPtr doc,
8955 int recursive);
8956 xmlNodePtr
8957 xmlNewDocNode (xmlDocPtr doc,
8958 xmlNsPtr ns,
8959 const xmlChar *name,
8960 const xmlChar *content);
8961 xmlNodePtr
8962 xmlNewDocNodeEatName (xmlDocPtr doc,
8963 xmlNsPtr ns,
8964 xmlChar *name,
8965 const xmlChar *content);
8966 xmlNodePtr
8967 xmlNewNode (xmlNsPtr ns,
8968 const xmlChar *name);
8969 xmlNodePtr
8970 xmlNewNodeEatName (xmlNsPtr ns,
8971 xmlChar *name);
8972 xmlNodePtr
8973 xmlNewChild (xmlNodePtr parent,
8974 xmlNsPtr ns,
8975 const xmlChar *name,
8976 const xmlChar *content);
8977 xmlNodePtr
8978 xmlNewDocText (xmlDocPtr doc,
8979 const xmlChar *content);
8980 xmlNodePtr
8981 xmlNewText (const xmlChar *content);
8982 xmlNodePtr
8983 xmlNewDocPI (xmlDocPtr doc,
8984 const xmlChar *name,
8985 const xmlChar *content);
8986 xmlNodePtr
8987 xmlNewPI (const xmlChar *name,
8988 const xmlChar *content);
8989 xmlNodePtr
8990 xmlNewDocTextLen (xmlDocPtr doc,
8991 const xmlChar *content,
8992 int len);
8993 xmlNodePtr
8994 xmlNewTextLen (const xmlChar *content,
8995 int len);
8996 xmlNodePtr
8997 xmlNewDocComment (xmlDocPtr doc,
8998 const xmlChar *content);
8999 xmlNodePtr
9000 xmlNewComment (const xmlChar *content);
9001 xmlNodePtr
9002 xmlNewCDataBlock (xmlDocPtr doc,
9003 const xmlChar *content,
9004 int len);
9005 xmlNodePtr
9006 xmlNewCharRef (xmlDocPtr doc,
9007 const xmlChar *name);
9008 xmlNodePtr
9009 xmlNewReference (xmlDocPtr doc,
9010 const xmlChar *name);
9011 xmlNodePtr
9012 xmlCopyNode (const xmlNodePtr node,
9013 int recursive);
9014 xmlNodePtr
9015 xmlDocCopyNode (const xmlNodePtr node,
9016 xmlDocPtr doc,
9017 int recursive);
9018 xmlNodePtr
9019 xmlDocCopyNodeList (xmlDocPtr doc,
9020 const xmlNodePtr node);
9021 xmlNodePtr
9022 xmlCopyNodeList (const xmlNodePtr node);
9023 xmlNodePtr
9024 xmlNewTextChild (xmlNodePtr parent,
9025 xmlNsPtr ns,
9026 const xmlChar *name,
9027 const xmlChar *content);
9028 xmlNodePtr
9029 xmlNewDocRawNode (xmlDocPtr doc,
9030 xmlNsPtr ns,
9031 const xmlChar *name,
9032 const xmlChar *content);
9033 xmlNodePtr
9034 xmlNewDocFragment (xmlDocPtr doc);
9035 long
9036 xmlGetLineNo (xmlNodePtr node);
9037 xmlChar *
9038 xmlGetNodePath (xmlNodePtr node);
9039 xmlNodePtr
9040 xmlDocGetRootElement (xmlDocPtr doc);
9041 xmlNodePtr
9042 xmlGetLastChild (xmlNodePtr parent);
9043 int
9044 xmlNodeIsText (xmlNodePtr node);
9045 int
9046 xmlIsBlankNode (xmlNodePtr node);
9047 xmlNodePtr
9048 xmlDocSetRootElement (xmlDocPtr doc,
9049 xmlNodePtr root);
9050 void
9051 xmlNodeSetName (xmlNodePtr cur,
9052 const xmlChar *name);
9053 xmlNodePtr
9054 xmlAddChild (xmlNodePtr parent,
9055 xmlNodePtr cur);
9056 xmlNodePtr
9057 xmlAddChildList (xmlNodePtr parent,
9058 xmlNodePtr cur);
9059 xmlNodePtr
9060 xmlReplaceNode (xmlNodePtr old,
9061 xmlNodePtr cur);
9062 xmlNodePtr
9063 xmlAddPrevSibling (xmlNodePtr cur,
9064 xmlNodePtr elem);
9065 xmlNodePtr
9066 xmlAddSibling (xmlNodePtr cur,
9067 xmlNodePtr elem);
9068 xmlNodePtr
9069 xmlAddNextSibling (xmlNodePtr cur,
9070 xmlNodePtr elem);
9071 void
9072 xmlUnlinkNode (xmlNodePtr cur);
9073 xmlNodePtr
9074 xmlTextMerge (xmlNodePtr first,
9075 xmlNodePtr second);
9076 int
9077 xmlTextConcat (xmlNodePtr node,
9078 const xmlChar *content,
9079 int len);
9080 void
9081 xmlFreeNodeList (xmlNodePtr cur);
9082 void
9083 xmlFreeNode (xmlNodePtr cur);
9084 void
9085 xmlSetTreeDoc (xmlNodePtr tree,
9086 xmlDocPtr doc);
9087 void
9088 xmlSetListDoc (xmlNodePtr list,
9089 xmlDocPtr doc);
9090 xmlNsPtr
9091 xmlSearchNs (xmlDocPtr doc,
9092 xmlNodePtr node,
9093 const xmlChar *nameSpace);
9094 xmlNsPtr
9095 xmlSearchNsByHref (xmlDocPtr doc,
9096 xmlNodePtr node,
9097 const xmlChar *href);
9098 xmlNsPtr *
9099 xmlGetNsList (xmlDocPtr doc,
9100 xmlNodePtr node);
9101 void
9102 xmlSetNs (xmlNodePtr node,
9103 xmlNsPtr ns);
9104 xmlNsPtr
9105 xmlCopyNamespace (xmlNsPtr cur);
9106 xmlNsPtr
9107 xmlCopyNamespaceList (xmlNsPtr cur);
9108 xmlAttrPtr
9109 xmlSetProp (xmlNodePtr node,
9110 const xmlChar *name,
9111 const xmlChar *value);
9112 xmlAttrPtr
9113 xmlSetNsProp (xmlNodePtr node,
9114 xmlNsPtr ns,
9115 const xmlChar *name,
9116 const xmlChar *value);
9117 xmlChar *
9118 xmlGetNoNsProp (xmlNodePtr node,
9119 const xmlChar *name);
9120 xmlChar *
9121 xmlGetProp (xmlNodePtr node,
9122 const xmlChar *name);
9123 xmlAttrPtr
9124 xmlHasProp (xmlNodePtr node,
9125 const xmlChar *name);
9126 xmlAttrPtr
9127 xmlHasNsProp (xmlNodePtr node,
9128 const xmlChar *name,
9129 const xmlChar *nameSpace);
9130 xmlChar *
9131 xmlGetNsProp (xmlNodePtr node,
9132 const xmlChar *name,
9133 const xmlChar *nameSpace);
9134 xmlNodePtr
9135 xmlStringGetNodeList (xmlDocPtr doc,
9136 const xmlChar *value);
9137 xmlNodePtr
9138 xmlStringLenGetNodeList (xmlDocPtr doc,
9139 const xmlChar *value,
9140 int len);
9141 xmlChar *
9142 xmlNodeListGetString (xmlDocPtr doc,
9143 xmlNodePtr list,
9144 int inLine);
9145 xmlChar *
9146 xmlNodeListGetRawString (xmlDocPtr doc,
9147 xmlNodePtr list,
9148 int inLine);
9149 void
9150 xmlNodeSetContent (xmlNodePtr cur,
9151 const xmlChar *content);
9152 void
9153 xmlNodeSetContentLen (xmlNodePtr cur,
9154 const xmlChar *content,
9155 int len);
9156 void
9157 xmlNodeAddContent (xmlNodePtr cur,
9158 const xmlChar *content);
9159 void
9160 xmlNodeAddContentLen (xmlNodePtr cur,
9161 const xmlChar *content,
9162 int len);
9163 xmlChar *
9164 xmlNodeGetContent (xmlNodePtr cur);
9165 int
9166 xmlNodeBufGetContent (xmlBufferPtr buffer,
9167 xmlNodePtr cur);
9168 xmlChar *
9169 xmlNodeGetLang (xmlNodePtr cur);
9170 int
9171 xmlNodeGetSpacePreserve (xmlNodePtr cur);
9172 void
9173 xmlNodeSetLang (xmlNodePtr cur,
9174 const xmlChar *lang);
9175 void
9176 xmlNodeSetSpacePreserve (xmlNodePtr cur,
9177 int val);
9178 xmlChar *
9179 xmlNodeGetBase (xmlDocPtr doc,
9180 xmlNodePtr cur);
9181 void
9182 xmlNodeSetBase (xmlNodePtr cur,
9183 const xmlChar *uri);
9184 int
9185 xmlRemoveProp (xmlAttrPtr cur);
9186 int
9187 xmlUnsetNsProp (xmlNodePtr node,
9188 xmlNsPtr ns,
9189 const xmlChar *name);
9190 int
9191 xmlUnsetProp (xmlNodePtr node,
9192 const xmlChar *name);
9193 void
9194 xmlBufferWriteCHAR (xmlBufferPtr buf,
9195 const xmlChar *string);
9196 void
9197 xmlBufferWriteChar (xmlBufferPtr buf,
9198 const char *string);
9199 void
9200 xmlBufferWriteQuotedString(xmlBufferPtr buf,
9201 const xmlChar *string);
9202 void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
9203 xmlDocPtr doc,
9204 xmlAttrPtr attr,
9205 const xmlChar *string);
9206 int
9207 xmlReconciliateNs (xmlDocPtr doc,
9208 xmlNodePtr tree);
9209 void
9210 xmlDocDumpFormatMemory (xmlDocPtr cur,
9211 xmlChar **mem,
9212 int *size,
9213 int format);
9214 void
9215 xmlDocDumpMemory (xmlDocPtr cur,
9216 xmlChar **mem,
9217 int *size);
9218 void
9219 xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
9220 xmlChar **doc_txt_ptr,
9221 int * doc_txt_len,
9222 const char *txt_encoding);
9223 void
9224 xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
9225 xmlChar **doc_txt_ptr,
9226 int * doc_txt_len,
9227 const char *txt_encoding,
9228 int format);
9229 int
9230 xmlDocFormatDump (FILE *f,
9231 xmlDocPtr cur,
9232 int format);
9233 int
9234 xmlDocDump (FILE *f,
9235 xmlDocPtr cur);
9236 void
9237 xmlElemDump (FILE *f,
9238 xmlDocPtr doc,
9239 xmlNodePtr cur);
9240 int
9241 xmlSaveFile (const char *filename,
9242 xmlDocPtr cur);
9243 int
9244 xmlSaveFormatFile (const char *filename,
9245 xmlDocPtr cur,
9246 int format);
9247 int
9248 xmlNodeDump (xmlBufferPtr buf,
9249 xmlDocPtr doc,
9250 xmlNodePtr cur,
9251 int level,
9252 int format);
9253 int
9254 xmlSaveFileTo (xmlOutputBufferPtr buf,
9255 xmlDocPtr cur,
9256 const char *encoding);
9257 int
9258 xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
9259 xmlDocPtr cur,
9260 const char *encoding,
9261 int format);
9262 void
9263 xmlNodeDumpOutput (xmlOutputBufferPtr buf,
9264 xmlDocPtr doc,
9265 xmlNodePtr cur,
9266 int level,
9267 int format,
9268 const char *encoding);
9269 int
9270 xmlSaveFormatFileEnc (const char *filename,
9271 xmlDocPtr cur,
9272 const char *encoding,
9273 int format);
9274 int
9275 xmlSaveFileEnc (const char *filename,
9276 xmlDocPtr cur,
9277 const char *encoding);
9278 int
9279 xmlIsXHTML (const xmlChar *systemID,
9280 const xmlChar *publicID);
9281 int
9282 xmlGetDocCompressMode (xmlDocPtr doc);
9283 void
9284 xmlSetDocCompressMode (xmlDocPtr doc,
9285 int mode);
9286 int
9287 xmlGetCompressMode (void);
9288 void
9289 xmlSetCompressMode (int mode);
9290 xmlDOMWrapCtxtPtr
9291 xmlDOMWrapNewCtxt (void);
9292 void
9293 xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
9294 int
9295 xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
9296 xmlNodePtr elem,
9297 int options);
9298 int
9299 xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
9300 xmlDocPtr sourceDoc,
9301 xmlNodePtr node,
9302 xmlDocPtr destDoc,
9303 xmlNodePtr destParent,
9304 int options);
9305 int
9306 xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
9307 xmlDocPtr doc,
9308 xmlNodePtr node,
9309 int options);
9310 int
9311 xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
9312 xmlDocPtr sourceDoc,
9313 xmlNodePtr node,
9314 xmlNodePtr *clonedNode,
9315 xmlDocPtr destDoc,
9316 xmlNodePtr destParent,
9317 int deep,
9318 int options);
9319 unsigned long
9320 xmlChildElementCount (xmlNodePtr parent);
9321 xmlNodePtr
9322 xmlNextElementSibling (xmlNodePtr node);
9323 xmlNodePtr
9324 xmlFirstElementChild (xmlNodePtr parent);
9325 xmlNodePtr
9326 xmlLastElementChild (xmlNodePtr parent);
9327 xmlNodePtr
9328 xmlPreviousElementSibling (xmlNodePtr node);
9329 typedef struct _xmlHashTable xmlHashTable;
9330 typedef xmlHashTable *xmlHashTablePtr;
9331 typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
9332 typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
9333 typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
9334 typedef void (*xmlHashScannerFull)(void *payload, void *data,
9335 const xmlChar *name, const xmlChar *name2,
9336 const xmlChar *name3);
9337 xmlHashTablePtr
9338 xmlHashCreate (int size);
9339 xmlHashTablePtr
9340 xmlHashCreateDict(int size,
9341 xmlDictPtr dict);
9342 void
9343 xmlHashFree (xmlHashTablePtr table,
9344 xmlHashDeallocator f);
9345 int
9346 xmlHashAddEntry (xmlHashTablePtr table,
9347 const xmlChar *name,
9348 void *userdata);
9349 int
9350 xmlHashUpdateEntry(xmlHashTablePtr table,
9351 const xmlChar *name,
9352 void *userdata,
9353 xmlHashDeallocator f);
9354 int
9355 xmlHashAddEntry2(xmlHashTablePtr table,
9356 const xmlChar *name,
9357 const xmlChar *name2,
9358 void *userdata);
9359 int
9360 xmlHashUpdateEntry2(xmlHashTablePtr table,
9361 const xmlChar *name,
9362 const xmlChar *name2,
9363 void *userdata,
9364 xmlHashDeallocator f);
9365 int
9366 xmlHashAddEntry3(xmlHashTablePtr table,
9367 const xmlChar *name,
9368 const xmlChar *name2,
9369 const xmlChar *name3,
9370 void *userdata);
9371 int
9372 xmlHashUpdateEntry3(xmlHashTablePtr table,
9373 const xmlChar *name,
9374 const xmlChar *name2,
9375 const xmlChar *name3,
9376 void *userdata,
9377 xmlHashDeallocator f);
9378 int
9379 xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
9380 xmlHashDeallocator f);
9381 int
9382 xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
9383 const xmlChar *name2, xmlHashDeallocator f);
9384 int
9385 xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
9386 const xmlChar *name2, const xmlChar *name3,
9387 xmlHashDeallocator f);
9388 void *
9389 xmlHashLookup (xmlHashTablePtr table,
9390 const xmlChar *name);
9391 void *
9392 xmlHashLookup2 (xmlHashTablePtr table,
9393 const xmlChar *name,
9394 const xmlChar *name2);
9395 void *
9396 xmlHashLookup3 (xmlHashTablePtr table,
9397 const xmlChar *name,
9398 const xmlChar *name2,
9399 const xmlChar *name3);
9400 void *
9401 xmlHashQLookup (xmlHashTablePtr table,
9402 const xmlChar *name,
9403 const xmlChar *prefix);
9404 void *
9405 xmlHashQLookup2 (xmlHashTablePtr table,
9406 const xmlChar *name,
9407 const xmlChar *prefix,
9408 const xmlChar *name2,
9409 const xmlChar *prefix2);
9410 void *
9411 xmlHashQLookup3 (xmlHashTablePtr table,
9412 const xmlChar *name,
9413 const xmlChar *prefix,
9414 const xmlChar *name2,
9415 const xmlChar *prefix2,
9416 const xmlChar *name3,
9417 const xmlChar *prefix3);
9418 xmlHashTablePtr
9419 xmlHashCopy (xmlHashTablePtr table,
9420 xmlHashCopier f);
9421 int
9422 xmlHashSize (xmlHashTablePtr table);
9423 void
9424 xmlHashScan (xmlHashTablePtr table,
9425 xmlHashScanner f,
9426 void *data);
9427 void
9428 xmlHashScan3 (xmlHashTablePtr table,
9429 const xmlChar *name,
9430 const xmlChar *name2,
9431 const xmlChar *name3,
9432 xmlHashScanner f,
9433 void *data);
9434 void
9435 xmlHashScanFull (xmlHashTablePtr table,
9436 xmlHashScannerFull f,
9437 void *data);
9438 void
9439 xmlHashScanFull3(xmlHashTablePtr table,
9440 const xmlChar *name,
9441 const xmlChar *name2,
9442 const xmlChar *name3,
9443 xmlHashScannerFull f,
9444 void *data);
9445 typedef enum {
9446 XML_ERR_NONE = 0,
9447 XML_ERR_WARNING = 1,
9448 XML_ERR_ERROR = 2,
9449 XML_ERR_FATAL = 3
9450 } xmlErrorLevel;
9451 typedef enum {
9452 XML_FROM_NONE = 0,
9453 XML_FROM_PARSER,
9454 XML_FROM_TREE,
9455 XML_FROM_NAMESPACE,
9456 XML_FROM_DTD,
9457 XML_FROM_HTML,
9458 XML_FROM_MEMORY,
9459 XML_FROM_OUTPUT,
9460 XML_FROM_IO,
9461 XML_FROM_FTP,
9462 XML_FROM_HTTP,
9463 XML_FROM_XINCLUDE,
9464 XML_FROM_XPATH,
9465 XML_FROM_XPOINTER,
9466 XML_FROM_REGEXP,
9467 XML_FROM_DATATYPE,
9468 XML_FROM_SCHEMASP,
9469 XML_FROM_SCHEMASV,
9470 XML_FROM_RELAXNGP,
9471 XML_FROM_RELAXNGV,
9472 XML_FROM_CATALOG,
9473 XML_FROM_C14N,
9474 XML_FROM_XSLT,
9475 XML_FROM_VALID,
9476 XML_FROM_CHECK,
9477 XML_FROM_WRITER,
9478 XML_FROM_MODULE,
9479 XML_FROM_I18N,
9480 XML_FROM_SCHEMATRONV
9481 } xmlErrorDomain;
9482 typedef struct _xmlError xmlError;
9483 typedef xmlError *xmlErrorPtr;
9484 struct _xmlError {
9485 int domain;
9486 int code;
9487 char *message;
9488 xmlErrorLevel level;
9489 char *file;
9490 int line;
9491 char *str1;
9492 char *str2;
9493 char *str3;
9494 int int1;
9495 int int2;
9496 void *ctxt;
9497 void *node;
9498 };
9499 typedef enum {
9500 XML_ERR_OK = 0,
9501 XML_ERR_INTERNAL_ERROR,
9502 XML_ERR_NO_MEMORY,
9503 XML_ERR_DOCUMENT_START,
9504 XML_ERR_DOCUMENT_EMPTY,
9505 XML_ERR_DOCUMENT_END,
9506 XML_ERR_INVALID_HEX_CHARREF,
9507 XML_ERR_INVALID_DEC_CHARREF,
9508 XML_ERR_INVALID_CHARREF,
9509 XML_ERR_INVALID_CHAR,
9510 XML_ERR_CHARREF_AT_EOF,
9511 XML_ERR_CHARREF_IN_PROLOG,
9512 XML_ERR_CHARREF_IN_EPILOG,
9513 XML_ERR_CHARREF_IN_DTD,
9514 XML_ERR_ENTITYREF_AT_EOF,
9515 XML_ERR_ENTITYREF_IN_PROLOG,
9516 XML_ERR_ENTITYREF_IN_EPILOG,
9517 XML_ERR_ENTITYREF_IN_DTD,
9518 XML_ERR_PEREF_AT_EOF,
9519 XML_ERR_PEREF_IN_PROLOG,
9520 XML_ERR_PEREF_IN_EPILOG,
9521 XML_ERR_PEREF_IN_INT_SUBSET,
9522 XML_ERR_ENTITYREF_NO_NAME,
9523 XML_ERR_ENTITYREF_SEMICOL_MISSING,
9524 XML_ERR_PEREF_NO_NAME,
9525 XML_ERR_PEREF_SEMICOL_MISSING,
9526 XML_ERR_UNDECLARED_ENTITY,
9527 XML_WAR_UNDECLARED_ENTITY,
9528 XML_ERR_UNPARSED_ENTITY,
9529 XML_ERR_ENTITY_IS_EXTERNAL,
9530 XML_ERR_ENTITY_IS_PARAMETER,
9531 XML_ERR_UNKNOWN_ENCODING,
9532 XML_ERR_UNSUPPORTED_ENCODING,
9533 XML_ERR_STRING_NOT_STARTED,
9534 XML_ERR_STRING_NOT_CLOSED,
9535 XML_ERR_NS_DECL_ERROR,
9536 XML_ERR_ENTITY_NOT_STARTED,
9537 XML_ERR_ENTITY_NOT_FINISHED,
9538 XML_ERR_LT_IN_ATTRIBUTE,
9539 XML_ERR_ATTRIBUTE_NOT_STARTED,
9540 XML_ERR_ATTRIBUTE_NOT_FINISHED,
9541 XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
9542 XML_ERR_ATTRIBUTE_REDEFINED,
9543 XML_ERR_LITERAL_NOT_STARTED,
9544 XML_ERR_LITERAL_NOT_FINISHED,
9545 XML_ERR_COMMENT_NOT_FINISHED,
9546 XML_ERR_PI_NOT_STARTED,
9547 XML_ERR_PI_NOT_FINISHED,
9548 XML_ERR_NOTATION_NOT_STARTED,
9549 XML_ERR_NOTATION_NOT_FINISHED,
9550 XML_ERR_ATTLIST_NOT_STARTED,
9551 XML_ERR_ATTLIST_NOT_FINISHED,
9552 XML_ERR_MIXED_NOT_STARTED,
9553 XML_ERR_MIXED_NOT_FINISHED,
9554 XML_ERR_ELEMCONTENT_NOT_STARTED,
9555 XML_ERR_ELEMCONTENT_NOT_FINISHED,
9556 XML_ERR_XMLDECL_NOT_STARTED,
9557 XML_ERR_XMLDECL_NOT_FINISHED,
9558 XML_ERR_CONDSEC_NOT_STARTED,
9559 XML_ERR_CONDSEC_NOT_FINISHED,
9560 XML_ERR_EXT_SUBSET_NOT_FINISHED,
9561 XML_ERR_DOCTYPE_NOT_FINISHED,
9562 XML_ERR_MISPLACED_CDATA_END,
9563 XML_ERR_CDATA_NOT_FINISHED,
9564 XML_ERR_RESERVED_XML_NAME,
9565 XML_ERR_SPACE_REQUIRED,
9566 XML_ERR_SEPARATOR_REQUIRED,
9567 XML_ERR_NMTOKEN_REQUIRED,
9568 XML_ERR_NAME_REQUIRED,
9569 XML_ERR_PCDATA_REQUIRED,
9570 XML_ERR_URI_REQUIRED,
9571 XML_ERR_PUBID_REQUIRED,
9572 XML_ERR_LT_REQUIRED,
9573 XML_ERR_GT_REQUIRED,
9574 XML_ERR_LTSLASH_REQUIRED,
9575 XML_ERR_EQUAL_REQUIRED,
9576 XML_ERR_TAG_NAME_MISMATCH,
9577 XML_ERR_TAG_NOT_FINISHED,
9578 XML_ERR_STANDALONE_VALUE,
9579 XML_ERR_ENCODING_NAME,
9580 XML_ERR_HYPHEN_IN_COMMENT,
9581 XML_ERR_INVALID_ENCODING,
9582 XML_ERR_EXT_ENTITY_STANDALONE,
9583 XML_ERR_CONDSEC_INVALID,
9584 XML_ERR_VALUE_REQUIRED,
9585 XML_ERR_NOT_WELL_BALANCED,
9586 XML_ERR_EXTRA_CONTENT,
9587 XML_ERR_ENTITY_CHAR_ERROR,
9588 XML_ERR_ENTITY_PE_INTERNAL,
9589 XML_ERR_ENTITY_LOOP,
9590 XML_ERR_ENTITY_BOUNDARY,
9591 XML_ERR_INVALID_URI,
9592 XML_ERR_URI_FRAGMENT,
9593 XML_WAR_CATALOG_PI,
9594 XML_ERR_NO_DTD,
9595 XML_ERR_CONDSEC_INVALID_KEYWORD,
9596 XML_ERR_VERSION_MISSING,
9597 XML_WAR_UNKNOWN_VERSION,
9598 XML_WAR_LANG_VALUE,
9599 XML_WAR_NS_URI,
9600 XML_WAR_NS_URI_RELATIVE,
9601 XML_ERR_MISSING_ENCODING,
9602 XML_WAR_SPACE_VALUE,
9603 XML_ERR_NOT_STANDALONE,
9604 XML_ERR_ENTITY_PROCESSING,
9605 XML_ERR_NOTATION_PROCESSING,
9606 XML_WAR_NS_COLUMN,
9607 XML_WAR_ENTITY_REDEFINED,
9608 XML_ERR_UNKNOWN_VERSION,
9609 XML_ERR_VERSION_MISMATCH,
9610 XML_NS_ERR_XML_NAMESPACE = 200,
9611 XML_NS_ERR_UNDEFINED_NAMESPACE,
9612 XML_NS_ERR_QNAME,
9613 XML_NS_ERR_ATTRIBUTE_REDEFINED,
9614 XML_NS_ERR_EMPTY,
9615 XML_NS_ERR_COLON,
9616 XML_DTD_ATTRIBUTE_DEFAULT = 500,
9617 XML_DTD_ATTRIBUTE_REDEFINED,
9618 XML_DTD_ATTRIBUTE_VALUE,
9619 XML_DTD_CONTENT_ERROR,
9620 XML_DTD_CONTENT_MODEL,
9621 XML_DTD_CONTENT_NOT_DETERMINIST,
9622 XML_DTD_DIFFERENT_PREFIX,
9623 XML_DTD_ELEM_DEFAULT_NAMESPACE,
9624 XML_DTD_ELEM_NAMESPACE,
9625 XML_DTD_ELEM_REDEFINED,
9626 XML_DTD_EMPTY_NOTATION,
9627 XML_DTD_ENTITY_TYPE,
9628 XML_DTD_ID_FIXED,
9629 XML_DTD_ID_REDEFINED,
9630 XML_DTD_ID_SUBSET,
9631 XML_DTD_INVALID_CHILD,
9632 XML_DTD_INVALID_DEFAULT,
9633 XML_DTD_LOAD_ERROR,
9634 XML_DTD_MISSING_ATTRIBUTE,
9635 XML_DTD_MIXED_CORRUPT,
9636 XML_DTD_MULTIPLE_ID,
9637 XML_DTD_NO_DOC,
9638 XML_DTD_NO_DTD,
9639 XML_DTD_NO_ELEM_NAME,
9640 XML_DTD_NO_PREFIX,
9641 XML_DTD_NO_ROOT,
9642 XML_DTD_NOTATION_REDEFINED,
9643 XML_DTD_NOTATION_VALUE,
9644 XML_DTD_NOT_EMPTY,
9645 XML_DTD_NOT_PCDATA,
9646 XML_DTD_NOT_STANDALONE,
9647 XML_DTD_ROOT_NAME,
9648 XML_DTD_STANDALONE_WHITE_SPACE,
9649 XML_DTD_UNKNOWN_ATTRIBUTE,
9650 XML_DTD_UNKNOWN_ELEM,
9651 XML_DTD_UNKNOWN_ENTITY,
9652 XML_DTD_UNKNOWN_ID,
9653 XML_DTD_UNKNOWN_NOTATION,
9654 XML_DTD_STANDALONE_DEFAULTED,
9655 XML_DTD_XMLID_VALUE,
9656 XML_DTD_XMLID_TYPE,
9657 XML_DTD_DUP_TOKEN,
9658 XML_HTML_STRUCURE_ERROR = 800,
9659 XML_HTML_UNKNOWN_TAG,
9660 XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000,
9661 XML_RNGP_ATTR_CONFLICT,
9662 XML_RNGP_ATTRIBUTE_CHILDREN,
9663 XML_RNGP_ATTRIBUTE_CONTENT,
9664 XML_RNGP_ATTRIBUTE_EMPTY,
9665 XML_RNGP_ATTRIBUTE_NOOP,
9666 XML_RNGP_CHOICE_CONTENT,
9667 XML_RNGP_CHOICE_EMPTY,
9668 XML_RNGP_CREATE_FAILURE,
9669 XML_RNGP_DATA_CONTENT,
9670 XML_RNGP_DEF_CHOICE_AND_INTERLEAVE,
9671 XML_RNGP_DEFINE_CREATE_FAILED,
9672 XML_RNGP_DEFINE_EMPTY,
9673 XML_RNGP_DEFINE_MISSING,
9674 XML_RNGP_DEFINE_NAME_MISSING,
9675 XML_RNGP_ELEM_CONTENT_EMPTY,
9676 XML_RNGP_ELEM_CONTENT_ERROR,
9677 XML_RNGP_ELEMENT_EMPTY,
9678 XML_RNGP_ELEMENT_CONTENT,
9679 XML_RNGP_ELEMENT_NAME,
9680 XML_RNGP_ELEMENT_NO_CONTENT,
9681 XML_RNGP_ELEM_TEXT_CONFLICT,
9682 XML_RNGP_EMPTY,
9683 XML_RNGP_EMPTY_CONSTRUCT,
9684 XML_RNGP_EMPTY_CONTENT,
9685 XML_RNGP_EMPTY_NOT_EMPTY,
9686 XML_RNGP_ERROR_TYPE_LIB,
9687 XML_RNGP_EXCEPT_EMPTY,
9688 XML_RNGP_EXCEPT_MISSING,
9689 XML_RNGP_EXCEPT_MULTIPLE,
9690 XML_RNGP_EXCEPT_NO_CONTENT,
9691 XML_RNGP_EXTERNALREF_EMTPY,
9692 XML_RNGP_EXTERNAL_REF_FAILURE,
9693 XML_RNGP_EXTERNALREF_RECURSE,
9694 XML_RNGP_FORBIDDEN_ATTRIBUTE,
9695 XML_RNGP_FOREIGN_ELEMENT,
9696 XML_RNGP_GRAMMAR_CONTENT,
9697 XML_RNGP_GRAMMAR_EMPTY,
9698 XML_RNGP_GRAMMAR_MISSING,
9699 XML_RNGP_GRAMMAR_NO_START,
9700 XML_RNGP_GROUP_ATTR_CONFLICT,
9701 XML_RNGP_HREF_ERROR,
9702 XML_RNGP_INCLUDE_EMPTY,
9703 XML_RNGP_INCLUDE_FAILURE,
9704 XML_RNGP_INCLUDE_RECURSE,
9705 XML_RNGP_INTERLEAVE_ADD,
9706 XML_RNGP_INTERLEAVE_CREATE_FAILED,
9707 XML_RNGP_INTERLEAVE_EMPTY,
9708 XML_RNGP_INTERLEAVE_NO_CONTENT,
9709 XML_RNGP_INVALID_DEFINE_NAME,
9710 XML_RNGP_INVALID_URI,
9711 XML_RNGP_INVALID_VALUE,
9712 XML_RNGP_MISSING_HREF,
9713 XML_RNGP_NAME_MISSING,
9714 XML_RNGP_NEED_COMBINE,
9715 XML_RNGP_NOTALLOWED_NOT_EMPTY,
9716 XML_RNGP_NSNAME_ATTR_ANCESTOR,
9717 XML_RNGP_NSNAME_NO_NS,
9718 XML_RNGP_PARAM_FORBIDDEN,
9719 XML_RNGP_PARAM_NAME_MISSING,
9720 XML_RNGP_PARENTREF_CREATE_FAILED,
9721 XML_RNGP_PARENTREF_NAME_INVALID,
9722 XML_RNGP_PARENTREF_NO_NAME,
9723 XML_RNGP_PARENTREF_NO_PARENT,
9724 XML_RNGP_PARENTREF_NOT_EMPTY,
9725 XML_RNGP_PARSE_ERROR,
9726 XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME,
9727 XML_RNGP_PAT_ATTR_ATTR,
9728 XML_RNGP_PAT_ATTR_ELEM,
9729 XML_RNGP_PAT_DATA_EXCEPT_ATTR,
9730 XML_RNGP_PAT_DATA_EXCEPT_ELEM,
9731 XML_RNGP_PAT_DATA_EXCEPT_EMPTY,
9732 XML_RNGP_PAT_DATA_EXCEPT_GROUP,
9733 XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE,
9734 XML_RNGP_PAT_DATA_EXCEPT_LIST,
9735 XML_RNGP_PAT_DATA_EXCEPT_ONEMORE,
9736 XML_RNGP_PAT_DATA_EXCEPT_REF,
9737 XML_RNGP_PAT_DATA_EXCEPT_TEXT,
9738 XML_RNGP_PAT_LIST_ATTR,
9739 XML_RNGP_PAT_LIST_ELEM,
9740 XML_RNGP_PAT_LIST_INTERLEAVE,
9741 XML_RNGP_PAT_LIST_LIST,
9742 XML_RNGP_PAT_LIST_REF,
9743 XML_RNGP_PAT_LIST_TEXT,
9744 XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME,
9745 XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME,
9746 XML_RNGP_PAT_ONEMORE_GROUP_ATTR,
9747 XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR,
9748 XML_RNGP_PAT_START_ATTR,
9749 XML_RNGP_PAT_START_DATA,
9750 XML_RNGP_PAT_START_EMPTY,
9751 XML_RNGP_PAT_START_GROUP,
9752 XML_RNGP_PAT_START_INTERLEAVE,
9753 XML_RNGP_PAT_START_LIST,
9754 XML_RNGP_PAT_START_ONEMORE,
9755 XML_RNGP_PAT_START_TEXT,
9756 XML_RNGP_PAT_START_VALUE,
9757 XML_RNGP_PREFIX_UNDEFINED,
9758 XML_RNGP_REF_CREATE_FAILED,
9759 XML_RNGP_REF_CYCLE,
9760 XML_RNGP_REF_NAME_INVALID,
9761 XML_RNGP_REF_NO_DEF,
9762 XML_RNGP_REF_NO_NAME,
9763 XML_RNGP_REF_NOT_EMPTY,
9764 XML_RNGP_START_CHOICE_AND_INTERLEAVE,
9765 XML_RNGP_START_CONTENT,
9766 XML_RNGP_START_EMPTY,
9767 XML_RNGP_START_MISSING,
9768 XML_RNGP_TEXT_EXPECTED,
9769 XML_RNGP_TEXT_HAS_CHILD,
9770 XML_RNGP_TYPE_MISSING,
9771 XML_RNGP_TYPE_NOT_FOUND,
9772 XML_RNGP_TYPE_VALUE,
9773 XML_RNGP_UNKNOWN_ATTRIBUTE,
9774 XML_RNGP_UNKNOWN_COMBINE,
9775 XML_RNGP_UNKNOWN_CONSTRUCT,
9776 XML_RNGP_UNKNOWN_TYPE_LIB,
9777 XML_RNGP_URI_FRAGMENT,
9778 XML_RNGP_URI_NOT_ABSOLUTE,
9779 XML_RNGP_VALUE_EMPTY,
9780 XML_RNGP_VALUE_NO_CONTENT,
9781 XML_RNGP_XMLNS_NAME,
9782 XML_RNGP_XML_NS,
9783 XML_XPATH_EXPRESSION_OK = 1200,
9784 XML_XPATH_NUMBER_ERROR,
9785 XML_XPATH_UNFINISHED_LITERAL_ERROR,
9786 XML_XPATH_START_LITERAL_ERROR,
9787 XML_XPATH_VARIABLE_REF_ERROR,
9788 XML_XPATH_UNDEF_VARIABLE_ERROR,
9789 XML_XPATH_INVALID_PREDICATE_ERROR,
9790 XML_XPATH_EXPR_ERROR,
9791 XML_XPATH_UNCLOSED_ERROR,
9792 XML_XPATH_UNKNOWN_FUNC_ERROR,
9793 XML_XPATH_INVALID_OPERAND,
9794 XML_XPATH_INVALID_TYPE,
9795 XML_XPATH_INVALID_ARITY,
9796 XML_XPATH_INVALID_CTXT_SIZE,
9797 XML_XPATH_INVALID_CTXT_POSITION,
9798 XML_XPATH_MEMORY_ERROR,
9799 XML_XPTR_SYNTAX_ERROR,
9800 XML_XPTR_RESOURCE_ERROR,
9801 XML_XPTR_SUB_RESOURCE_ERROR,
9802 XML_XPATH_UNDEF_PREFIX_ERROR,
9803 XML_XPATH_ENCODING_ERROR,
9804 XML_XPATH_INVALID_CHAR_ERROR,
9805 XML_TREE_INVALID_HEX = 1300,
9806 XML_TREE_INVALID_DEC,
9807 XML_TREE_UNTERMINATED_ENTITY,
9808 XML_TREE_NOT_UTF8,
9809 XML_SAVE_NOT_UTF8 = 1400,
9810 XML_SAVE_CHAR_INVALID,
9811 XML_SAVE_NO_DOCTYPE,
9812 XML_SAVE_UNKNOWN_ENCODING,
9813 XML_REGEXP_COMPILE_ERROR = 1450,
9814 XML_IO_UNKNOWN = 1500,
9815 XML_IO_EACCES,
9816 XML_IO_EAGAIN,
9817 XML_IO_EBADF,
9818 XML_IO_EBADMSG,
9819 XML_IO_EBUSY,
9820 XML_IO_ECANCELED,
9821 XML_IO_ECHILD,
9822 XML_IO_EDEADLK,
9823 XML_IO_EDOM,
9824 XML_IO_EEXIST,
9825 XML_IO_EFAULT,
9826 XML_IO_EFBIG,
9827 XML_IO_EINPROGRESS,
9828 XML_IO_EINTR,
9829 XML_IO_EINVAL,
9830 XML_IO_EIO,
9831 XML_IO_EISDIR,
9832 XML_IO_EMFILE,
9833 XML_IO_EMLINK,
9834 XML_IO_EMSGSIZE,
9835 XML_IO_ENAMETOOLONG,
9836 XML_IO_ENFILE,
9837 XML_IO_ENODEV,
9838 XML_IO_ENOENT,
9839 XML_IO_ENOEXEC,
9840 XML_IO_ENOLCK,
9841 XML_IO_ENOMEM,
9842 XML_IO_ENOSPC,
9843 XML_IO_ENOSYS,
9844 XML_IO_ENOTDIR,
9845 XML_IO_ENOTEMPTY,
9846 XML_IO_ENOTSUP,
9847 XML_IO_ENOTTY,
9848 XML_IO_ENXIO,
9849 XML_IO_EPERM,
9850 XML_IO_EPIPE,
9851 XML_IO_ERANGE,
9852 XML_IO_EROFS,
9853 XML_IO_ESPIPE,
9854 XML_IO_ESRCH,
9855 XML_IO_ETIMEDOUT,
9856 XML_IO_EXDEV,
9857 XML_IO_NETWORK_ATTEMPT,
9858 XML_IO_ENCODER,
9859 XML_IO_FLUSH,
9860 XML_IO_WRITE,
9861 XML_IO_NO_INPUT,
9862 XML_IO_BUFFER_FULL,
9863 XML_IO_LOAD_ERROR,
9864 XML_IO_ENOTSOCK,
9865 XML_IO_EISCONN,
9866 XML_IO_ECONNREFUSED,
9867 XML_IO_ENETUNREACH,
9868 XML_IO_EADDRINUSE,
9869 XML_IO_EALREADY,
9870 XML_IO_EAFNOSUPPORT,
9871 XML_XINCLUDE_RECURSION=1600,
9872 XML_XINCLUDE_PARSE_VALUE,
9873 XML_XINCLUDE_ENTITY_DEF_MISMATCH,
9874 XML_XINCLUDE_NO_HREF,
9875 XML_XINCLUDE_NO_FALLBACK,
9876 XML_XINCLUDE_HREF_URI,
9877 XML_XINCLUDE_TEXT_FRAGMENT,
9878 XML_XINCLUDE_TEXT_DOCUMENT,
9879 XML_XINCLUDE_INVALID_CHAR,
9880 XML_XINCLUDE_BUILD_FAILED,
9881 XML_XINCLUDE_UNKNOWN_ENCODING,
9882 XML_XINCLUDE_MULTIPLE_ROOT,
9883 XML_XINCLUDE_XPTR_FAILED,
9884 XML_XINCLUDE_XPTR_RESULT,
9885 XML_XINCLUDE_INCLUDE_IN_INCLUDE,
9886 XML_XINCLUDE_FALLBACKS_IN_INCLUDE,
9887 XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE,
9888 XML_XINCLUDE_DEPRECATED_NS,
9889 XML_XINCLUDE_FRAGMENT_ID,
9890 XML_CATALOG_MISSING_ATTR = 1650,
9891 XML_CATALOG_ENTRY_BROKEN,
9892 XML_CATALOG_PREFER_VALUE,
9893 XML_CATALOG_NOT_CATALOG,
9894 XML_CATALOG_RECURSION,
9895 XML_SCHEMAP_PREFIX_UNDEFINED = 1700,
9896 XML_SCHEMAP_ATTRFORMDEFAULT_VALUE,
9897 XML_SCHEMAP_ATTRGRP_NONAME_NOREF,
9898 XML_SCHEMAP_ATTR_NONAME_NOREF,
9899 XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF,
9900 XML_SCHEMAP_ELEMFORMDEFAULT_VALUE,
9901 XML_SCHEMAP_ELEM_NONAME_NOREF,
9902 XML_SCHEMAP_EXTENSION_NO_BASE,
9903 XML_SCHEMAP_FACET_NO_VALUE,
9904 XML_SCHEMAP_FAILED_BUILD_IMPORT,
9905 XML_SCHEMAP_GROUP_NONAME_NOREF,
9906 XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI,
9907 XML_SCHEMAP_IMPORT_REDEFINE_NSNAME,
9908 XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI,
9909 XML_SCHEMAP_INVALID_BOOLEAN,
9910 XML_SCHEMAP_INVALID_ENUM,
9911 XML_SCHEMAP_INVALID_FACET,
9912 XML_SCHEMAP_INVALID_FACET_VALUE,
9913 XML_SCHEMAP_INVALID_MAXOCCURS,
9914 XML_SCHEMAP_INVALID_MINOCCURS,
9915 XML_SCHEMAP_INVALID_REF_AND_SUBTYPE,
9916 XML_SCHEMAP_INVALID_WHITE_SPACE,
9917 XML_SCHEMAP_NOATTR_NOREF,
9918 XML_SCHEMAP_NOTATION_NO_NAME,
9919 XML_SCHEMAP_NOTYPE_NOREF,
9920 XML_SCHEMAP_REF_AND_SUBTYPE,
9921 XML_SCHEMAP_RESTRICTION_NONAME_NOREF,
9922 XML_SCHEMAP_SIMPLETYPE_NONAME,
9923 XML_SCHEMAP_TYPE_AND_SUBTYPE,
9924 XML_SCHEMAP_UNKNOWN_ALL_CHILD,
9925 XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD,
9926 XML_SCHEMAP_UNKNOWN_ATTR_CHILD,
9927 XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD,
9928 XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP,
9929 XML_SCHEMAP_UNKNOWN_BASE_TYPE,
9930 XML_SCHEMAP_UNKNOWN_CHOICE_CHILD,
9931 XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD,
9932 XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD,
9933 XML_SCHEMAP_UNKNOWN_ELEM_CHILD,
9934 XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD,
9935 XML_SCHEMAP_UNKNOWN_FACET_CHILD,
9936 XML_SCHEMAP_UNKNOWN_FACET_TYPE,
9937 XML_SCHEMAP_UNKNOWN_GROUP_CHILD,
9938 XML_SCHEMAP_UNKNOWN_IMPORT_CHILD,
9939 XML_SCHEMAP_UNKNOWN_LIST_CHILD,
9940 XML_SCHEMAP_UNKNOWN_NOTATION_CHILD,
9941 XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD,
9942 XML_SCHEMAP_UNKNOWN_REF,
9943 XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
9944 XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD,
9945 XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD,
9946 XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD,
9947 XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD,
9948 XML_SCHEMAP_UNKNOWN_TYPE,
9949 XML_SCHEMAP_UNKNOWN_UNION_CHILD,
9950 XML_SCHEMAP_ELEM_DEFAULT_FIXED,
9951 XML_SCHEMAP_REGEXP_INVALID,
9952 XML_SCHEMAP_FAILED_LOAD,
9953 XML_SCHEMAP_NOTHING_TO_PARSE,
9954 XML_SCHEMAP_NOROOT,
9955 XML_SCHEMAP_REDEFINED_GROUP,
9956 XML_SCHEMAP_REDEFINED_TYPE,
9957 XML_SCHEMAP_REDEFINED_ELEMENT,
9958 XML_SCHEMAP_REDEFINED_ATTRGROUP,
9959 XML_SCHEMAP_REDEFINED_ATTR,
9960 XML_SCHEMAP_REDEFINED_NOTATION,
9961 XML_SCHEMAP_FAILED_PARSE,
9962 XML_SCHEMAP_UNKNOWN_PREFIX,
9963 XML_SCHEMAP_DEF_AND_PREFIX,
9964 XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD,
9965 XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI,
9966 XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI,
9967 XML_SCHEMAP_NOT_SCHEMA,
9968 XML_SCHEMAP_UNKNOWN_MEMBER_TYPE,
9969 XML_SCHEMAP_INVALID_ATTR_USE,
9970 XML_SCHEMAP_RECURSIVE,
9971 XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE,
9972 XML_SCHEMAP_INVALID_ATTR_COMBINATION,
9973 XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION,
9974 XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD,
9975 XML_SCHEMAP_INVALID_ATTR_NAME,
9976 XML_SCHEMAP_REF_AND_CONTENT,
9977 XML_SCHEMAP_CT_PROPS_CORRECT_1,
9978 XML_SCHEMAP_CT_PROPS_CORRECT_2,
9979 XML_SCHEMAP_CT_PROPS_CORRECT_3,
9980 XML_SCHEMAP_CT_PROPS_CORRECT_4,
9981 XML_SCHEMAP_CT_PROPS_CORRECT_5,
9982 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1,
9983 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1,
9984 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2,
9985 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2,
9986 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3,
9987 XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER,
9988 XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE,
9989 XML_SCHEMAP_UNION_NOT_EXPRESSIBLE,
9990 XML_SCHEMAP_SRC_IMPORT_3_1,
9991 XML_SCHEMAP_SRC_IMPORT_3_2,
9992 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1,
9993 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2,
9994 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3,
9995 XML_SCHEMAP_COS_CT_EXTENDS_1_3,
9996 XML_SCHEMAV_NOROOT = 1801,
9997 XML_SCHEMAV_UNDECLAREDELEM,
9998 XML_SCHEMAV_NOTTOPLEVEL,
9999 XML_SCHEMAV_MISSING,
10000 XML_SCHEMAV_WRONGELEM,
10001 XML_SCHEMAV_NOTYPE,
10002 XML_SCHEMAV_NOROLLBACK,
10003 XML_SCHEMAV_ISABSTRACT,
10004 XML_SCHEMAV_NOTEMPTY,
10005 XML_SCHEMAV_ELEMCONT,
10006 XML_SCHEMAV_HAVEDEFAULT,
10007 XML_SCHEMAV_NOTNILLABLE,
10008 XML_SCHEMAV_EXTRACONTENT,
10009 XML_SCHEMAV_INVALIDATTR,
10010 XML_SCHEMAV_INVALIDELEM,
10011 XML_SCHEMAV_NOTDETERMINIST,
10012 XML_SCHEMAV_CONSTRUCT,
10013 XML_SCHEMAV_INTERNAL,
10014 XML_SCHEMAV_NOTSIMPLE,
10015 XML_SCHEMAV_ATTRUNKNOWN,
10016 XML_SCHEMAV_ATTRINVALID,
10017 XML_SCHEMAV_VALUE,
10018 XML_SCHEMAV_FACET,
10019 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
10020 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2,
10021 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3,
10022 XML_SCHEMAV_CVC_TYPE_3_1_1,
10023 XML_SCHEMAV_CVC_TYPE_3_1_2,
10024 XML_SCHEMAV_CVC_FACET_VALID,
10025 XML_SCHEMAV_CVC_LENGTH_VALID,
10026 XML_SCHEMAV_CVC_MINLENGTH_VALID,
10027 XML_SCHEMAV_CVC_MAXLENGTH_VALID,
10028 XML_SCHEMAV_CVC_MININCLUSIVE_VALID,
10029 XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID,
10030 XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID,
10031 XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID,
10032 XML_SCHEMAV_CVC_TOTALDIGITS_VALID,
10033 XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID,
10034 XML_SCHEMAV_CVC_PATTERN_VALID,
10035 XML_SCHEMAV_CVC_ENUMERATION_VALID,
10036 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1,
10037 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
10038 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3,
10039 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4,
10040 XML_SCHEMAV_CVC_ELT_1,
10041 XML_SCHEMAV_CVC_ELT_2,
10042 XML_SCHEMAV_CVC_ELT_3_1,
10043 XML_SCHEMAV_CVC_ELT_3_2_1,
10044 XML_SCHEMAV_CVC_ELT_3_2_2,
10045 XML_SCHEMAV_CVC_ELT_4_1,
10046 XML_SCHEMAV_CVC_ELT_4_2,
10047 XML_SCHEMAV_CVC_ELT_4_3,
10048 XML_SCHEMAV_CVC_ELT_5_1_1,
10049 XML_SCHEMAV_CVC_ELT_5_1_2,
10050 XML_SCHEMAV_CVC_ELT_5_2_1,
10051 XML_SCHEMAV_CVC_ELT_5_2_2_1,
10052 XML_SCHEMAV_CVC_ELT_5_2_2_2_1,
10053 XML_SCHEMAV_CVC_ELT_5_2_2_2_2,
10054 XML_SCHEMAV_CVC_ELT_6,
10055 XML_SCHEMAV_CVC_ELT_7,
10056 XML_SCHEMAV_CVC_ATTRIBUTE_1,
10057 XML_SCHEMAV_CVC_ATTRIBUTE_2,
10058 XML_SCHEMAV_CVC_ATTRIBUTE_3,
10059 XML_SCHEMAV_CVC_ATTRIBUTE_4,
10060 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1,
10061 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1,
10062 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2,
10063 XML_SCHEMAV_CVC_COMPLEX_TYPE_4,
10064 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1,
10065 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2,
10066 XML_SCHEMAV_ELEMENT_CONTENT,
10067 XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING,
10068 XML_SCHEMAV_CVC_COMPLEX_TYPE_1,
10069 XML_SCHEMAV_CVC_AU,
10070 XML_SCHEMAV_CVC_TYPE_1,
10071 XML_SCHEMAV_CVC_TYPE_2,
10072 XML_SCHEMAV_CVC_IDC,
10073 XML_SCHEMAV_CVC_WILDCARD,
10074 XML_SCHEMAV_MISC,
10075 XML_XPTR_UNKNOWN_SCHEME = 1900,
10076 XML_XPTR_CHILDSEQ_START,
10077 XML_XPTR_EVAL_FAILED,
10078 XML_XPTR_EXTRA_OBJECTS,
10079 XML_C14N_CREATE_CTXT = 1950,
10080 XML_C14N_REQUIRES_UTF8,
10081 XML_C14N_CREATE_STACK,
10082 XML_C14N_INVALID_NODE,
10083 XML_C14N_UNKNOW_NODE,
10084 XML_C14N_RELATIVE_NAMESPACE,
10085 XML_FTP_PASV_ANSWER = 2000,
10086 XML_FTP_EPSV_ANSWER,
10087 XML_FTP_ACCNT,
10088 XML_FTP_URL_SYNTAX,
10089 XML_HTTP_URL_SYNTAX = 2020,
10090 XML_HTTP_USE_IP,
10091 XML_HTTP_UNKNOWN_HOST,
10092 XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
10093 XML_SCHEMAP_SRC_SIMPLE_TYPE_2,
10094 XML_SCHEMAP_SRC_SIMPLE_TYPE_3,
10095 XML_SCHEMAP_SRC_SIMPLE_TYPE_4,
10096 XML_SCHEMAP_SRC_RESOLVE,
10097 XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE,
10098 XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE,
10099 XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES,
10100 XML_SCHEMAP_ST_PROPS_CORRECT_1,
10101 XML_SCHEMAP_ST_PROPS_CORRECT_2,
10102 XML_SCHEMAP_ST_PROPS_CORRECT_3,
10103 XML_SCHEMAP_COS_ST_RESTRICTS_1_1,
10104 XML_SCHEMAP_COS_ST_RESTRICTS_1_2,
10105 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1,
10106 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2,
10107 XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
10108 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1,
10109 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2,
10110 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1,
10111 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2,
10112 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3,
10113 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4,
10114 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5,
10115 XML_SCHEMAP_COS_ST_RESTRICTS_3_1,
10116 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1,
10117 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2,
10118 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2,
10119 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1,
10120 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3,
10121 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4,
10122 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5,
10123 XML_SCHEMAP_COS_ST_DERIVED_OK_2_1,
10124 XML_SCHEMAP_COS_ST_DERIVED_OK_2_2,
10125 XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
10126 XML_SCHEMAP_S4S_ELEM_MISSING,
10127 XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
10128 XML_SCHEMAP_S4S_ATTR_MISSING,
10129 XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
10130 XML_SCHEMAP_SRC_ELEMENT_1,
10131 XML_SCHEMAP_SRC_ELEMENT_2_1,
10132 XML_SCHEMAP_SRC_ELEMENT_2_2,
10133 XML_SCHEMAP_SRC_ELEMENT_3,
10134 XML_SCHEMAP_P_PROPS_CORRECT_1,
10135 XML_SCHEMAP_P_PROPS_CORRECT_2_1,
10136 XML_SCHEMAP_P_PROPS_CORRECT_2_2,
10137 XML_SCHEMAP_E_PROPS_CORRECT_2,
10138 XML_SCHEMAP_E_PROPS_CORRECT_3,
10139 XML_SCHEMAP_E_PROPS_CORRECT_4,
10140 XML_SCHEMAP_E_PROPS_CORRECT_5,
10141 XML_SCHEMAP_E_PROPS_CORRECT_6,
10142 XML_SCHEMAP_SRC_INCLUDE,
10143 XML_SCHEMAP_SRC_ATTRIBUTE_1,
10144 XML_SCHEMAP_SRC_ATTRIBUTE_2,
10145 XML_SCHEMAP_SRC_ATTRIBUTE_3_1,
10146 XML_SCHEMAP_SRC_ATTRIBUTE_3_2,
10147 XML_SCHEMAP_SRC_ATTRIBUTE_4,
10148 XML_SCHEMAP_NO_XMLNS,
10149 XML_SCHEMAP_NO_XSI,
10150 XML_SCHEMAP_COS_VALID_DEFAULT_1,
10151 XML_SCHEMAP_COS_VALID_DEFAULT_2_1,
10152 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1,
10153 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2,
10154 XML_SCHEMAP_CVC_SIMPLE_TYPE,
10155 XML_SCHEMAP_COS_CT_EXTENDS_1_1,
10156 XML_SCHEMAP_SRC_IMPORT_1_1,
10157 XML_SCHEMAP_SRC_IMPORT_1_2,
10158 XML_SCHEMAP_SRC_IMPORT_2,
10159 XML_SCHEMAP_SRC_IMPORT_2_1,
10160 XML_SCHEMAP_SRC_IMPORT_2_2,
10161 XML_SCHEMAP_INTERNAL,
10162 XML_SCHEMAP_NOT_DETERMINISTIC,
10163 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1,
10164 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2,
10165 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3,
10166 XML_SCHEMAP_MG_PROPS_CORRECT_1,
10167 XML_SCHEMAP_MG_PROPS_CORRECT_2,
10168 XML_SCHEMAP_SRC_CT_1,
10169 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3,
10170 XML_SCHEMAP_AU_PROPS_CORRECT_2,
10171 XML_SCHEMAP_A_PROPS_CORRECT_2,
10172 XML_SCHEMAP_C_PROPS_CORRECT,
10173 XML_SCHEMAP_SRC_REDEFINE,
10174 XML_SCHEMAP_SRC_IMPORT,
10175 XML_SCHEMAP_WARN_SKIP_SCHEMA,
10176 XML_SCHEMAP_WARN_UNLOCATED_SCHEMA,
10177 XML_SCHEMAP_WARN_ATTR_REDECL_PROH,
10178 XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH,
10179 XML_SCHEMAP_AG_PROPS_CORRECT,
10180 XML_SCHEMAP_COS_CT_EXTENDS_1_2,
10181 XML_SCHEMAP_AU_PROPS_CORRECT,
10182 XML_SCHEMAP_A_PROPS_CORRECT_3,
10183 XML_SCHEMAP_COS_ALL_LIMITED,
10184 XML_SCHEMATRONV_ASSERT = 4000,
10185 XML_SCHEMATRONV_REPORT,
10186 XML_MODULE_OPEN = 4900,
10187 XML_MODULE_CLOSE,
10188 XML_CHECK_FOUND_ELEMENT = 5000,
10189 XML_CHECK_FOUND_ATTRIBUTE,
10190 XML_CHECK_FOUND_TEXT,
10191 XML_CHECK_FOUND_CDATA,
10192 XML_CHECK_FOUND_ENTITYREF,
10193 XML_CHECK_FOUND_ENTITY,
10194 XML_CHECK_FOUND_PI,
10195 XML_CHECK_FOUND_COMMENT,
10196 XML_CHECK_FOUND_DOCTYPE,
10197 XML_CHECK_FOUND_FRAGMENT,
10198 XML_CHECK_FOUND_NOTATION,
10199 XML_CHECK_UNKNOWN_NODE,
10200 XML_CHECK_ENTITY_TYPE,
10201 XML_CHECK_NO_PARENT,
10202 XML_CHECK_NO_DOC,
10203 XML_CHECK_NO_NAME,
10204 XML_CHECK_NO_ELEM,
10205 XML_CHECK_WRONG_DOC,
10206 XML_CHECK_NO_PREV,
10207 XML_CHECK_WRONG_PREV,
10208 XML_CHECK_NO_NEXT,
10209 XML_CHECK_WRONG_NEXT,
10210 XML_CHECK_NOT_DTD,
10211 XML_CHECK_NOT_ATTR,
10212 XML_CHECK_NOT_ATTR_DECL,
10213 XML_CHECK_NOT_ELEM_DECL,
10214 XML_CHECK_NOT_ENTITY_DECL,
10215 XML_CHECK_NOT_NS_DECL,
10216 XML_CHECK_NO_HREF,
10217 XML_CHECK_WRONG_PARENT,
10218 XML_CHECK_NS_SCOPE,
10219 XML_CHECK_NS_ANCESTOR,
10220 XML_CHECK_NOT_UTF8,
10221 XML_CHECK_NO_DICT,
10222 XML_CHECK_NOT_NCNAME,
10223 XML_CHECK_OUTSIDE_DICT,
10224 XML_CHECK_WRONG_NAME,
10225 XML_CHECK_NAME_NOT_NULL,
10226 XML_I18N_NO_NAME = 6000,
10227 XML_I18N_NO_HANDLER,
10228 XML_I18N_EXCESS_HANDLER,
10229 XML_I18N_CONV_FAILED,
10230 XML_I18N_NO_OUTPUT
10231 } xmlParserErrors;
10232 typedef void ( *xmlGenericErrorFunc) (void *ctx,
10233 const char *msg,
10234 ...) __attribute__((__format__(__printf__,2,3)));
10235 typedef void ( *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
10236 void
10237 xmlSetGenericErrorFunc (void *ctx,
10238 xmlGenericErrorFunc handler);
10239 void
10240 initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
10241 void
10242 xmlSetStructuredErrorFunc (void *ctx,
10243 xmlStructuredErrorFunc handler);
10244 void
10245 xmlParserError (void *ctx,
10246 const char *msg,
10247 ...) __attribute__((__format__(__printf__,2,3)));
10248 void
10249 xmlParserWarning (void *ctx,
10250 const char *msg,
10251 ...) __attribute__((__format__(__printf__,2,3)));
10252 void
10253 xmlParserValidityError (void *ctx,
10254 const char *msg,
10255 ...) __attribute__((__format__(__printf__,2,3)));
10256 void
10257 xmlParserValidityWarning (void *ctx,
10258 const char *msg,
10259 ...) __attribute__((__format__(__printf__,2,3)));
10260 void
10261 xmlParserPrintFileInfo (xmlParserInputPtr input);
10262 void
10263 xmlParserPrintFileContext (xmlParserInputPtr input);
10264 xmlErrorPtr
10265 xmlGetLastError (void);
10266 void
10267 xmlResetLastError (void);
10268 xmlErrorPtr
10269 xmlCtxtGetLastError (void *ctx);
10270 void
10271 xmlCtxtResetLastError (void *ctx);
10272 void
10273 xmlResetError (xmlErrorPtr err);
10274 int
10275 xmlCopyError (xmlErrorPtr from,
10276 xmlErrorPtr to);
10277 typedef struct _xmlLink xmlLink;
10278 typedef xmlLink *xmlLinkPtr;
10279 typedef struct _xmlList xmlList;
10280 typedef xmlList *xmlListPtr;
10281 typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
10282 typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
10283 typedef int (*xmlListWalker) (const void *data, const void *user);
10284 xmlListPtr
10285 xmlListCreate (xmlListDeallocator deallocator,
10286 xmlListDataCompare compare);
10287 void
10288 xmlListDelete (xmlListPtr l);
10289 void *
10290 xmlListSearch (xmlListPtr l,
10291 void *data);
10292 void *
10293 xmlListReverseSearch (xmlListPtr l,
10294 void *data);
10295 int
10296 xmlListInsert (xmlListPtr l,
10297 void *data) ;
10298 int
10299 xmlListAppend (xmlListPtr l,
10300 void *data) ;
10301 int
10302 xmlListRemoveFirst (xmlListPtr l,
10303 void *data);
10304 int
10305 xmlListRemoveLast (xmlListPtr l,
10306 void *data);
10307 int
10308 xmlListRemoveAll (xmlListPtr l,
10309 void *data);
10310 void
10311 xmlListClear (xmlListPtr l);
10312 int
10313 xmlListEmpty (xmlListPtr l);
10314 xmlLinkPtr
10315 xmlListFront (xmlListPtr l);
10316 xmlLinkPtr
10317 xmlListEnd (xmlListPtr l);
10318 int
10319 xmlListSize (xmlListPtr l);
10320 void
10321 xmlListPopFront (xmlListPtr l);
10322 void
10323 xmlListPopBack (xmlListPtr l);
10324 int
10325 xmlListPushFront (xmlListPtr l,
10326 void *data);
10327 int
10328 xmlListPushBack (xmlListPtr l,
10329 void *data);
10330 void
10331 xmlListReverse (xmlListPtr l);
10332 void
10333 xmlListSort (xmlListPtr l);
10334 void
10335 xmlListWalk (xmlListPtr l,
10336 xmlListWalker walker,
10337 const void *user);
10338 void
10339 xmlListReverseWalk (xmlListPtr l,
10340 xmlListWalker walker,
10341 const void *user);
10342 void
10343 xmlListMerge (xmlListPtr l1,
10344 xmlListPtr l2);
10345 xmlListPtr
10346 xmlListDup (const xmlListPtr old);
10347 int
10348 xmlListCopy (xmlListPtr cur,
10349 const xmlListPtr old);
10350 void *
10351 xmlLinkGetData (xmlLinkPtr lk);
10352 typedef struct _xmlAutomata xmlAutomata;
10353 typedef xmlAutomata *xmlAutomataPtr;
10354 typedef struct _xmlAutomataState xmlAutomataState;
10355 typedef xmlAutomataState *xmlAutomataStatePtr;
10356 xmlAutomataPtr
10357 xmlNewAutomata (void);
10358 void
10359 xmlFreeAutomata (xmlAutomataPtr am);
10360 xmlAutomataStatePtr
10361 xmlAutomataGetInitState (xmlAutomataPtr am);
10362 int
10363 xmlAutomataSetFinalState (xmlAutomataPtr am,
10364 xmlAutomataStatePtr state);
10365 xmlAutomataStatePtr
10366 xmlAutomataNewState (xmlAutomataPtr am);
10367 xmlAutomataStatePtr
10368 xmlAutomataNewTransition (xmlAutomataPtr am,
10369 xmlAutomataStatePtr from,
10370 xmlAutomataStatePtr to,
10371 const xmlChar *token,
10372 void *data);
10373 xmlAutomataStatePtr
10374 xmlAutomataNewTransition2 (xmlAutomataPtr am,
10375 xmlAutomataStatePtr from,
10376 xmlAutomataStatePtr to,
10377 const xmlChar *token,
10378 const xmlChar *token2,
10379 void *data);
10380 xmlAutomataStatePtr
10381 xmlAutomataNewNegTrans (xmlAutomataPtr am,
10382 xmlAutomataStatePtr from,
10383 xmlAutomataStatePtr to,
10384 const xmlChar *token,
10385 const xmlChar *token2,
10386 void *data);
10387 xmlAutomataStatePtr
10388 xmlAutomataNewCountTrans (xmlAutomataPtr am,
10389 xmlAutomataStatePtr from,
10390 xmlAutomataStatePtr to,
10391 const xmlChar *token,
10392 int min,
10393 int max,
10394 void *data);
10395 xmlAutomataStatePtr
10396 xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
10397 xmlAutomataStatePtr from,
10398 xmlAutomataStatePtr to,
10399 const xmlChar *token,
10400 const xmlChar *token2,
10401 int min,
10402 int max,
10403 void *data);
10404 xmlAutomataStatePtr
10405 xmlAutomataNewOnceTrans (xmlAutomataPtr am,
10406 xmlAutomataStatePtr from,
10407 xmlAutomataStatePtr to,
10408 const xmlChar *token,
10409 int min,
10410 int max,
10411 void *data);
10412 xmlAutomataStatePtr
10413 xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
10414 xmlAutomataStatePtr from,
10415 xmlAutomataStatePtr to,
10416 const xmlChar *token,
10417 const xmlChar *token2,
10418 int min,
10419 int max,
10420 void *data);
10421 xmlAutomataStatePtr
10422 xmlAutomataNewAllTrans (xmlAutomataPtr am,
10423 xmlAutomataStatePtr from,
10424 xmlAutomataStatePtr to,
10425 int lax);
10426 xmlAutomataStatePtr
10427 xmlAutomataNewEpsilon (xmlAutomataPtr am,
10428 xmlAutomataStatePtr from,
10429 xmlAutomataStatePtr to);
10430 xmlAutomataStatePtr
10431 xmlAutomataNewCountedTrans (xmlAutomataPtr am,
10432 xmlAutomataStatePtr from,
10433 xmlAutomataStatePtr to,
10434 int counter);
10435 xmlAutomataStatePtr
10436 xmlAutomataNewCounterTrans (xmlAutomataPtr am,
10437 xmlAutomataStatePtr from,
10438 xmlAutomataStatePtr to,
10439 int counter);
10440 int
10441 xmlAutomataNewCounter (xmlAutomataPtr am,
10442 int min,
10443 int max);
10444 xmlRegexpPtr
10445 xmlAutomataCompile (xmlAutomataPtr am);
10446 int
10447 xmlAutomataIsDeterminist (xmlAutomataPtr am);
10448 typedef struct _xmlValidState xmlValidState;
10449 typedef xmlValidState *xmlValidStatePtr;
10450 typedef void ( *xmlValidityErrorFunc) (void *ctx,
10451 const char *msg,
10452 ...) __attribute__((__format__(__printf__,2,3)));
10453 typedef void ( *xmlValidityWarningFunc) (void *ctx,
10454 const char *msg,
10455 ...) __attribute__((__format__(__printf__,2,3)));
10456 typedef struct _xmlValidCtxt xmlValidCtxt;
10457 typedef xmlValidCtxt *xmlValidCtxtPtr;
10458 struct _xmlValidCtxt {
10459 void *userData;
10460 xmlValidityErrorFunc error;
10461 xmlValidityWarningFunc warning;
10462 xmlNodePtr node;
10463 int nodeNr;
10464 int nodeMax;
10465 xmlNodePtr *nodeTab;
10466 unsigned int finishDtd;
10467 xmlDocPtr doc;
10468 int valid;
10469 xmlValidState *vstate;
10470 int vstateNr;
10471 int vstateMax;
10472 xmlValidState *vstateTab;
10473 xmlAutomataPtr am;
10474 xmlAutomataStatePtr state;
10475 };
10476 typedef struct _xmlHashTable xmlNotationTable;
10477 typedef xmlNotationTable *xmlNotationTablePtr;
10478 typedef struct _xmlHashTable xmlElementTable;
10479 typedef xmlElementTable *xmlElementTablePtr;
10480 typedef struct _xmlHashTable xmlAttributeTable;
10481 typedef xmlAttributeTable *xmlAttributeTablePtr;
10482 typedef struct _xmlHashTable xmlIDTable;
10483 typedef xmlIDTable *xmlIDTablePtr;
10484 typedef struct _xmlHashTable xmlRefTable;
10485 typedef xmlRefTable *xmlRefTablePtr;
10486 xmlNotationPtr
10487 xmlAddNotationDecl (xmlValidCtxtPtr ctxt,
10488 xmlDtdPtr dtd,
10489 const xmlChar *name,
10490 const xmlChar *PublicID,
10491 const xmlChar *SystemID);
10492 xmlNotationTablePtr
10493 xmlCopyNotationTable (xmlNotationTablePtr table);
10494 void
10495 xmlFreeNotationTable (xmlNotationTablePtr table);
10496 void
10497 xmlDumpNotationDecl (xmlBufferPtr buf,
10498 xmlNotationPtr nota);
10499 void
10500 xmlDumpNotationTable (xmlBufferPtr buf,
10501 xmlNotationTablePtr table);
10502 xmlElementContentPtr
10503 xmlNewElementContent (const xmlChar *name,
10504 xmlElementContentType type);
10505 xmlElementContentPtr
10506 xmlCopyElementContent (xmlElementContentPtr content);
10507 void
10508 xmlFreeElementContent (xmlElementContentPtr cur);
10509 xmlElementContentPtr
10510 xmlNewDocElementContent (xmlDocPtr doc,
10511 const xmlChar *name,
10512 xmlElementContentType type);
10513 xmlElementContentPtr
10514 xmlCopyDocElementContent(xmlDocPtr doc,
10515 xmlElementContentPtr content);
10516 void
10517 xmlFreeDocElementContent(xmlDocPtr doc,
10518 xmlElementContentPtr cur);
10519 void
10520 xmlSnprintfElementContent(char *buf,
10521 int size,
10522 xmlElementContentPtr content,
10523 int englob);
10524 void
10525 xmlSprintfElementContent(char *buf,
10526 xmlElementContentPtr content,
10527 int englob);
10528 xmlElementPtr
10529 xmlAddElementDecl (xmlValidCtxtPtr ctxt,
10530 xmlDtdPtr dtd,
10531 const xmlChar *name,
10532 xmlElementTypeVal type,
10533 xmlElementContentPtr content);
10534 xmlElementTablePtr
10535 xmlCopyElementTable (xmlElementTablePtr table);
10536 void
10537 xmlFreeElementTable (xmlElementTablePtr table);
10538 void
10539 xmlDumpElementTable (xmlBufferPtr buf,
10540 xmlElementTablePtr table);
10541 void
10542 xmlDumpElementDecl (xmlBufferPtr buf,
10543 xmlElementPtr elem);
10544 xmlEnumerationPtr
10545 xmlCreateEnumeration (const xmlChar *name);
10546 void
10547 xmlFreeEnumeration (xmlEnumerationPtr cur);
10548 xmlEnumerationPtr
10549 xmlCopyEnumeration (xmlEnumerationPtr cur);
10550 xmlAttributePtr
10551 xmlAddAttributeDecl (xmlValidCtxtPtr ctxt,
10552 xmlDtdPtr dtd,
10553 const xmlChar *elem,
10554 const xmlChar *name,
10555 const xmlChar *ns,
10556 xmlAttributeType type,
10557 xmlAttributeDefault def,
10558 const xmlChar *defaultValue,
10559 xmlEnumerationPtr tree);
10560 xmlAttributeTablePtr
10561 xmlCopyAttributeTable (xmlAttributeTablePtr table);
10562 void
10563 xmlFreeAttributeTable (xmlAttributeTablePtr table);
10564 void
10565 xmlDumpAttributeTable (xmlBufferPtr buf,
10566 xmlAttributeTablePtr table);
10567 void
10568 xmlDumpAttributeDecl (xmlBufferPtr buf,
10569 xmlAttributePtr attr);
10570 xmlIDPtr
10571 xmlAddID (xmlValidCtxtPtr ctxt,
10572 xmlDocPtr doc,
10573 const xmlChar *value,
10574 xmlAttrPtr attr);
10575 void
10576 xmlFreeIDTable (xmlIDTablePtr table);
10577 xmlAttrPtr
10578 xmlGetID (xmlDocPtr doc,
10579 const xmlChar *ID);
10580 int
10581 xmlIsID (xmlDocPtr doc,
10582 xmlNodePtr elem,
10583 xmlAttrPtr attr);
10584 int
10585 xmlRemoveID (xmlDocPtr doc,
10586 xmlAttrPtr attr);
10587 xmlRefPtr
10588 xmlAddRef (xmlValidCtxtPtr ctxt,
10589 xmlDocPtr doc,
10590 const xmlChar *value,
10591 xmlAttrPtr attr);
10592 void
10593 xmlFreeRefTable (xmlRefTablePtr table);
10594 int
10595 xmlIsRef (xmlDocPtr doc,
10596 xmlNodePtr elem,
10597 xmlAttrPtr attr);
10598 int
10599 xmlRemoveRef (xmlDocPtr doc,
10600 xmlAttrPtr attr);
10601 xmlListPtr
10602 xmlGetRefs (xmlDocPtr doc,
10603 const xmlChar *ID);
10604 xmlValidCtxtPtr
10605 xmlNewValidCtxt(void);
10606 void
10607 xmlFreeValidCtxt(xmlValidCtxtPtr);
10608 int
10609 xmlValidateRoot (xmlValidCtxtPtr ctxt,
10610 xmlDocPtr doc);
10611 int
10612 xmlValidateElementDecl (xmlValidCtxtPtr ctxt,
10613 xmlDocPtr doc,
10614 xmlElementPtr elem);
10615 xmlChar *
10616 xmlValidNormalizeAttributeValue(xmlDocPtr doc,
10617 xmlNodePtr elem,
10618 const xmlChar *name,
10619 const xmlChar *value);
10620 xmlChar *
10621 xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
10622 xmlDocPtr doc,
10623 xmlNodePtr elem,
10624 const xmlChar *name,
10625 const xmlChar *value);
10626 int
10627 xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
10628 xmlDocPtr doc,
10629 xmlAttributePtr attr);
10630 int
10631 xmlValidateAttributeValue(xmlAttributeType type,
10632 const xmlChar *value);
10633 int
10634 xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
10635 xmlDocPtr doc,
10636 xmlNotationPtr nota);
10637 int
10638 xmlValidateDtd (xmlValidCtxtPtr ctxt,
10639 xmlDocPtr doc,
10640 xmlDtdPtr dtd);
10641 int
10642 xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
10643 xmlDocPtr doc);
10644 int
10645 xmlValidateDocument (xmlValidCtxtPtr ctxt,
10646 xmlDocPtr doc);
10647 int
10648 xmlValidateElement (xmlValidCtxtPtr ctxt,
10649 xmlDocPtr doc,
10650 xmlNodePtr elem);
10651 int
10652 xmlValidateOneElement (xmlValidCtxtPtr ctxt,
10653 xmlDocPtr doc,
10654 xmlNodePtr elem);
10655 int
10656 xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
10657 xmlDocPtr doc,
10658 xmlNodePtr elem,
10659 xmlAttrPtr attr,
10660 const xmlChar *value);
10661 int
10662 xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
10663 xmlDocPtr doc,
10664 xmlNodePtr elem,
10665 const xmlChar *prefix,
10666 xmlNsPtr ns,
10667 const xmlChar *value);
10668 int
10669 xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
10670 xmlDocPtr doc);
10671 int
10672 xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
10673 xmlDocPtr doc,
10674 const xmlChar *notationName);
10675 int
10676 xmlIsMixedElement (xmlDocPtr doc,
10677 const xmlChar *name);
10678 xmlAttributePtr
10679 xmlGetDtdAttrDesc (xmlDtdPtr dtd,
10680 const xmlChar *elem,
10681 const xmlChar *name);
10682 xmlAttributePtr
10683 xmlGetDtdQAttrDesc (xmlDtdPtr dtd,
10684 const xmlChar *elem,
10685 const xmlChar *name,
10686 const xmlChar *prefix);
10687 xmlNotationPtr
10688 xmlGetDtdNotationDesc (xmlDtdPtr dtd,
10689 const xmlChar *name);
10690 xmlElementPtr
10691 xmlGetDtdQElementDesc (xmlDtdPtr dtd,
10692 const xmlChar *name,
10693 const xmlChar *prefix);
10694 xmlElementPtr
10695 xmlGetDtdElementDesc (xmlDtdPtr dtd,
10696 const xmlChar *name);
10697 int
10698 xmlValidGetPotentialChildren(xmlElementContent *ctree,
10699 const xmlChar **names,
10700 int *len,
10701 int max);
10702 int
10703 xmlValidGetValidElements(xmlNode *prev,
10704 xmlNode *next,
10705 const xmlChar **names,
10706 int max);
10707 int
10708 xmlValidateNameValue (const xmlChar *value);
10709 int
10710 xmlValidateNamesValue (const xmlChar *value);
10711 int
10712 xmlValidateNmtokenValue (const xmlChar *value);
10713 int
10714 xmlValidateNmtokensValue(const xmlChar *value);
10715 int
10716 xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
10717 xmlElementPtr elem);
10718 int
10719 xmlValidatePushElement (xmlValidCtxtPtr ctxt,
10720 xmlDocPtr doc,
10721 xmlNodePtr elem,
10722 const xmlChar *qname);
10723 int
10724 xmlValidatePushCData (xmlValidCtxtPtr ctxt,
10725 const xmlChar *data,
10726 int len);
10727 int
10728 xmlValidatePopElement (xmlValidCtxtPtr ctxt,
10729 xmlDocPtr doc,
10730 xmlNodePtr elem,
10731 const xmlChar *qname);
10732 typedef enum {
10733 XML_INTERNAL_GENERAL_ENTITY = 1,
10734 XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
10735 XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
10736 XML_INTERNAL_PARAMETER_ENTITY = 4,
10737 XML_EXTERNAL_PARAMETER_ENTITY = 5,
10738 XML_INTERNAL_PREDEFINED_ENTITY = 6
10739 } xmlEntityType;
10740 struct _xmlEntity {
10741 void *_private;
10742 xmlElementType type;
10743 const xmlChar *name;
10744 struct _xmlNode *children;
10745 struct _xmlNode *last;
10746 struct _xmlDtd *parent;
10747 struct _xmlNode *next;
10748 struct _xmlNode *prev;
10749 struct _xmlDoc *doc;
10750 xmlChar *orig;
10751 xmlChar *content;
10752 int length;
10753 xmlEntityType etype;
10754 const xmlChar *ExternalID;
10755 const xmlChar *SystemID;
10756 struct _xmlEntity *nexte;
10757 const xmlChar *URI;
10758 int owner;
10759 int checked;
10760 };
10761 typedef struct _xmlHashTable xmlEntitiesTable;
10762 typedef xmlEntitiesTable *xmlEntitiesTablePtr;
10763 void
10764 xmlInitializePredefinedEntities (void);
10765 xmlEntityPtr
10766 xmlNewEntity (xmlDocPtr doc,
10767 const xmlChar *name,
10768 int type,
10769 const xmlChar *ExternalID,
10770 const xmlChar *SystemID,
10771 const xmlChar *content);
10772 xmlEntityPtr
10773 xmlAddDocEntity (xmlDocPtr doc,
10774 const xmlChar *name,
10775 int type,
10776 const xmlChar *ExternalID,
10777 const xmlChar *SystemID,
10778 const xmlChar *content);
10779 xmlEntityPtr
10780 xmlAddDtdEntity (xmlDocPtr doc,
10781 const xmlChar *name,
10782 int type,
10783 const xmlChar *ExternalID,
10784 const xmlChar *SystemID,
10785 const xmlChar *content);
10786 xmlEntityPtr
10787 xmlGetPredefinedEntity (const xmlChar *name);
10788 xmlEntityPtr
10789 xmlGetDocEntity (xmlDocPtr doc,
10790 const xmlChar *name);
10791 xmlEntityPtr
10792 xmlGetDtdEntity (xmlDocPtr doc,
10793 const xmlChar *name);
10794 xmlEntityPtr
10795 xmlGetParameterEntity (xmlDocPtr doc,
10796 const xmlChar *name);
10797 const xmlChar *
10798 xmlEncodeEntities (xmlDocPtr doc,
10799 const xmlChar *input);
10800 xmlChar *
10801 xmlEncodeEntitiesReentrant(xmlDocPtr doc,
10802 const xmlChar *input);
10803 xmlChar *
10804 xmlEncodeSpecialChars (xmlDocPtr doc,
10805 const xmlChar *input);
10806 xmlEntitiesTablePtr
10807 xmlCreateEntitiesTable (void);
10808 xmlEntitiesTablePtr
10809 xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
10810 void
10811 xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
10812 void
10813 xmlDumpEntitiesTable (xmlBufferPtr buf,
10814 xmlEntitiesTablePtr table);
10815 void
10816 xmlDumpEntityDecl (xmlBufferPtr buf,
10817 xmlEntityPtr ent);
10818 void
10819 xmlCleanupPredefinedEntities(void);
10820 typedef void (* xmlParserInputDeallocate)(xmlChar *str);
10821 struct _xmlParserInput {
10822 xmlParserInputBufferPtr buf;
10823 const char *filename;
10824 const char *directory;
10825 const xmlChar *base;
10826 const xmlChar *cur;
10827 const xmlChar *end;
10828 int length;
10829 int line;
10830 int col;
10831 unsigned long consumed;
10832 xmlParserInputDeallocate free;
10833 const xmlChar *encoding;
10834 const xmlChar *version;
10835 int standalone;
10836 int id;
10837 };
10838 typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
10839 typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
10840 struct _xmlParserNodeInfo {
10841 const struct _xmlNode* node;
10842 unsigned long begin_pos;
10843 unsigned long begin_line;
10844 unsigned long end_pos;
10845 unsigned long end_line;
10846 };
10847 typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;
10848 typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
10849 struct _xmlParserNodeInfoSeq {
10850 unsigned long maximum;
10851 unsigned long length;
10852 xmlParserNodeInfo* buffer;
10853 };
10854 typedef enum {
10855 XML_PARSER_EOF = -1,
10856 XML_PARSER_START = 0,
10857 XML_PARSER_MISC,
10858 XML_PARSER_PI,
10859 XML_PARSER_DTD,
10860 XML_PARSER_PROLOG,
10861 XML_PARSER_COMMENT,
10862 XML_PARSER_START_TAG,
10863 XML_PARSER_CONTENT,
10864 XML_PARSER_CDATA_SECTION,
10865 XML_PARSER_END_TAG,
10866 XML_PARSER_ENTITY_DECL,
10867 XML_PARSER_ENTITY_VALUE,
10868 XML_PARSER_ATTRIBUTE_VALUE,
10869 XML_PARSER_SYSTEM_LITERAL,
10870 XML_PARSER_EPILOG,
10871 XML_PARSER_IGNORE,
10872 XML_PARSER_PUBLIC_LITERAL
10873 } xmlParserInputState;
10874 typedef enum {
10875 XML_PARSE_UNKNOWN = 0,
10876 XML_PARSE_DOM = 1,
10877 XML_PARSE_SAX = 2,
10878 XML_PARSE_PUSH_DOM = 3,
10879 XML_PARSE_PUSH_SAX = 4,
10880 XML_PARSE_READER = 5
10881 } xmlParserMode;
10882 struct _xmlParserCtxt {
10883 struct _xmlSAXHandler *sax;
10884 void *userData;
10885 xmlDocPtr myDoc;
10886 int wellFormed;
10887 int replaceEntities;
10888 const xmlChar *version;
10889 const xmlChar *encoding;
10890 int standalone;
10891 int html;
10892 xmlParserInputPtr input;
10893 int inputNr;
10894 int inputMax;
10895 xmlParserInputPtr *inputTab;
10896 xmlNodePtr node;
10897 int nodeNr;
10898 int nodeMax;
10899 xmlNodePtr *nodeTab;
10900 int record_info;
10901 xmlParserNodeInfoSeq node_seq;
10902 int errNo;
10903 int hasExternalSubset;
10904 int hasPErefs;
10905 int external;
10906 int valid;
10907 int validate;
10908 xmlValidCtxt vctxt;
10909 xmlParserInputState instate;
10910 int token;
10911 char *directory;
10912 const xmlChar *name;
10913 int nameNr;
10914 int nameMax;
10915 const xmlChar * *nameTab;
10916 long nbChars;
10917 long checkIndex;
10918 int keepBlanks;
10919 int disableSAX;
10920 int inSubset;
10921 const xmlChar * intSubName;
10922 xmlChar * extSubURI;
10923 xmlChar * extSubSystem;
10924 int * space;
10925 int spaceNr;
10926 int spaceMax;
10927 int * spaceTab;
10928 int depth;
10929 xmlParserInputPtr entity;
10930 int charset;
10931 int nodelen;
10932 int nodemem;
10933 int pedantic;
10934 void *_private;
10935 int loadsubset;
10936 int linenumbers;
10937 void *catalogs;
10938 int recovery;
10939 int progressive;
10940 xmlDictPtr dict;
10941 const xmlChar * *atts;
10942 int maxatts;
10943 int docdict;
10944 const xmlChar *str_xml;
10945 const xmlChar *str_xmlns;
10946 const xmlChar *str_xml_ns;
10947 int sax2;
10948 int nsNr;
10949 int nsMax;
10950 const xmlChar * *nsTab;
10951 int *attallocs;
10952 void * *pushTab;
10953 xmlHashTablePtr attsDefault;
10954 xmlHashTablePtr attsSpecial;
10955 int nsWellFormed;
10956 int options;
10957 int dictNames;
10958 int freeElemsNr;
10959 xmlNodePtr freeElems;
10960 int freeAttrsNr;
10961 xmlAttrPtr freeAttrs;
10962 xmlError lastError;
10963 xmlParserMode parseMode;
10964 unsigned long nbentities;
10965 unsigned long sizeentities;
10966 };
10967 struct _xmlSAXLocator {
10968 const xmlChar *(*getPublicId)(void *ctx);
10969 const xmlChar *(*getSystemId)(void *ctx);
10970 int (*getLineNumber)(void *ctx);
10971 int (*getColumnNumber)(void *ctx);
10972 };
10973 typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
10974 const xmlChar *publicId,
10975 const xmlChar *systemId);
10976 typedef void (*internalSubsetSAXFunc) (void *ctx,
10977 const xmlChar *name,
10978 const xmlChar *ExternalID,
10979 const xmlChar *SystemID);
10980 typedef void (*externalSubsetSAXFunc) (void *ctx,
10981 const xmlChar *name,
10982 const xmlChar *ExternalID,
10983 const xmlChar *SystemID);
10984 typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
10985 const xmlChar *name);
10986 typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
10987 const xmlChar *name);
10988 typedef void (*entityDeclSAXFunc) (void *ctx,
10989 const xmlChar *name,
10990 int type,
10991 const xmlChar *publicId,
10992 const xmlChar *systemId,
10993 xmlChar *content);
10994 typedef void (*notationDeclSAXFunc)(void *ctx,
10995 const xmlChar *name,
10996 const xmlChar *publicId,
10997 const xmlChar *systemId);
10998 typedef void (*attributeDeclSAXFunc)(void *ctx,
10999 const xmlChar *elem,
11000 const xmlChar *fullname,
11001 int type,
11002 int def,
11003 const xmlChar *defaultValue,
11004 xmlEnumerationPtr tree);
11005 typedef void (*elementDeclSAXFunc)(void *ctx,
11006 const xmlChar *name,
11007 int type,
11008 xmlElementContentPtr content);
11009 typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
11010 const xmlChar *name,
11011 const xmlChar *publicId,
11012 const xmlChar *systemId,
11013 const xmlChar *notationName);
11014 typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
11015 xmlSAXLocatorPtr loc);
11016 typedef void (*startDocumentSAXFunc) (void *ctx);
11017 typedef void (*endDocumentSAXFunc) (void *ctx);
11018 typedef void (*startElementSAXFunc) (void *ctx,
11019 const xmlChar *name,
11020 const xmlChar **atts);
11021 typedef void (*endElementSAXFunc) (void *ctx,
11022 const xmlChar *name);
11023 typedef void (*attributeSAXFunc) (void *ctx,
11024 const xmlChar *name,
11025 const xmlChar *value);
11026 typedef void (*referenceSAXFunc) (void *ctx,
11027 const xmlChar *name);
11028 typedef void (*charactersSAXFunc) (void *ctx,
11029 const xmlChar *ch,
11030 int len);
11031 typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
11032 const xmlChar *ch,
11033 int len);
11034 typedef void (*processingInstructionSAXFunc) (void *ctx,
11035 const xmlChar *target,
11036 const xmlChar *data);
11037 typedef void (*commentSAXFunc) (void *ctx,
11038 const xmlChar *value);
11039 typedef void (*cdataBlockSAXFunc) (
11040 void *ctx,
11041 const xmlChar *value,
11042 int len);
11043 typedef void ( *warningSAXFunc) (void *ctx,
11044 const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
11045 typedef void ( *errorSAXFunc) (void *ctx,
11046 const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
11047 typedef void ( *fatalErrorSAXFunc) (void *ctx,
11048 const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
11049 typedef int (*isStandaloneSAXFunc) (void *ctx);
11050 typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
11051 typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
11052 typedef void (*startElementNsSAX2Func) (void *ctx,
11053 const xmlChar *localname,
11054 const xmlChar *prefix,
11055 const xmlChar *URI,
11056 int nb_namespaces,
11057 const xmlChar **namespaces,
11058 int nb_attributes,
11059 int nb_defaulted,
11060 const xmlChar **attributes);
11061 typedef void (*endElementNsSAX2Func) (void *ctx,
11062 const xmlChar *localname,
11063 const xmlChar *prefix,
11064 const xmlChar *URI);
11065 struct _xmlSAXHandler {
11066 internalSubsetSAXFunc internalSubset;
11067 isStandaloneSAXFunc isStandalone;
11068 hasInternalSubsetSAXFunc hasInternalSubset;
11069 hasExternalSubsetSAXFunc hasExternalSubset;
11070 resolveEntitySAXFunc resolveEntity;
11071 getEntitySAXFunc getEntity;
11072 entityDeclSAXFunc entityDecl;
11073 notationDeclSAXFunc notationDecl;
11074 attributeDeclSAXFunc attributeDecl;
11075 elementDeclSAXFunc elementDecl;
11076 unparsedEntityDeclSAXFunc unparsedEntityDecl;
11077 setDocumentLocatorSAXFunc setDocumentLocator;
11078 startDocumentSAXFunc startDocument;
11079 endDocumentSAXFunc endDocument;
11080 startElementSAXFunc startElement;
11081 endElementSAXFunc endElement;
11082 referenceSAXFunc reference;
11083 charactersSAXFunc characters;
11084 ignorableWhitespaceSAXFunc ignorableWhitespace;
11085 processingInstructionSAXFunc processingInstruction;
11086 commentSAXFunc comment;
11087 warningSAXFunc warning;
11088 errorSAXFunc error;
11089 fatalErrorSAXFunc fatalError;
11090 getParameterEntitySAXFunc getParameterEntity;
11091 cdataBlockSAXFunc cdataBlock;
11092 externalSubsetSAXFunc externalSubset;
11093 unsigned int initialized;
11094 void *_private;
11095 startElementNsSAX2Func startElementNs;
11096 endElementNsSAX2Func endElementNs;
11097 xmlStructuredErrorFunc serror;
11098 };
11099 typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1;
11100 typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
11101 struct _xmlSAXHandlerV1 {
11102 internalSubsetSAXFunc internalSubset;
11103 isStandaloneSAXFunc isStandalone;
11104 hasInternalSubsetSAXFunc hasInternalSubset;
11105 hasExternalSubsetSAXFunc hasExternalSubset;
11106 resolveEntitySAXFunc resolveEntity;
11107 getEntitySAXFunc getEntity;
11108 entityDeclSAXFunc entityDecl;
11109 notationDeclSAXFunc notationDecl;
11110 attributeDeclSAXFunc attributeDecl;
11111 elementDeclSAXFunc elementDecl;
11112 unparsedEntityDeclSAXFunc unparsedEntityDecl;
11113 setDocumentLocatorSAXFunc setDocumentLocator;
11114 startDocumentSAXFunc startDocument;
11115 endDocumentSAXFunc endDocument;
11116 startElementSAXFunc startElement;
11117 endElementSAXFunc endElement;
11118 referenceSAXFunc reference;
11119 charactersSAXFunc characters;
11120 ignorableWhitespaceSAXFunc ignorableWhitespace;
11121 processingInstructionSAXFunc processingInstruction;
11122 commentSAXFunc comment;
11123 warningSAXFunc warning;
11124 errorSAXFunc error;
11125 fatalErrorSAXFunc fatalError;
11126 getParameterEntitySAXFunc getParameterEntity;
11127 cdataBlockSAXFunc cdataBlock;
11128 externalSubsetSAXFunc externalSubset;
11129 unsigned int initialized;
11130 };
11131 typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
11132 const char *ID,
11133 xmlParserCtxtPtr context);
11134 typedef void *iconv_t;
11135 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
11136 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
11137 size_t *__restrict __inbytesleft,
11138 char **__restrict __outbuf,
11139 size_t *__restrict __outbytesleft);
11140 extern int iconv_close (iconv_t __cd);
11141 typedef enum {
11142 XML_CHAR_ENCODING_ERROR= -1,
11143 XML_CHAR_ENCODING_NONE= 0,
11144 XML_CHAR_ENCODING_UTF8= 1,
11145 XML_CHAR_ENCODING_UTF16LE= 2,
11146 XML_CHAR_ENCODING_UTF16BE= 3,
11147 XML_CHAR_ENCODING_UCS4LE= 4,
11148 XML_CHAR_ENCODING_UCS4BE= 5,
11149 XML_CHAR_ENCODING_EBCDIC= 6,
11150 XML_CHAR_ENCODING_UCS4_2143=7,
11151 XML_CHAR_ENCODING_UCS4_3412=8,
11152 XML_CHAR_ENCODING_UCS2= 9,
11153 XML_CHAR_ENCODING_8859_1= 10,
11154 XML_CHAR_ENCODING_8859_2= 11,
11155 XML_CHAR_ENCODING_8859_3= 12,
11156 XML_CHAR_ENCODING_8859_4= 13,
11157 XML_CHAR_ENCODING_8859_5= 14,
11158 XML_CHAR_ENCODING_8859_6= 15,
11159 XML_CHAR_ENCODING_8859_7= 16,
11160 XML_CHAR_ENCODING_8859_8= 17,
11161 XML_CHAR_ENCODING_8859_9= 18,
11162 XML_CHAR_ENCODING_2022_JP= 19,
11163 XML_CHAR_ENCODING_SHIFT_JIS=20,
11164 XML_CHAR_ENCODING_EUC_JP= 21,
11165 XML_CHAR_ENCODING_ASCII= 22
11166 } xmlCharEncoding;
11167 typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen,
11168 const unsigned char *in, int *inlen);
11169 typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
11170 const unsigned char *in, int *inlen);
11171 typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
11172 typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
11173 struct _xmlCharEncodingHandler {
11174 char *name;
11175 xmlCharEncodingInputFunc input;
11176 xmlCharEncodingOutputFunc output;
11177 iconv_t iconv_in;
11178 iconv_t iconv_out;
11179 };
11180 void
11181 xmlInitCharEncodingHandlers (void);
11182 void
11183 xmlCleanupCharEncodingHandlers (void);
11184 void
11185 xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler);
11186 xmlCharEncodingHandlerPtr
11187 xmlGetCharEncodingHandler (xmlCharEncoding enc);
11188 xmlCharEncodingHandlerPtr
11189 xmlFindCharEncodingHandler (const char *name);
11190 xmlCharEncodingHandlerPtr
11191 xmlNewCharEncodingHandler (const char *name,
11192 xmlCharEncodingInputFunc input,
11193 xmlCharEncodingOutputFunc output);
11194 int
11195 xmlAddEncodingAlias (const char *name,
11196 const char *alias);
11197 int
11198 xmlDelEncodingAlias (const char *alias);
11199 const char *
11200 xmlGetEncodingAlias (const char *alias);
11201 void
11202 xmlCleanupEncodingAliases (void);
11203 xmlCharEncoding
11204 xmlParseCharEncoding (const char *name);
11205 const char *
11206 xmlGetCharEncodingName (xmlCharEncoding enc);
11207 xmlCharEncoding
11208 xmlDetectCharEncoding (const unsigned char *in,
11209 int len);
11210 int
11211 xmlCharEncOutFunc (xmlCharEncodingHandler *handler,
11212 xmlBufferPtr out,
11213 xmlBufferPtr in);
11214 int
11215 xmlCharEncInFunc (xmlCharEncodingHandler *handler,
11216 xmlBufferPtr out,
11217 xmlBufferPtr in);
11218 int
11219 xmlCharEncFirstLine (xmlCharEncodingHandler *handler,
11220 xmlBufferPtr out,
11221 xmlBufferPtr in);
11222 int
11223 xmlCharEncCloseFunc (xmlCharEncodingHandler *handler);
11224 int
11225 UTF8Toisolat1 (unsigned char *out,
11226 int *outlen,
11227 const unsigned char *in,
11228 int *inlen);
11229 int
11230 isolat1ToUTF8 (unsigned char *out,
11231 int *outlen,
11232 const unsigned char *in,
11233 int *inlen);
11234 typedef int ( *xmlInputMatchCallback) (char const *filename);
11235 typedef void * ( *xmlInputOpenCallback) (char const *filename);
11236 typedef int ( *xmlInputReadCallback) (void * context, char * buffer, int len);
11237 typedef int ( *xmlInputCloseCallback) (void * context);
11238 typedef int ( *xmlOutputMatchCallback) (char const *filename);
11239 typedef void * ( *xmlOutputOpenCallback) (char const *filename);
11240 typedef int ( *xmlOutputWriteCallback) (void * context, const char * buffer,
11241 int len);
11242 typedef int ( *xmlOutputCloseCallback) (void * context);
11243 typedef xmlChar *xlinkHRef;
11244 typedef xmlChar *xlinkRole;
11245 typedef xmlChar *xlinkTitle;
11246 typedef enum {
11247 XLINK_TYPE_NONE = 0,
11248 XLINK_TYPE_SIMPLE,
11249 XLINK_TYPE_EXTENDED,
11250 XLINK_TYPE_EXTENDED_SET
11251 } xlinkType;
11252 typedef enum {
11253 XLINK_SHOW_NONE = 0,
11254 XLINK_SHOW_NEW,
11255 XLINK_SHOW_EMBED,
11256 XLINK_SHOW_REPLACE
11257 } xlinkShow;
11258 typedef enum {
11259 XLINK_ACTUATE_NONE = 0,
11260 XLINK_ACTUATE_AUTO,
11261 XLINK_ACTUATE_ONREQUEST
11262 } xlinkActuate;
11263 typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
11264 typedef void
11265 (*xlinkSimpleLinkFunk) (void *ctx,
11266 xmlNodePtr node,
11267 const xlinkHRef href,
11268 const xlinkRole role,
11269 const xlinkTitle title);
11270 typedef void
11271 (*xlinkExtendedLinkFunk)(void *ctx,
11272 xmlNodePtr node,
11273 int nbLocators,
11274 const xlinkHRef *hrefs,
11275 const xlinkRole *roles,
11276 int nbArcs,
11277 const xlinkRole *from,
11278 const xlinkRole *to,
11279 xlinkShow *show,
11280 xlinkActuate *actuate,
11281 int nbTitles,
11282 const xlinkTitle *titles,
11283 const xmlChar **langs);
11284 typedef void
11285 (*xlinkExtendedLinkSetFunk) (void *ctx,
11286 xmlNodePtr node,
11287 int nbLocators,
11288 const xlinkHRef *hrefs,
11289 const xlinkRole *roles,
11290 int nbTitles,
11291 const xlinkTitle *titles,
11292 const xmlChar **langs);
11293 typedef struct _xlinkHandler xlinkHandler;
11294 typedef xlinkHandler *xlinkHandlerPtr;
11295 struct _xlinkHandler {
11296 xlinkSimpleLinkFunk simple;
11297 xlinkExtendedLinkFunk extended;
11298 xlinkExtendedLinkSetFunk set;
11299 };
11300 xlinkNodeDetectFunc
11301 xlinkGetDefaultDetect (void);
11302 void
11303 xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
11304 xlinkHandlerPtr
11305 xlinkGetDefaultHandler (void);
11306 void
11307 xlinkSetDefaultHandler (xlinkHandlerPtr handler);
11308 xlinkType
11309 xlinkIsLink (xmlDocPtr doc,
11310 xmlNodePtr node);
11311 const xmlChar *
11312 getPublicId (void *ctx);
11313 const xmlChar *
11314 getSystemId (void *ctx);
11315 void
11316 setDocumentLocator (void *ctx,
11317 xmlSAXLocatorPtr loc);
11318 int
11319 getLineNumber (void *ctx);
11320 int
11321 getColumnNumber (void *ctx);
11322 int
11323 isStandalone (void *ctx);
11324 int
11325 hasInternalSubset (void *ctx);
11326 int
11327 hasExternalSubset (void *ctx);
11328 void
11329 internalSubset (void *ctx,
11330 const xmlChar *name,
11331 const xmlChar *ExternalID,
11332 const xmlChar *SystemID);
11333 void
11334 externalSubset (void *ctx,
11335 const xmlChar *name,
11336 const xmlChar *ExternalID,
11337 const xmlChar *SystemID);
11338 xmlEntityPtr
11339 getEntity (void *ctx,
11340 const xmlChar *name);
11341 xmlEntityPtr
11342 getParameterEntity (void *ctx,
11343 const xmlChar *name);
11344 xmlParserInputPtr
11345 resolveEntity (void *ctx,
11346 const xmlChar *publicId,
11347 const xmlChar *systemId);
11348 void
11349 entityDecl (void *ctx,
11350 const xmlChar *name,
11351 int type,
11352 const xmlChar *publicId,
11353 const xmlChar *systemId,
11354 xmlChar *content);
11355 void
11356 attributeDecl (void *ctx,
11357 const xmlChar *elem,
11358 const xmlChar *fullname,
11359 int type,
11360 int def,
11361 const xmlChar *defaultValue,
11362 xmlEnumerationPtr tree);
11363 void
11364 elementDecl (void *ctx,
11365 const xmlChar *name,
11366 int type,
11367 xmlElementContentPtr content);
11368 void
11369 notationDecl (void *ctx,
11370 const xmlChar *name,
11371 const xmlChar *publicId,
11372 const xmlChar *systemId);
11373 void
11374 unparsedEntityDecl (void *ctx,
11375 const xmlChar *name,
11376 const xmlChar *publicId,
11377 const xmlChar *systemId,
11378 const xmlChar *notationName);
11379 void
11380 startDocument (void *ctx);
11381 void
11382 endDocument (void *ctx);
11383 void
11384 attribute (void *ctx,
11385 const xmlChar *fullname,
11386 const xmlChar *value);
11387 void
11388 startElement (void *ctx,
11389 const xmlChar *fullname,
11390 const xmlChar **atts);
11391 void
11392 endElement (void *ctx,
11393 const xmlChar *name);
11394 void
11395 reference (void *ctx,
11396 const xmlChar *name);
11397 void
11398 characters (void *ctx,
11399 const xmlChar *ch,
11400 int len);
11401 void
11402 ignorableWhitespace (void *ctx,
11403 const xmlChar *ch,
11404 int len);
11405 void
11406 processingInstruction (void *ctx,
11407 const xmlChar *target,
11408 const xmlChar *data);
11409 void
11410 globalNamespace (void *ctx,
11411 const xmlChar *href,
11412 const xmlChar *prefix);
11413 void
11414 setNamespace (void *ctx,
11415 const xmlChar *name);
11416 xmlNsPtr
11417 getNamespace (void *ctx);
11418 int
11419 checkNamespace (void *ctx,
11420 xmlChar *nameSpace);
11421 void
11422 namespaceDecl (void *ctx,
11423 const xmlChar *href,
11424 const xmlChar *prefix);
11425 void
11426 comment (void *ctx,
11427 const xmlChar *value);
11428 void
11429 cdataBlock (void *ctx,
11430 const xmlChar *value,
11431 int len);
11432 void
11433 initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr,
11434 int warning);
11435 void
11436 inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
11437 void
11438 initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
11439 const xmlChar *
11440 xmlSAX2GetPublicId (void *ctx);
11441 const xmlChar *
11442 xmlSAX2GetSystemId (void *ctx);
11443 void
11444 xmlSAX2SetDocumentLocator (void *ctx,
11445 xmlSAXLocatorPtr loc);
11446 int
11447 xmlSAX2GetLineNumber (void *ctx);
11448 int
11449 xmlSAX2GetColumnNumber (void *ctx);
11450 int
11451 xmlSAX2IsStandalone (void *ctx);
11452 int
11453 xmlSAX2HasInternalSubset (void *ctx);
11454 int
11455 xmlSAX2HasExternalSubset (void *ctx);
11456 void
11457 xmlSAX2InternalSubset (void *ctx,
11458 const xmlChar *name,
11459 const xmlChar *ExternalID,
11460 const xmlChar *SystemID);
11461 void
11462 xmlSAX2ExternalSubset (void *ctx,
11463 const xmlChar *name,
11464 const xmlChar *ExternalID,
11465 const xmlChar *SystemID);
11466 xmlEntityPtr
11467 xmlSAX2GetEntity (void *ctx,
11468 const xmlChar *name);
11469 xmlEntityPtr
11470 xmlSAX2GetParameterEntity (void *ctx,
11471 const xmlChar *name);
11472 xmlParserInputPtr
11473 xmlSAX2ResolveEntity (void *ctx,
11474 const xmlChar *publicId,
11475 const xmlChar *systemId);
11476 void
11477 xmlSAX2EntityDecl (void *ctx,
11478 const xmlChar *name,
11479 int type,
11480 const xmlChar *publicId,
11481 const xmlChar *systemId,
11482 xmlChar *content);
11483 void
11484 xmlSAX2AttributeDecl (void *ctx,
11485 const xmlChar *elem,
11486 const xmlChar *fullname,
11487 int type,
11488 int def,
11489 const xmlChar *defaultValue,
11490 xmlEnumerationPtr tree);
11491 void
11492 xmlSAX2ElementDecl (void *ctx,
11493 const xmlChar *name,
11494 int type,
11495 xmlElementContentPtr content);
11496 void
11497 xmlSAX2NotationDecl (void *ctx,
11498 const xmlChar *name,
11499 const xmlChar *publicId,
11500 const xmlChar *systemId);
11501 void
11502 xmlSAX2UnparsedEntityDecl (void *ctx,
11503 const xmlChar *name,
11504 const xmlChar *publicId,
11505 const xmlChar *systemId,
11506 const xmlChar *notationName);
11507 void
11508 xmlSAX2StartDocument (void *ctx);
11509 void
11510 xmlSAX2EndDocument (void *ctx);
11511 void
11512 xmlSAX2StartElement (void *ctx,
11513 const xmlChar *fullname,
11514 const xmlChar **atts);
11515 void
11516 xmlSAX2EndElement (void *ctx,
11517 const xmlChar *name);
11518 void
11519 xmlSAX2StartElementNs (void *ctx,
11520 const xmlChar *localname,
11521 const xmlChar *prefix,
11522 const xmlChar *URI,
11523 int nb_namespaces,
11524 const xmlChar **namespaces,
11525 int nb_attributes,
11526 int nb_defaulted,
11527 const xmlChar **attributes);
11528 void
11529 xmlSAX2EndElementNs (void *ctx,
11530 const xmlChar *localname,
11531 const xmlChar *prefix,
11532 const xmlChar *URI);
11533 void
11534 xmlSAX2Reference (void *ctx,
11535 const xmlChar *name);
11536 void
11537 xmlSAX2Characters (void *ctx,
11538 const xmlChar *ch,
11539 int len);
11540 void
11541 xmlSAX2IgnorableWhitespace (void *ctx,
11542 const xmlChar *ch,
11543 int len);
11544 void
11545 xmlSAX2ProcessingInstruction (void *ctx,
11546 const xmlChar *target,
11547 const xmlChar *data);
11548 void
11549 xmlSAX2Comment (void *ctx,
11550 const xmlChar *value);
11551 void
11552 xmlSAX2CDataBlock (void *ctx,
11553 const xmlChar *value,
11554 int len);
11555 int
11556 xmlSAXDefaultVersion (int version);
11557 int
11558 xmlSAXVersion (xmlSAXHandler *hdlr,
11559 int version);
11560 void
11561 xmlSAX2InitDefaultSAXHandler (xmlSAXHandler *hdlr,
11562 int warning);
11563 void
11564 xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr);
11565 void
11566 htmlDefaultSAXHandlerInit (void);
11567 void
11568 xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr);
11569 void
11570 docbDefaultSAXHandlerInit (void);
11571 void
11572 xmlDefaultSAXHandlerInit (void);
11573 typedef void ( *xmlFreeFunc)(void *mem);
11574 typedef void *(__attribute__((alloc_size(1))) *xmlMallocFunc)(size_t size);
11575 typedef void *( *xmlReallocFunc)(void *mem, size_t size);
11576 typedef char *( *xmlStrdupFunc)(const char *str);
11577 int
11578 xmlMemSetup (xmlFreeFunc freeFunc,
11579 xmlMallocFunc mallocFunc,
11580 xmlReallocFunc reallocFunc,
11581 xmlStrdupFunc strdupFunc);
11582 int
11583 xmlMemGet (xmlFreeFunc *freeFunc,
11584 xmlMallocFunc *mallocFunc,
11585 xmlReallocFunc *reallocFunc,
11586 xmlStrdupFunc *strdupFunc);
11587 int
11588 xmlGcMemSetup (xmlFreeFunc freeFunc,
11589 xmlMallocFunc mallocFunc,
11590 xmlMallocFunc mallocAtomicFunc,
11591 xmlReallocFunc reallocFunc,
11592 xmlStrdupFunc strdupFunc);
11593 int
11594 xmlGcMemGet (xmlFreeFunc *freeFunc,
11595 xmlMallocFunc *mallocFunc,
11596 xmlMallocFunc *mallocAtomicFunc,
11597 xmlReallocFunc *reallocFunc,
11598 xmlStrdupFunc *strdupFunc);
11599 int
11600 xmlInitMemory (void);
11601 void
11602 xmlCleanupMemory (void);
11603 int
11604 xmlMemUsed (void);
11605 int
11606 xmlMemBlocks (void);
11607 void
11608 xmlMemDisplay (FILE *fp);
11609 void
11610 xmlMemDisplayLast(FILE *fp, long nbBytes);
11611 void
11612 xmlMemShow (FILE *fp, int nr);
11613 void
11614 xmlMemoryDump (void);
11615 void *
11616 xmlMemMalloc (size_t size) __attribute__((alloc_size(1)));
11617 void *
11618 xmlMemRealloc (void *ptr,size_t size);
11619 void
11620 xmlMemFree (void *ptr);
11621 char *
11622 xmlMemoryStrdup (const char *str);
11623 void *
11624 xmlMallocLoc (size_t size, const char *file, int line) __attribute__((alloc_size(1)));
11625 void *
11626 xmlReallocLoc (void *ptr, size_t size, const char *file, int line);
11627 void *
11628 xmlMallocAtomicLoc (size_t size, const char *file, int line) __attribute__((alloc_size(1)));
11629 char *
11630 xmlMemStrdupLoc (const char *str, const char *file, int line);
11631 void xmlInitGlobals(void);
11632 void xmlCleanupGlobals(void);
11633 typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
11634 typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
11635 xmlParserInputBufferCreateFilenameFunc
11636 xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
11637 xmlOutputBufferCreateFilenameFunc
11638 xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
11639 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
11640 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
11641 typedef struct _xmlGlobalState xmlGlobalState;
11642 typedef xmlGlobalState *xmlGlobalStatePtr;
11643 struct _xmlGlobalState
11644 {
11645 const char *xmlParserVersion;
11646 xmlSAXLocator xmlDefaultSAXLocator;
11647 xmlSAXHandlerV1 xmlDefaultSAXHandler;
11648 xmlSAXHandlerV1 docbDefaultSAXHandler;
11649 xmlSAXHandlerV1 htmlDefaultSAXHandler;
11650 xmlFreeFunc xmlFree;
11651 xmlMallocFunc xmlMalloc;
11652 xmlStrdupFunc xmlMemStrdup;
11653 xmlReallocFunc xmlRealloc;
11654 xmlGenericErrorFunc xmlGenericError;
11655 xmlStructuredErrorFunc xmlStructuredError;
11656 void *xmlGenericErrorContext;
11657 int oldXMLWDcompatibility;
11658 xmlBufferAllocationScheme xmlBufferAllocScheme;
11659 int xmlDefaultBufferSize;
11660 int xmlSubstituteEntitiesDefaultValue;
11661 int xmlDoValidityCheckingDefaultValue;
11662 int xmlGetWarningsDefaultValue;
11663 int xmlKeepBlanksDefaultValue;
11664 int xmlLineNumbersDefaultValue;
11665 int xmlLoadExtDtdDefaultValue;
11666 int xmlParserDebugEntities;
11667 int xmlPedanticParserDefaultValue;
11668 int xmlSaveNoEmptyTags;
11669 int xmlIndentTreeOutput;
11670 const char *xmlTreeIndentString;
11671 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
11672 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
11673 xmlMallocFunc xmlMallocAtomic;
11674 xmlError xmlLastError;
11675 xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
11676 xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
11677 void *xmlStructuredErrorContext;
11678 };
11679 typedef struct _xmlMutex xmlMutex;
11680 typedef xmlMutex *xmlMutexPtr;
11681 typedef struct _xmlRMutex xmlRMutex;
11682 typedef xmlRMutex *xmlRMutexPtr;
11683 xmlMutexPtr
11684 xmlNewMutex (void);
11685 void
11686 xmlMutexLock (xmlMutexPtr tok);
11687 void
11688 xmlMutexUnlock (xmlMutexPtr tok);
11689 void
11690 xmlFreeMutex (xmlMutexPtr tok);
11691 xmlRMutexPtr
11692 xmlNewRMutex (void);
11693 void
11694 xmlRMutexLock (xmlRMutexPtr tok);
11695 void
11696 xmlRMutexUnlock (xmlRMutexPtr tok);
11697 void
11698 xmlFreeRMutex (xmlRMutexPtr tok);
11699 void
11700 xmlInitThreads (void);
11701 void
11702 xmlLockLibrary (void);
11703 void
11704 xmlUnlockLibrary(void);
11705 int
11706 xmlGetThreadId (void);
11707 int
11708 xmlIsMainThread (void);
11709 void
11710 xmlCleanupThreads(void);
11711 xmlGlobalStatePtr
11712 xmlGetGlobalState(void);
11713 void xmlInitializeGlobalState(xmlGlobalStatePtr gs);
11714 void xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
11715 void xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
11716 xmlRegisterNodeFunc xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
11717 xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
11718 xmlDeregisterNodeFunc xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
11719 xmlDeregisterNodeFunc xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
11720 xmlOutputBufferCreateFilenameFunc
11721 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
11722 xmlParserInputBufferCreateFilenameFunc
11723 xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
11724 extern xmlMallocFunc xmlMalloc;
11725 extern xmlMallocFunc xmlMallocAtomic;
11726 extern xmlReallocFunc xmlRealloc;
11727 extern xmlFreeFunc xmlFree;
11728 extern xmlStrdupFunc xmlMemStrdup;
11729 xmlSAXHandlerV1 * __docbDefaultSAXHandler(void);
11730 xmlSAXHandlerV1 * __htmlDefaultSAXHandler(void);
11731 xmlError * __xmlLastError(void);
11732 int * __oldXMLWDcompatibility(void);
11733 xmlBufferAllocationScheme * __xmlBufferAllocScheme(void);
11734 xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
11735 int * __xmlDefaultBufferSize(void);
11736 int xmlThrDefDefaultBufferSize(int v);
11737 xmlSAXHandlerV1 * __xmlDefaultSAXHandler(void);
11738 xmlSAXLocator * __xmlDefaultSAXLocator(void);
11739 int * __xmlDoValidityCheckingDefaultValue(void);
11740 int xmlThrDefDoValidityCheckingDefaultValue(int v);
11741 xmlGenericErrorFunc * __xmlGenericError(void);
11742 xmlStructuredErrorFunc * __xmlStructuredError(void);
11743 void * * __xmlGenericErrorContext(void);
11744 void * * __xmlStructuredErrorContext(void);
11745 int * __xmlGetWarningsDefaultValue(void);
11746 int xmlThrDefGetWarningsDefaultValue(int v);
11747 int * __xmlIndentTreeOutput(void);
11748 int xmlThrDefIndentTreeOutput(int v);
11749 const char * * __xmlTreeIndentString(void);
11750 const char * xmlThrDefTreeIndentString(const char * v);
11751 int * __xmlKeepBlanksDefaultValue(void);
11752 int xmlThrDefKeepBlanksDefaultValue(int v);
11753 int * __xmlLineNumbersDefaultValue(void);
11754 int xmlThrDefLineNumbersDefaultValue(int v);
11755 int * __xmlLoadExtDtdDefaultValue(void);
11756 int xmlThrDefLoadExtDtdDefaultValue(int v);
11757 int * __xmlParserDebugEntities(void);
11758 int xmlThrDefParserDebugEntities(int v);
11759 const char * * __xmlParserVersion(void);
11760 int * __xmlPedanticParserDefaultValue(void);
11761 int xmlThrDefPedanticParserDefaultValue(int v);
11762 int * __xmlSaveNoEmptyTags(void);
11763 int xmlThrDefSaveNoEmptyTags(int v);
11764 int * __xmlSubstituteEntitiesDefaultValue(void);
11765 int xmlThrDefSubstituteEntitiesDefaultValue(int v);
11766 xmlRegisterNodeFunc * __xmlRegisterNodeDefaultValue(void);
11767 xmlDeregisterNodeFunc * __xmlDeregisterNodeDefaultValue(void);
11768 xmlParserInputBufferCreateFilenameFunc * __xmlParserInputBufferCreateFilenameValue(void);
11769 xmlOutputBufferCreateFilenameFunc * __xmlOutputBufferCreateFilenameValue(void);
11770 struct _xmlParserInputBuffer {
11771 void* context;
11772 xmlInputReadCallback readcallback;
11773 xmlInputCloseCallback closecallback;
11774 xmlCharEncodingHandlerPtr encoder;
11775 xmlBufferPtr buffer;
11776 xmlBufferPtr raw;
11777 int compressed;
11778 int error;
11779 unsigned long rawconsumed;
11780 };
11781 struct _xmlOutputBuffer {
11782 void* context;
11783 xmlOutputWriteCallback writecallback;
11784 xmlOutputCloseCallback closecallback;
11785 xmlCharEncodingHandlerPtr encoder;
11786 xmlBufferPtr buffer;
11787 xmlBufferPtr conv;
11788 int written;
11789 int error;
11790 };
11791 void
11792 xmlCleanupInputCallbacks (void);
11793 int
11794 xmlPopInputCallbacks (void);
11795 void
11796 xmlRegisterDefaultInputCallbacks (void);
11797 xmlParserInputBufferPtr
11798 xmlAllocParserInputBuffer (xmlCharEncoding enc);
11799 xmlParserInputBufferPtr
11800 xmlParserInputBufferCreateFilename (const char *URI,
11801 xmlCharEncoding enc);
11802 xmlParserInputBufferPtr
11803 xmlParserInputBufferCreateFile (FILE *file,
11804 xmlCharEncoding enc);
11805 xmlParserInputBufferPtr
11806 xmlParserInputBufferCreateFd (int fd,
11807 xmlCharEncoding enc);
11808 xmlParserInputBufferPtr
11809 xmlParserInputBufferCreateMem (const char *mem, int size,
11810 xmlCharEncoding enc);
11811 xmlParserInputBufferPtr
11812 xmlParserInputBufferCreateStatic (const char *mem, int size,
11813 xmlCharEncoding enc);
11814 xmlParserInputBufferPtr
11815 xmlParserInputBufferCreateIO (xmlInputReadCallback ioread,
11816 xmlInputCloseCallback ioclose,
11817 void *ioctx,
11818 xmlCharEncoding enc);
11819 int
11820 xmlParserInputBufferRead (xmlParserInputBufferPtr in,
11821 int len);
11822 int
11823 xmlParserInputBufferGrow (xmlParserInputBufferPtr in,
11824 int len);
11825 int
11826 xmlParserInputBufferPush (xmlParserInputBufferPtr in,
11827 int len,
11828 const char *buf);
11829 void
11830 xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
11831 char *
11832 xmlParserGetDirectory (const char *filename);
11833 int
11834 xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc,
11835 xmlInputOpenCallback openFunc,
11836 xmlInputReadCallback readFunc,
11837 xmlInputCloseCallback closeFunc);
11838 xmlParserInputBufferPtr
11839 __xmlParserInputBufferCreateFilename(const char *URI,
11840 xmlCharEncoding enc);
11841 void
11842 xmlCleanupOutputCallbacks (void);
11843 void
11844 xmlRegisterDefaultOutputCallbacks(void);
11845 xmlOutputBufferPtr
11846 xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
11847 xmlOutputBufferPtr
11848 xmlOutputBufferCreateFilename (const char *URI,
11849 xmlCharEncodingHandlerPtr encoder,
11850 int compression);
11851 xmlOutputBufferPtr
11852 xmlOutputBufferCreateFile (FILE *file,
11853 xmlCharEncodingHandlerPtr encoder);
11854 xmlOutputBufferPtr
11855 xmlOutputBufferCreateBuffer (xmlBufferPtr buffer,
11856 xmlCharEncodingHandlerPtr encoder);
11857 xmlOutputBufferPtr
11858 xmlOutputBufferCreateFd (int fd,
11859 xmlCharEncodingHandlerPtr encoder);
11860 xmlOutputBufferPtr
11861 xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
11862 xmlOutputCloseCallback ioclose,
11863 void *ioctx,
11864 xmlCharEncodingHandlerPtr encoder);
11865 int
11866 xmlOutputBufferWrite (xmlOutputBufferPtr out,
11867 int len,
11868 const char *buf);
11869 int
11870 xmlOutputBufferWriteString (xmlOutputBufferPtr out,
11871 const char *str);
11872 int
11873 xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
11874 const xmlChar *str,
11875 xmlCharEncodingOutputFunc escaping);
11876 int
11877 xmlOutputBufferFlush (xmlOutputBufferPtr out);
11878 int
11879 xmlOutputBufferClose (xmlOutputBufferPtr out);
11880 int
11881 xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
11882 xmlOutputOpenCallback openFunc,
11883 xmlOutputWriteCallback writeFunc,
11884 xmlOutputCloseCallback closeFunc);
11885 xmlOutputBufferPtr
11886 __xmlOutputBufferCreateFilename(const char *URI,
11887 xmlCharEncodingHandlerPtr encoder,
11888 int compression);
11889 void
11890 xmlRegisterHTTPPostCallbacks (void );
11891 xmlParserInputPtr
11892 xmlCheckHTTPInput (xmlParserCtxtPtr ctxt,
11893 xmlParserInputPtr ret);
11894 xmlParserInputPtr
11895 xmlNoNetExternalEntityLoader (const char *URL,
11896 const char *ID,
11897 xmlParserCtxtPtr ctxt);
11898 xmlChar *
11899 xmlNormalizeWindowsPath (const xmlChar *path);
11900 int
11901 xmlCheckFilename (const char *path);
11902 int
11903 xmlFileMatch (const char *filename);
11904 void *
11905 xmlFileOpen (const char *filename);
11906 int
11907 xmlFileRead (void * context,
11908 char * buffer,
11909 int len);
11910 int
11911 xmlFileClose (void * context);
11912 int
11913 xmlIOHTTPMatch (const char *filename);
11914 void *
11915 xmlIOHTTPOpen (const char *filename);
11916 void *
11917 xmlIOHTTPOpenW (const char * post_uri,
11918 int compression );
11919 int
11920 xmlIOHTTPRead (void * context,
11921 char * buffer,
11922 int len);
11923 int
11924 xmlIOHTTPClose (void * context);
11925 int
11926 xmlIOFTPMatch (const char *filename);
11927 void *
11928 xmlIOFTPOpen (const char *filename);
11929 int
11930 xmlIOFTPRead (void * context,
11931 char * buffer,
11932 int len);
11933 int
11934 xmlIOFTPClose (void * context);
11935 void
11936 xmlInitParser (void);
11937 void
11938 xmlCleanupParser (void);
11939 int
11940 xmlParserInputRead (xmlParserInputPtr in,
11941 int len);
11942 int
11943 xmlParserInputGrow (xmlParserInputPtr in,
11944 int len);
11945 xmlDocPtr
11946 xmlParseDoc (const xmlChar *cur);
11947 xmlDocPtr
11948 xmlParseFile (const char *filename);
11949 xmlDocPtr
11950 xmlParseMemory (const char *buffer,
11951 int size);
11952 int
11953 xmlSubstituteEntitiesDefault(int val);
11954 int
11955 xmlKeepBlanksDefault (int val);
11956 void
11957 xmlStopParser (xmlParserCtxtPtr ctxt);
11958 int
11959 xmlPedanticParserDefault(int val);
11960 int
11961 xmlLineNumbersDefault (int val);
11962 xmlDocPtr
11963 xmlRecoverDoc (const xmlChar *cur);
11964 xmlDocPtr
11965 xmlRecoverMemory (const char *buffer,
11966 int size);
11967 xmlDocPtr
11968 xmlRecoverFile (const char *filename);
11969 int
11970 xmlParseDocument (xmlParserCtxtPtr ctxt);
11971 int
11972 xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt);
11973 int
11974 xmlSAXUserParseFile (xmlSAXHandlerPtr sax,
11975 void *user_data,
11976 const char *filename);
11977 int
11978 xmlSAXUserParseMemory (xmlSAXHandlerPtr sax,
11979 void *user_data,
11980 const char *buffer,
11981 int size);
11982 xmlDocPtr
11983 xmlSAXParseDoc (xmlSAXHandlerPtr sax,
11984 const xmlChar *cur,
11985 int recovery);
11986 xmlDocPtr
11987 xmlSAXParseMemory (xmlSAXHandlerPtr sax,
11988 const char *buffer,
11989 int size,
11990 int recovery);
11991 xmlDocPtr
11992 xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
11993 const char *buffer,
11994 int size,
11995 int recovery,
11996 void *data);
11997 xmlDocPtr
11998 xmlSAXParseFile (xmlSAXHandlerPtr sax,
11999 const char *filename,
12000 int recovery);
12001 xmlDocPtr
12002 xmlSAXParseFileWithData (xmlSAXHandlerPtr sax,
12003 const char *filename,
12004 int recovery,
12005 void *data);
12006 xmlDocPtr
12007 xmlSAXParseEntity (xmlSAXHandlerPtr sax,
12008 const char *filename);
12009 xmlDocPtr
12010 xmlParseEntity (const char *filename);
12011 xmlDtdPtr
12012 xmlSAXParseDTD (xmlSAXHandlerPtr sax,
12013 const xmlChar *ExternalID,
12014 const xmlChar *SystemID);
12015 xmlDtdPtr
12016 xmlParseDTD (const xmlChar *ExternalID,
12017 const xmlChar *SystemID);
12018 xmlDtdPtr
12019 xmlIOParseDTD (xmlSAXHandlerPtr sax,
12020 xmlParserInputBufferPtr input,
12021 xmlCharEncoding enc);
12022 int
12023 xmlParseBalancedChunkMemory(xmlDocPtr doc,
12024 xmlSAXHandlerPtr sax,
12025 void *user_data,
12026 int depth,
12027 const xmlChar *string,
12028 xmlNodePtr *lst);
12029 xmlParserErrors
12030 xmlParseInNodeContext (xmlNodePtr node,
12031 const char *data,
12032 int datalen,
12033 int options,
12034 xmlNodePtr *lst);
12035 int
12036 xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
12037 xmlSAXHandlerPtr sax,
12038 void *user_data,
12039 int depth,
12040 const xmlChar *string,
12041 xmlNodePtr *lst,
12042 int recover);
12043 int
12044 xmlParseExternalEntity (xmlDocPtr doc,
12045 xmlSAXHandlerPtr sax,
12046 void *user_data,
12047 int depth,
12048 const xmlChar *URL,
12049 const xmlChar *ID,
12050 xmlNodePtr *lst);
12051 int
12052 xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
12053 const xmlChar *URL,
12054 const xmlChar *ID,
12055 xmlNodePtr *lst);
12056 xmlParserCtxtPtr
12057 xmlNewParserCtxt (void);
12058 int
12059 xmlInitParserCtxt (xmlParserCtxtPtr ctxt);
12060 void
12061 xmlClearParserCtxt (xmlParserCtxtPtr ctxt);
12062 void
12063 xmlFreeParserCtxt (xmlParserCtxtPtr ctxt);
12064 void
12065 xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt,
12066 const xmlChar* buffer,
12067 const char *filename);
12068 xmlParserCtxtPtr
12069 xmlCreateDocParserCtxt (const xmlChar *cur);
12070 int
12071 xmlGetFeaturesList (int *len,
12072 const char **result);
12073 int
12074 xmlGetFeature (xmlParserCtxtPtr ctxt,
12075 const char *name,
12076 void *result);
12077 int
12078 xmlSetFeature (xmlParserCtxtPtr ctxt,
12079 const char *name,
12080 void *value);
12081 xmlParserCtxtPtr
12082 xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
12083 void *user_data,
12084 const char *chunk,
12085 int size,
12086 const char *filename);
12087 int
12088 xmlParseChunk (xmlParserCtxtPtr ctxt,
12089 const char *chunk,
12090 int size,
12091 int terminate);
12092 xmlParserCtxtPtr
12093 xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax,
12094 void *user_data,
12095 xmlInputReadCallback ioread,
12096 xmlInputCloseCallback ioclose,
12097 void *ioctx,
12098 xmlCharEncoding enc);
12099 xmlParserInputPtr
12100 xmlNewIOInputStream (xmlParserCtxtPtr ctxt,
12101 xmlParserInputBufferPtr input,
12102 xmlCharEncoding enc);
12103 const xmlParserNodeInfo*
12104 xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt,
12105 const xmlNodePtr node);
12106 void
12107 xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
12108 void
12109 xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
12110 unsigned long
12111 xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq,
12112 const xmlNodePtr node);
12113 void
12114 xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt,
12115 const xmlParserNodeInfoPtr info);
12116 void
12117 xmlSetExternalEntityLoader(xmlExternalEntityLoader f);
12118 xmlExternalEntityLoader
12119 xmlGetExternalEntityLoader(void);
12120 xmlParserInputPtr
12121 xmlLoadExternalEntity (const char *URL,
12122 const char *ID,
12123 xmlParserCtxtPtr ctxt);
12124 long
12125 xmlByteConsumed (xmlParserCtxtPtr ctxt);
12126 typedef enum {
12127 XML_PARSE_RECOVER = 1<<0,
12128 XML_PARSE_NOENT = 1<<1,
12129 XML_PARSE_DTDLOAD = 1<<2,
12130 XML_PARSE_DTDATTR = 1<<3,
12131 XML_PARSE_DTDVALID = 1<<4,
12132 XML_PARSE_NOERROR = 1<<5,
12133 XML_PARSE_NOWARNING = 1<<6,
12134 XML_PARSE_PEDANTIC = 1<<7,
12135 XML_PARSE_NOBLANKS = 1<<8,
12136 XML_PARSE_SAX1 = 1<<9,
12137 XML_PARSE_XINCLUDE = 1<<10,
12138 XML_PARSE_NONET = 1<<11,
12139 XML_PARSE_NODICT = 1<<12,
12140 XML_PARSE_NSCLEAN = 1<<13,
12141 XML_PARSE_NOCDATA = 1<<14,
12142 XML_PARSE_NOXINCNODE= 1<<15,
12143 XML_PARSE_COMPACT = 1<<16,
12144 XML_PARSE_OLD10 = 1<<17,
12145 XML_PARSE_NOBASEFIX = 1<<18,
12146 XML_PARSE_HUGE = 1<<19,
12147 XML_PARSE_OLDSAX = 1<<20
12148 } xmlParserOption;
12149 void
12150 xmlCtxtReset (xmlParserCtxtPtr ctxt);
12151 int
12152 xmlCtxtResetPush (xmlParserCtxtPtr ctxt,
12153 const char *chunk,
12154 int size,
12155 const char *filename,
12156 const char *encoding);
12157 int
12158 xmlCtxtUseOptions (xmlParserCtxtPtr ctxt,
12159 int options);
12160 xmlDocPtr
12161 xmlReadDoc (const xmlChar *cur,
12162 const char *URL,
12163 const char *encoding,
12164 int options);
12165 xmlDocPtr
12166 xmlReadFile (const char *URL,
12167 const char *encoding,
12168 int options);
12169 xmlDocPtr
12170 xmlReadMemory (const char *buffer,
12171 int size,
12172 const char *URL,
12173 const char *encoding,
12174 int options);
12175 xmlDocPtr
12176 xmlReadFd (int fd,
12177 const char *URL,
12178 const char *encoding,
12179 int options);
12180 xmlDocPtr
12181 xmlReadIO (xmlInputReadCallback ioread,
12182 xmlInputCloseCallback ioclose,
12183 void *ioctx,
12184 const char *URL,
12185 const char *encoding,
12186 int options);
12187 xmlDocPtr
12188 xmlCtxtReadDoc (xmlParserCtxtPtr ctxt,
12189 const xmlChar *cur,
12190 const char *URL,
12191 const char *encoding,
12192 int options);
12193 xmlDocPtr
12194 xmlCtxtReadFile (xmlParserCtxtPtr ctxt,
12195 const char *filename,
12196 const char *encoding,
12197 int options);
12198 xmlDocPtr
12199 xmlCtxtReadMemory (xmlParserCtxtPtr ctxt,
12200 const char *buffer,
12201 int size,
12202 const char *URL,
12203 const char *encoding,
12204 int options);
12205 xmlDocPtr
12206 xmlCtxtReadFd (xmlParserCtxtPtr ctxt,
12207 int fd,
12208 const char *URL,
12209 const char *encoding,
12210 int options);
12211 xmlDocPtr
12212 xmlCtxtReadIO (xmlParserCtxtPtr ctxt,
12213 xmlInputReadCallback ioread,
12214 xmlInputCloseCallback ioclose,
12215 void *ioctx,
12216 const char *URL,
12217 const char *encoding,
12218 int options);
12219 typedef enum {
12220 XML_WITH_THREAD = 1,
12221 XML_WITH_TREE = 2,
12222 XML_WITH_OUTPUT = 3,
12223 XML_WITH_PUSH = 4,
12224 XML_WITH_READER = 5,
12225 XML_WITH_PATTERN = 6,
12226 XML_WITH_WRITER = 7,
12227 XML_WITH_SAX1 = 8,
12228 XML_WITH_FTP = 9,
12229 XML_WITH_HTTP = 10,
12230 XML_WITH_VALID = 11,
12231 XML_WITH_HTML = 12,
12232 XML_WITH_LEGACY = 13,
12233 XML_WITH_C14N = 14,
12234 XML_WITH_CATALOG = 15,
12235 XML_WITH_XPATH = 16,
12236 XML_WITH_XPTR = 17,
12237 XML_WITH_XINCLUDE = 18,
12238 XML_WITH_ICONV = 19,
12239 XML_WITH_ISO8859X = 20,
12240 XML_WITH_UNICODE = 21,
12241 XML_WITH_REGEXP = 22,
12242 XML_WITH_AUTOMATA = 23,
12243 XML_WITH_EXPR = 24,
12244 XML_WITH_SCHEMAS = 25,
12245 XML_WITH_SCHEMATRON = 26,
12246 XML_WITH_MODULES = 27,
12247 XML_WITH_DEBUG = 28,
12248 XML_WITH_DEBUG_MEM = 29,
12249 XML_WITH_DEBUG_RUN = 30,
12250 XML_WITH_ZLIB = 31,
12251 XML_WITH_NONE = 99999
12252 } xmlFeature;
12253 int
12254 xmlHasFeature (xmlFeature feature);
12255 typedef enum
12256 {
12257 GST_OBJECT_DISPOSING = (1<<0),
12258 GST_OBJECT_FLOATING = (1<<1),
12259 GST_OBJECT_FLAG_LAST = (1<<4)
12260 } GstObjectFlags;
12261 typedef struct _GstObject GstObject;
12262 typedef struct _GstObjectClass GstObjectClass;
12263 struct _GstObject {
12264 GObject object;
12265 gint refcount;
12266 GMutex *lock;
12267 gchar *name;
12268 gchar *name_prefix;
12269 GstObject *parent;
12270 guint32 flags;
12271 gpointer _gst_reserved;
12272 };
12273 struct _GstObjectClass {
12274 GObjectClass parent_class;
12275 gchar *path_string_separator;
12276 GObject *signal_object;
12277 GStaticRecMutex *lock;
12278 void (*parent_set) (GstObject * object, GstObject * parent);
12279 void (*parent_unset) (GstObject * object, GstObject * parent);
12280 void (*object_saved) (GstObject * object, xmlNodePtr parent);
12281 void (*deep_notify) (GstObject * object, GstObject * orig, GParamSpec * pspec);
12282 xmlNodePtr (*save_thyself) (GstObject * object, xmlNodePtr parent);
12283 void (*restore_thyself) (GstObject * object, xmlNodePtr self);
12284 gpointer _gst_reserved[4];
12285 };
12286 GType gst_object_get_type (void);
12287 gboolean gst_object_set_name (GstObject *object, const gchar *name);
12288 gchar* gst_object_get_name (GstObject *object);
12289 void gst_object_set_name_prefix (GstObject *object, const gchar *name_prefix);
12290 gchar* gst_object_get_name_prefix (GstObject *object);
12291 gboolean gst_object_set_parent (GstObject *object, GstObject *parent);
12292 GstObject* gst_object_get_parent (GstObject *object);
12293 void gst_object_unparent (GstObject *object);
12294 gboolean gst_object_has_ancestor (GstObject *object, GstObject *ancestor);
12295 void gst_object_default_deep_notify (GObject *object, GstObject *orig,
12296 GParamSpec *pspec, gchar **excluded_props);
12297 gpointer gst_object_ref (gpointer object);
12298 void gst_object_unref (gpointer object);
12299 void gst_object_ref_sink (gpointer object);
12300 void gst_object_sink (gpointer object);
12301 void gst_object_replace (GstObject **oldobj, GstObject *newobj);
12302 gchar * gst_object_get_path_string (GstObject *object);
12303 gboolean gst_object_check_uniqueness (GList *list, const gchar *name);
12304 xmlNodePtr gst_object_save_thyself (GstObject *object, xmlNodePtr parent);
12305 void gst_object_restore_thyself (GstObject *object, xmlNodePtr self);
12306 guint gst_class_signal_connect (GstObjectClass *klass,
12307 const gchar *name,
12308 gpointer func,
12309 gpointer func_data);
12310 void gst_class_signal_emit_by_name (GstObject * object,
12311 const gchar * name,
12312 xmlNodePtr self);
12313 typedef struct _GstMiniObject GstMiniObject;
12314 typedef struct _GstMiniObjectClass GstMiniObjectClass;
12315 typedef GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj);
12316 typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj);
12317 typedef enum
12318 {
12319 GST_MINI_OBJECT_FLAG_READONLY = (1<<0),
12320 GST_MINI_OBJECT_FLAG_LAST = (1<<4)
12321 } GstMiniObjectFlags;
12322 struct _GstMiniObject {
12323 GTypeInstance instance;
12324 gint refcount;
12325 guint flags;
12326 gpointer _gst_reserved;
12327 };
12328 struct _GstMiniObjectClass {
12329 GTypeClass type_class;
12330 GstMiniObjectCopyFunction copy;
12331 GstMiniObjectFinalizeFunction finalize;
12332 gpointer _gst_reserved;
12333 };
12334 GType gst_mini_object_get_type (void);
12335 GstMiniObject* gst_mini_object_new (GType type);
12336 GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object);
12337 gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object);
12338 GstMiniObject* gst_mini_object_make_writable (GstMiniObject *mini_object);
12339 GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object);
12340 void gst_mini_object_unref (GstMiniObject *mini_object);
12341 void gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
12342 typedef struct _GstParamSpecMiniObject GstParamSpecMiniObject;
12343 struct _GstParamSpecMiniObject
12344 {
12345 GParamSpec parent_instance;
12346 };
12347 GType gst_param_spec_mini_object_get_type (void);
12348 GParamSpec* gst_param_spec_mini_object (const char *name, const char *nick,
12349 const char *blurb, GType object_type,
12350 GParamFlags flags);
12351 void gst_value_set_mini_object (GValue *value, GstMiniObject *mini_object);
12352 void gst_value_take_mini_object (GValue *value, GstMiniObject *mini_object);
12353 GstMiniObject* gst_value_get_mini_object (const GValue *value);
12354 GstMiniObject* gst_value_dup_mini_object (const GValue *value);
12355 typedef guint64 GstClockTime;
12356 typedef gint64 GstClockTimeDiff;
12357 typedef gpointer GstClockID;
12358 typedef struct _GstClockEntry GstClockEntry;
12359 typedef struct _GstClock GstClock;
12360 typedef struct _GstClockClass GstClockClass;
12361 typedef struct _GstClockPrivate GstClockPrivate;
12362 typedef gboolean (*GstClockCallback) (GstClock *clock, GstClockTime time,
12363 GstClockID id, gpointer user_data);
12364 typedef enum
12365 {
12366 GST_CLOCK_OK = 0,
12367 GST_CLOCK_EARLY = 1,
12368 GST_CLOCK_UNSCHEDULED = 2,
12369 GST_CLOCK_BUSY = 3,
12370 GST_CLOCK_BADTIME = 4,
12371 GST_CLOCK_ERROR = 5,
12372 GST_CLOCK_UNSUPPORTED = 6
12373 } GstClockReturn;
12374 typedef enum {
12375 GST_CLOCK_ENTRY_SINGLE,
12376 GST_CLOCK_ENTRY_PERIODIC
12377 } GstClockEntryType;
12378 struct _GstClockEntry {
12379 gint refcount;
12380 GstClock *clock;
12381 GstClockEntryType type;
12382 GstClockTime time;
12383 GstClockTime interval;
12384 GstClockReturn status;
12385 GstClockCallback func;
12386 gpointer user_data;
12387 };
12388 typedef enum {
12389 GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC = (GST_OBJECT_FLAG_LAST << 0),
12390 GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC = (GST_OBJECT_FLAG_LAST << 1),
12391 GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC = (GST_OBJECT_FLAG_LAST << 2),
12392 GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC = (GST_OBJECT_FLAG_LAST << 3),
12393 GST_CLOCK_FLAG_CAN_SET_RESOLUTION = (GST_OBJECT_FLAG_LAST << 4),
12394 GST_CLOCK_FLAG_CAN_SET_MASTER = (GST_OBJECT_FLAG_LAST << 5),
12395 GST_CLOCK_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
12396 } GstClockFlags;
12397 struct _GstClock {
12398 GstObject object;
12399 GMutex *slave_lock;
12400 GstClockTime internal_calibration;
12401 GstClockTime external_calibration;
12402 GstClockTime rate_numerator;
12403 GstClockTime rate_denominator;
12404 GstClockTime last_time;
12405 GList *entries;
12406 GCond *entries_changed;
12407 GstClockTime resolution;
12408 gboolean stats;
12409 GstClock *master;
12410 gboolean filling;
12411 gint window_size;
12412 gint window_threshold;
12413 gint time_index;
12414 GstClockTime timeout;
12415 GstClockTime *times;
12416 GstClockID clockid;
12417 union {
12418 GstClockPrivate *priv;
12419 GstClockTime _gst_reserved[4];
12420 } ABI;
12421 };
12422 struct _GstClockClass {
12423 GstObjectClass parent_class;
12424 GstClockTime (*change_resolution) (GstClock *clock,
12425 GstClockTime old_resolution,
12426 GstClockTime new_resolution);
12427 GstClockTime (*get_resolution) (GstClock *clock);
12428 GstClockTime (*get_internal_time) (GstClock *clock);
12429 GstClockReturn (*wait) (GstClock *clock, GstClockEntry *entry);
12430 GstClockReturn (*wait_async) (GstClock *clock, GstClockEntry *entry);
12431 void (*unschedule) (GstClock *clock, GstClockEntry *entry);
12432 GstClockReturn (*wait_jitter) (GstClock *clock, GstClockEntry *entry,
12433 GstClockTimeDiff *jitter);
12434 gpointer _gst_reserved[4 - 1];
12435 };
12436 GType gst_clock_get_type (void);
12437 GstClockTime gst_clock_set_resolution (GstClock *clock,
12438 GstClockTime resolution);
12439 GstClockTime gst_clock_get_resolution (GstClock *clock);
12440 GstClockTime gst_clock_get_time (GstClock *clock);
12441 void gst_clock_set_calibration (GstClock *clock, GstClockTime internal,
12442 GstClockTime external,
12443 GstClockTime rate_num,
12444 GstClockTime rate_denom);
12445 void gst_clock_get_calibration (GstClock *clock, GstClockTime *internal,
12446 GstClockTime *external,
12447 GstClockTime *rate_num,
12448 GstClockTime *rate_denom);
12449 gboolean gst_clock_set_master (GstClock *clock, GstClock *master);
12450 GstClock* gst_clock_get_master (GstClock *clock);
12451 gboolean gst_clock_add_observation (GstClock *clock, GstClockTime slave,
12452 GstClockTime master, gdouble *r_squared);
12453 GstClockTime gst_clock_get_internal_time (GstClock *clock);
12454 GstClockTime gst_clock_adjust_unlocked (GstClock *clock, GstClockTime internal);
12455 GstClockTime gst_clock_unadjust_unlocked (GstClock * clock, GstClockTime external);
12456 GstClockID gst_clock_new_single_shot_id (GstClock *clock,
12457 GstClockTime time);
12458 GstClockID gst_clock_new_periodic_id (GstClock *clock,
12459 GstClockTime start_time,
12460 GstClockTime interval);
12461 GstClockID gst_clock_id_ref (GstClockID id);
12462 void gst_clock_id_unref (GstClockID id);
12463 gint gst_clock_id_compare_func (gconstpointer id1, gconstpointer id2);
12464 GstClockTime gst_clock_id_get_time (GstClockID id);
12465 GstClockReturn gst_clock_id_wait (GstClockID id,
12466 GstClockTimeDiff *jitter);
12467 GstClockReturn gst_clock_id_wait_async (GstClockID id,
12468 GstClockCallback func,
12469 gpointer user_data);
12470 void gst_clock_id_unschedule (GstClockID id);
12471 typedef struct _GstStructure GstStructure;
12472 typedef gboolean (*GstStructureForeachFunc) (GQuark field_id,
12473 const GValue * value,
12474 gpointer user_data);
12475 typedef gboolean (*GstStructureMapFunc) (GQuark field_id,
12476 GValue * value,
12477 gpointer user_data);
12478 struct _GstStructure {
12479 GType type;
12480 GQuark name;
12481 gint *parent_refcount;
12482 GArray *fields;
12483 gpointer _gst_reserved;
12484 };
12485 GType gst_structure_get_type (void);
12486 GstStructure * gst_structure_empty_new (const gchar * name);
12487 GstStructure * gst_structure_id_empty_new (GQuark quark);
12488 GstStructure * gst_structure_new (const gchar * name,
12489 const gchar * firstfield,
12490 ...);
12491 GstStructure * gst_structure_new_valist (const gchar * name,
12492 const gchar * firstfield,
12493 va_list varargs);
12494 GstStructure * gst_structure_id_new (GQuark name_quark,
12495 GQuark field_quark,
12496 ...);
12497 GstStructure * gst_structure_copy (const GstStructure *structure);
12498 void gst_structure_set_parent_refcount (GstStructure *structure,
12499 gint *refcount);
12500 void gst_structure_free (GstStructure *structure);
12501 const gchar * gst_structure_get_name (const GstStructure *structure);
12502 GQuark gst_structure_get_name_id (const GstStructure *structure);
12503 gboolean gst_structure_has_name (const GstStructure *structure,
12504 const gchar *name);
12505 void gst_structure_set_name (GstStructure *structure,
12506 const gchar *name);
12507 void gst_structure_id_set_value (GstStructure *structure,
12508 GQuark field,
12509 const GValue *value);
12510 void gst_structure_set_value (GstStructure *structure,
12511 const gchar *fieldname,
12512 const GValue *value);
12513 void gst_structure_set (GstStructure *structure,
12514 const gchar *fieldname,
12515 ...) __attribute__((__sentinel__));
12516 void gst_structure_set_valist (GstStructure *structure,
12517 const gchar *fieldname,
12518 va_list varargs);
12519 void gst_structure_id_set (GstStructure *structure,
12520 GQuark fieldname,
12521 ...) __attribute__((__sentinel__));
12522 void gst_structure_id_set_valist (GstStructure *structure,
12523 GQuark fieldname,
12524 va_list varargs);
12525 gboolean gst_structure_get_valist (GstStructure *structure,
12526 const char *first_fieldname,
12527 va_list args);
12528 gboolean gst_structure_get (GstStructure *structure,
12529 const char *first_fieldname,
12530 ...) __attribute__((__sentinel__));
12531 gboolean gst_structure_id_get_valist (GstStructure *structure,
12532 GQuark first_field_id,
12533 va_list args);
12534 gboolean gst_structure_id_get (GstStructure *structure,
12535 GQuark first_field_id,
12536 ...) __attribute__((__sentinel__));
12537 const GValue * gst_structure_id_get_value (const GstStructure *structure,
12538 GQuark field);
12539 const GValue * gst_structure_get_value (const GstStructure *structure,
12540 const gchar *fieldname);
12541 void gst_structure_remove_field (GstStructure *structure,
12542 const gchar *fieldname);
12543 void gst_structure_remove_fields (GstStructure *structure,
12544 const gchar *fieldname,
12545 ...) __attribute__((__sentinel__));
12546 void gst_structure_remove_fields_valist (GstStructure *structure,
12547 const gchar *fieldname,
12548 va_list varargs);
12549 void gst_structure_remove_all_fields (GstStructure *structure);
12550 GType gst_structure_get_field_type (const GstStructure *structure,
12551 const gchar *fieldname);
12552 gboolean gst_structure_foreach (const GstStructure *structure,
12553 GstStructureForeachFunc func,
12554 gpointer user_data);
12555 gboolean gst_structure_map_in_place (GstStructure *structure,
12556 GstStructureMapFunc func,
12557 gpointer user_data);
12558 gint gst_structure_n_fields (const GstStructure *structure);
12559 const gchar * gst_structure_nth_field_name (const GstStructure *structure, guint index);
12560 gboolean gst_structure_has_field (const GstStructure *structure,
12561 const gchar *fieldname);
12562 gboolean gst_structure_has_field_typed (const GstStructure *structure,
12563 const gchar *fieldname,
12564 GType type);
12565 gboolean gst_structure_get_boolean (const GstStructure *structure,
12566 const gchar *fieldname,
12567 gboolean *value);
12568 gboolean gst_structure_get_int (const GstStructure *structure,
12569 const gchar *fieldname,
12570 gint *value);
12571 gboolean gst_structure_get_uint (const GstStructure *structure,
12572 const gchar *fieldname,
12573 guint *value);
12574 gboolean gst_structure_get_fourcc (const GstStructure *structure,
12575 const gchar *fieldname,
12576 guint32 *value);
12577 gboolean gst_structure_get_double (const GstStructure *structure,
12578 const gchar *fieldname,
12579 gdouble *value);
12580 gboolean gst_structure_get_date (const GstStructure *structure,
12581 const gchar *fieldname,
12582 GDate **value);
12583 gboolean gst_structure_get_clock_time (const GstStructure *structure,
12584 const gchar *fieldname,
12585 GstClockTime *value);
12586 const gchar * gst_structure_get_string (const GstStructure *structure,
12587 const gchar *fieldname);
12588 gboolean gst_structure_get_enum (const GstStructure *structure,
12589 const gchar *fieldname,
12590 GType enumtype,
12591 gint *value);
12592 gboolean gst_structure_get_fraction (const GstStructure *structure,
12593 const gchar *fieldname,
12594 gint *value_numerator,
12595 gint *value_denominator);
12596 gchar * gst_structure_to_string (const GstStructure *structure);
12597 GstStructure * gst_structure_from_string (const gchar *string,
12598 gchar **end);
12599 gboolean gst_structure_fixate_field_nearest_int (GstStructure *structure,
12600 const char *field_name,
12601 int target);
12602 gboolean gst_structure_fixate_field_nearest_double (GstStructure *structure,
12603 const char *field_name,
12604 double target);
12605 gboolean gst_structure_fixate_field_boolean (GstStructure *structure,
12606 const char *field_name,
12607 gboolean target);
12608 gboolean gst_structure_fixate_field_nearest_fraction (GstStructure *structure,
12609 const char *field_name,
12610 const gint target_numerator,
12611 const gint target_denominator);
12612 typedef enum {
12613 GST_CAPS_FLAGS_ANY = (1 << 0)
12614 } GstCapsFlags;
12615 typedef struct _GstCaps GstCaps;
12616 typedef struct _GstStaticCaps GstStaticCaps;
12617 struct _GstCaps {
12618 GType type;
12619 gint refcount;
12620 GstCapsFlags flags;
12621 GPtrArray *structs;
12622 gpointer _gst_reserved[4];
12623 };
12624 struct _GstStaticCaps {
12625 GstCaps caps;
12626 const char *string;
12627 gpointer _gst_reserved[4];
12628 };
12629 GType gst_caps_get_type (void);
12630 GstCaps * gst_caps_new_empty (void);
12631 GstCaps * gst_caps_new_any (void);
12632 GstCaps * gst_caps_new_simple (const char *media_type,
12633 const char *fieldname,
12634 ...);
12635 GstCaps * gst_caps_new_full (GstStructure *struct1, ...);
12636 GstCaps * gst_caps_new_full_valist (GstStructure *structure,
12637 va_list var_args);
12638 GstCaps * gst_caps_ref (GstCaps *caps);
12639 GstCaps * gst_caps_copy (const GstCaps *caps);
12640 GstCaps * gst_caps_make_writable (GstCaps *caps);
12641 void gst_caps_unref (GstCaps *caps);
12642 GType gst_static_caps_get_type (void);
12643 GstCaps * gst_static_caps_get (GstStaticCaps *static_caps);
12644 void gst_caps_append (GstCaps *caps1,
12645 GstCaps *caps2);
12646 void gst_caps_merge (GstCaps *caps1,
12647 GstCaps *caps2);
12648 void gst_caps_append_structure (GstCaps *caps,
12649 GstStructure *structure);
12650 void gst_caps_remove_structure (GstCaps *caps, guint idx);
12651 void gst_caps_merge_structure (GstCaps *caps,
12652 GstStructure *structure);
12653 guint gst_caps_get_size (const GstCaps *caps);
12654 GstStructure * gst_caps_get_structure (const GstCaps *caps,
12655 guint index);
12656 GstCaps * gst_caps_copy_nth (const GstCaps *caps, guint nth);
12657 void gst_caps_truncate (GstCaps *caps);
12658 void gst_caps_set_simple (GstCaps *caps,
12659 const char *field, ...) __attribute__((__sentinel__));
12660 void gst_caps_set_simple_valist (GstCaps *caps,
12661 const char *field,
12662 va_list varargs);
12663 gboolean gst_caps_is_any (const GstCaps *caps);
12664 gboolean gst_caps_is_empty (const GstCaps *caps);
12665 gboolean gst_caps_is_fixed (const GstCaps *caps);
12666 gboolean gst_caps_is_always_compatible (const GstCaps *caps1,
12667 const GstCaps *caps2);
12668 gboolean gst_caps_is_subset (const GstCaps *subset,
12669 const GstCaps *superset);
12670 gboolean gst_caps_is_equal (const GstCaps *caps1,
12671 const GstCaps *caps2);
12672 gboolean gst_caps_is_equal_fixed (const GstCaps *caps1,
12673 const GstCaps *caps2);
12674 GstCaps * gst_caps_intersect (const GstCaps *caps1,
12675 const GstCaps *caps2);
12676 GstCaps * gst_caps_subtract (const GstCaps *minuend,
12677 const GstCaps *subtrahend);
12678 GstCaps * gst_caps_union (const GstCaps *caps1,
12679 const GstCaps *caps2);
12680 GstCaps * gst_caps_normalize (const GstCaps *caps);
12681 gboolean gst_caps_do_simplify (GstCaps *caps);
12682 xmlNodePtr gst_caps_save_thyself (const GstCaps *caps,
12683 xmlNodePtr parent);
12684 GstCaps * gst_caps_load_thyself (xmlNodePtr parent);
12685 void gst_caps_replace (GstCaps **caps,
12686 GstCaps *newcaps);
12687 gchar * gst_caps_to_string (const GstCaps *caps);
12688 GstCaps * gst_caps_from_string (const gchar *string);
12689 typedef struct _GstBuffer GstBuffer;
12690 typedef struct _GstBufferClass GstBufferClass;
12691 typedef enum {
12692 GST_BUFFER_FLAG_READONLY = GST_MINI_OBJECT_FLAG_READONLY,
12693 GST_BUFFER_FLAG_PREROLL = (GST_MINI_OBJECT_FLAG_LAST << 0),
12694 GST_BUFFER_FLAG_DISCONT = (GST_MINI_OBJECT_FLAG_LAST << 1),
12695 GST_BUFFER_FLAG_IN_CAPS = (GST_MINI_OBJECT_FLAG_LAST << 2),
12696 GST_BUFFER_FLAG_GAP = (GST_MINI_OBJECT_FLAG_LAST << 3),
12697 GST_BUFFER_FLAG_DELTA_UNIT = (GST_MINI_OBJECT_FLAG_LAST << 4),
12698 GST_BUFFER_FLAG_MEDIA1 = (GST_MINI_OBJECT_FLAG_LAST << 5),
12699 GST_BUFFER_FLAG_MEDIA2 = (GST_MINI_OBJECT_FLAG_LAST << 6),
12700 GST_BUFFER_FLAG_MEDIA3 = (GST_MINI_OBJECT_FLAG_LAST << 7),
12701 GST_BUFFER_FLAG_LAST = (GST_MINI_OBJECT_FLAG_LAST << 8)
12702 } GstBufferFlag;
12703 struct _GstBuffer {
12704 GstMiniObject mini_object;
12705 guint8 *data;
12706 guint size;
12707 GstClockTime timestamp;
12708 GstClockTime duration;
12709 GstCaps *caps;
12710 guint64 offset;
12711 guint64 offset_end;
12712 guint8 *malloc_data;
12713 GFreeFunc free_func;
12714 gpointer _gst_reserved[4 - 1];
12715 };
12716 struct _GstBufferClass {
12717 GstMiniObjectClass mini_object_class;
12718 };
12719 GType gst_buffer_get_type (void);
12720 GstBuffer * gst_buffer_new (void);
12721 GstBuffer * gst_buffer_new_and_alloc (guint size);
12722 GstBuffer * gst_buffer_try_new_and_alloc (guint size);
12723 static inline GstBuffer *
12724 gst_buffer_ref (GstBuffer * buf)
12725 {
12726 return (GstBuffer *) gst_mini_object_ref (((GstMiniObject*)(buf)));
12727 }
12728 static inline void
12729 gst_buffer_unref (GstBuffer * buf)
12730 {
12731 gst_mini_object_unref (((GstMiniObject*)(buf)));
12732 }
12733 static inline GstBuffer *
12734 gst_buffer_copy (const GstBuffer * buf)
12735 {
12736 return ((((GstBuffer*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(buf))))), ((gst_buffer_get_type()))))));
12737 }
12738 typedef enum {
12739 GST_BUFFER_COPY_FLAGS = (1 << 0),
12740 GST_BUFFER_COPY_TIMESTAMPS = (1 << 1),
12741 GST_BUFFER_COPY_CAPS = (1 << 2)
12742 } GstBufferCopyFlags;
12743 void gst_buffer_copy_metadata (GstBuffer *dest, const GstBuffer *src,
12744 GstBufferCopyFlags flags);
12745 gboolean gst_buffer_is_metadata_writable (GstBuffer *buf);
12746 GstBuffer* gst_buffer_make_metadata_writable (GstBuffer *buf);
12747 GstCaps* gst_buffer_get_caps (GstBuffer *buffer);
12748 void gst_buffer_set_caps (GstBuffer *buffer, GstCaps *caps);
12749 GstBuffer* gst_buffer_create_sub (GstBuffer *parent, guint offset, guint size);
12750 gboolean gst_buffer_is_span_fast (GstBuffer *buf1, GstBuffer *buf2);
12751 GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, guint32 len);
12752 typedef struct _GstBufferList GstBufferList;
12753 typedef struct _GstBufferListClass GstBufferListClass;
12754 typedef struct _GstBufferListIterator GstBufferListIterator;
12755 typedef GstBuffer* (*GstBufferListDoFunction) (GstBuffer * buffer, gpointer user_data);
12756 typedef enum {
12757 GST_BUFFER_LIST_CONTINUE,
12758 GST_BUFFER_LIST_SKIP_GROUP,
12759 GST_BUFFER_LIST_END
12760 } GstBufferListItem;
12761 typedef GstBufferListItem (*GstBufferListFunc) (GstBuffer **buffer, guint group, guint idx,
12762 gpointer user_data);
12763 GType gst_buffer_list_get_type (void);
12764 GstBufferList *gst_buffer_list_new (void);
12765 static inline GstBufferList *
12766 gst_buffer_list_ref (GstBufferList * list)
12767 {
12768 return ((GstBufferList *)gst_mini_object_ref (((GstMiniObject*)(list))));
12769 }
12770 static inline void
12771 gst_buffer_list_unref (GstBufferList * list)
12772 {
12773 gst_mini_object_unref (((GstMiniObject*)(list)));
12774 }
12775 static inline GstBufferList *
12776 gst_buffer_list_copy (const GstBufferList * list)
12777 {
12778 return ((((GstBufferList*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(list))))), ((gst_buffer_list_get_type ()))))));
12779 }
12780 guint gst_buffer_list_n_groups (GstBufferList *list);
12781 void gst_buffer_list_foreach (GstBufferList *list,
12782 GstBufferListFunc func,
12783 gpointer user_data);
12784 GstBuffer * gst_buffer_list_get (GstBufferList *list, guint group, guint idx);
12785 GstBufferListIterator * gst_buffer_list_iterate (GstBufferList *list);
12786 void gst_buffer_list_iterator_free (GstBufferListIterator *it);
12787 guint gst_buffer_list_iterator_n_buffers (const GstBufferListIterator *it);
12788 GstBuffer * gst_buffer_list_iterator_next (GstBufferListIterator *it);
12789 gboolean gst_buffer_list_iterator_next_group (GstBufferListIterator *it);
12790 void gst_buffer_list_iterator_add (GstBufferListIterator *it, GstBuffer *buffer);
12791 void gst_buffer_list_iterator_add_group (GstBufferListIterator *it);
12792 void gst_buffer_list_iterator_remove (GstBufferListIterator *it);
12793 GstBuffer * gst_buffer_list_iterator_steal (GstBufferListIterator *it);
12794 void gst_buffer_list_iterator_take (GstBufferListIterator *it, GstBuffer *buffer);
12795 GstBuffer * gst_buffer_list_iterator_do (GstBufferListIterator *it, GstBufferListDoFunction do_func,
12796 gpointer user_data);
12797 GstBuffer * gst_buffer_list_iterator_merge_group (const GstBufferListIterator *it);
12798 typedef enum {
12799 GST_ITERATOR_DONE = 0,
12800 GST_ITERATOR_OK = 1,
12801 GST_ITERATOR_RESYNC = 2,
12802 GST_ITERATOR_ERROR = 3
12803 } GstIteratorResult;
12804 typedef struct _GstIterator GstIterator;
12805 typedef enum {
12806 GST_ITERATOR_ITEM_SKIP = 0,
12807 GST_ITERATOR_ITEM_PASS = 1,
12808 GST_ITERATOR_ITEM_END = 2
12809 } GstIteratorItem;
12810 typedef void (*GstIteratorDisposeFunction) (gpointer owner);
12811 typedef GstIteratorResult (*GstIteratorNextFunction) (GstIterator *it, gpointer *result);
12812 typedef GstIteratorItem (*GstIteratorItemFunction) (GstIterator *it, gpointer item);
12813 typedef void (*GstIteratorResyncFunction) (GstIterator *it);
12814 typedef void (*GstIteratorFreeFunction) (GstIterator *it);
12815 typedef gboolean (*GstIteratorFoldFunction) (gpointer item, GValue *ret, gpointer user_data);
12816 struct _GstIterator {
12817 GstIteratorNextFunction next;
12818 GstIteratorItemFunction item;
12819 GstIteratorResyncFunction resync;
12820 GstIteratorFreeFunction free;
12821 GstIterator *pushed;
12822 GType type;
12823 GMutex *lock;
12824 guint32 cookie;
12825 guint32 *master_cookie;
12826 gpointer _gst_reserved[4];
12827 };
12828 GstIterator* gst_iterator_new (guint size,
12829 GType type,
12830 GMutex *lock,
12831 guint32 *master_cookie,
12832 GstIteratorNextFunction next,
12833 GstIteratorItemFunction item,
12834 GstIteratorResyncFunction resync,
12835 GstIteratorFreeFunction free);
12836 GstIterator* gst_iterator_new_list (GType type,
12837 GMutex *lock,
12838 guint32 *master_cookie,
12839 GList **list,
12840 gpointer owner,
12841 GstIteratorItemFunction item,
12842 GstIteratorDisposeFunction free);
12843 GstIteratorResult gst_iterator_next (GstIterator *it, gpointer *elem);
12844 void gst_iterator_resync (GstIterator *it);
12845 void gst_iterator_free (GstIterator *it);
12846 void gst_iterator_push (GstIterator *it, GstIterator *other);
12847 GstIterator* gst_iterator_filter (GstIterator *it, GCompareFunc func,
12848 gpointer user_data);
12849 GstIteratorResult gst_iterator_fold (GstIterator *it,
12850 GstIteratorFoldFunction func,
12851 GValue *ret, gpointer user_data);
12852 GstIteratorResult gst_iterator_foreach (GstIterator *it,
12853 GFunc func, gpointer user_data);
12854 gpointer gst_iterator_find_custom (GstIterator *it, GCompareFunc func,
12855 gpointer user_data);
12856 typedef enum {
12857 GST_FORMAT_UNDEFINED = 0,
12858 GST_FORMAT_DEFAULT = 1,
12859 GST_FORMAT_BYTES = 2,
12860 GST_FORMAT_TIME = 3,
12861 GST_FORMAT_BUFFERS = 4,
12862 GST_FORMAT_PERCENT = 5
12863 } GstFormat;
12864 typedef struct _GstFormatDefinition GstFormatDefinition;
12865 struct _GstFormatDefinition
12866 {
12867 GstFormat value;
12868 gchar *nick;
12869 gchar *description;
12870 GQuark quark;
12871 };
12872 const gchar* gst_format_get_name (GstFormat format);
12873 GQuark gst_format_to_quark (GstFormat format);
12874 GstFormat gst_format_register (const gchar *nick,
12875 const gchar *description);
12876 GstFormat gst_format_get_by_nick (const gchar *nick);
12877 gboolean gst_formats_contains (const GstFormat *formats, GstFormat format);
12878 const GstFormatDefinition*
12879 gst_format_get_details (GstFormat format);
12880 GstIterator* gst_format_iterate_definitions (void);
12881 typedef enum {
12882 GST_TAG_MERGE_UNDEFINED,
12883 GST_TAG_MERGE_REPLACE_ALL,
12884 GST_TAG_MERGE_REPLACE,
12885 GST_TAG_MERGE_APPEND,
12886 GST_TAG_MERGE_PREPEND,
12887 GST_TAG_MERGE_KEEP,
12888 GST_TAG_MERGE_KEEP_ALL,
12889 GST_TAG_MERGE_COUNT
12890 } GstTagMergeMode;
12891 typedef enum {
12892 GST_TAG_FLAG_UNDEFINED,
12893 GST_TAG_FLAG_META,
12894 GST_TAG_FLAG_ENCODED,
12895 GST_TAG_FLAG_DECODED,
12896 GST_TAG_FLAG_COUNT
12897 } GstTagFlag;
12898 typedef GstStructure GstTagList;
12899 typedef void (*GstTagForeachFunc) (const GstTagList * list,
12900 const gchar * tag,
12901 gpointer user_data);
12902 typedef void (* GstTagMergeFunc) (GValue *dest, const GValue *src);
12903 GType gst_tag_list_get_type (void);
12904 void gst_tag_register (const gchar * name,
12905 GstTagFlag flag,
12906 GType type,
12907 const gchar * nick,
12908 const gchar * blurb,
12909 GstTagMergeFunc func);
12910 void gst_tag_merge_use_first (GValue * dest, const GValue * src);
12911 void gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src);
12912 gboolean gst_tag_exists (const gchar * tag);
12913 GType gst_tag_get_type (const gchar * tag);
12914 const gchar * gst_tag_get_nick (const gchar * tag);
12915 const gchar * gst_tag_get_description (const gchar * tag);
12916 GstTagFlag gst_tag_get_flag (const gchar * tag);
12917 gboolean gst_tag_is_fixed (const gchar * tag);
12918 GstTagList * gst_tag_list_new (void);
12919 GstTagList * gst_tag_list_new_full (const gchar * tag, ...);
12920 GstTagList * gst_tag_list_new_full_valist (va_list var_args);
12921 gboolean gst_is_tag_list (gconstpointer p);
12922 GstTagList * gst_tag_list_copy (const GstTagList * list);
12923 gboolean gst_tag_list_is_empty (const GstTagList * list);
12924 void gst_tag_list_insert (GstTagList * into,
12925 const GstTagList * from,
12926 GstTagMergeMode mode);
12927 GstTagList * gst_tag_list_merge (const GstTagList * list1,
12928 const GstTagList * list2,
12929 GstTagMergeMode mode);
12930 void gst_tag_list_free (GstTagList * list);
12931 guint gst_tag_list_get_tag_size (const GstTagList * list,
12932 const gchar * tag);
12933 void gst_tag_list_add (GstTagList * list,
12934 GstTagMergeMode mode,
12935 const gchar * tag,
12936 ...) __attribute__((__sentinel__));
12937 void gst_tag_list_add_values (GstTagList * list,
12938 GstTagMergeMode mode,
12939 const gchar * tag,
12940 ...) __attribute__((__sentinel__));
12941 void gst_tag_list_add_valist (GstTagList * list,
12942 GstTagMergeMode mode,
12943 const gchar * tag,
12944 va_list var_args);
12945 void gst_tag_list_add_valist_values (GstTagList * list,
12946 GstTagMergeMode mode,
12947 const gchar * tag,
12948 va_list var_args);
12949 void gst_tag_list_add_value (GstTagList * list,
12950 GstTagMergeMode mode,
12951 const gchar * tag,
12952 const GValue * value);
12953 void gst_tag_list_remove_tag (GstTagList * list,
12954 const gchar * tag);
12955 void gst_tag_list_foreach (const GstTagList * list,
12956 GstTagForeachFunc func,
12957 gpointer user_data);
12958 const GValue *
12959 gst_tag_list_get_value_index (const GstTagList * list,
12960 const gchar * tag,
12961 guint index);
12962 gboolean gst_tag_list_copy_value (GValue * dest,
12963 const GstTagList * list,
12964 const gchar * tag);
12965 gboolean gst_tag_list_get_char (const GstTagList * list,
12966 const gchar * tag,
12967 gchar * value);
12968 gboolean gst_tag_list_get_char_index (const GstTagList * list,
12969 const gchar * tag,
12970 guint index,
12971 gchar * value);
12972 gboolean gst_tag_list_get_uchar (const GstTagList * list,
12973 const gchar * tag,
12974 guchar * value);
12975 gboolean gst_tag_list_get_uchar_index (const GstTagList * list,
12976 const gchar * tag,
12977 guint index,
12978 guchar * value);
12979 gboolean gst_tag_list_get_boolean (const GstTagList * list,
12980 const gchar * tag,
12981 gboolean * value);
12982 gboolean gst_tag_list_get_boolean_index (const GstTagList * list,
12983 const gchar * tag,
12984 guint index,
12985 gboolean * value);
12986 gboolean gst_tag_list_get_int (const GstTagList * list,
12987 const gchar * tag,
12988 gint * value);
12989 gboolean gst_tag_list_get_int_index (const GstTagList * list,
12990 const gchar * tag,
12991 guint index,
12992 gint * value);
12993 gboolean gst_tag_list_get_uint (const GstTagList * list,
12994 const gchar * tag,
12995 guint * value);
12996 gboolean gst_tag_list_get_uint_index (const GstTagList * list,
12997 const gchar * tag,
12998 guint index,
12999 guint * value);
13000 gboolean gst_tag_list_get_long (const GstTagList * list,
13001 const gchar * tag,
13002 glong * value);
13003 gboolean gst_tag_list_get_long_index (const GstTagList * list,
13004 const gchar * tag,
13005 guint index,
13006 glong * value);
13007 gboolean gst_tag_list_get_ulong (const GstTagList * list,
13008 const gchar * tag,
13009 gulong * value);
13010 gboolean gst_tag_list_get_ulong_index (const GstTagList * list,
13011 const gchar * tag,
13012 guint index,
13013 gulong * value);
13014 gboolean gst_tag_list_get_int64 (const GstTagList * list,
13015 const gchar * tag,
13016 gint64 * value);
13017 gboolean gst_tag_list_get_int64_index (const GstTagList * list,
13018 const gchar * tag,
13019 guint index,
13020 gint64 * value);
13021 gboolean gst_tag_list_get_uint64 (const GstTagList * list,
13022 const gchar * tag,
13023 guint64 * value);
13024 gboolean gst_tag_list_get_uint64_index (const GstTagList * list,
13025 const gchar * tag,
13026 guint index,
13027 guint64 * value);
13028 gboolean gst_tag_list_get_float (const GstTagList * list,
13029 const gchar * tag,
13030 gfloat * value);
13031 gboolean gst_tag_list_get_float_index (const GstTagList * list,
13032 const gchar * tag,
13033 guint index,
13034 gfloat * value);
13035 gboolean gst_tag_list_get_double (const GstTagList * list,
13036 const gchar * tag,
13037 gdouble * value);
13038 gboolean gst_tag_list_get_double_index (const GstTagList * list,
13039 const gchar * tag,
13040 guint index,
13041 gdouble * value);
13042 gboolean gst_tag_list_get_string (const GstTagList * list,
13043 const gchar * tag,
13044 gchar ** value);
13045 gboolean gst_tag_list_get_string_index (const GstTagList * list,
13046 const gchar * tag,
13047 guint index,
13048 gchar ** value);
13049 gboolean gst_tag_list_get_pointer (const GstTagList * list,
13050 const gchar * tag,
13051 gpointer * value);
13052 gboolean gst_tag_list_get_pointer_index (const GstTagList * list,
13053 const gchar * tag,
13054 guint index,
13055 gpointer * value);
13056 gboolean gst_tag_list_get_date (const GstTagList * list,
13057 const gchar * tag,
13058 GDate ** value);
13059 gboolean gst_tag_list_get_date_index (const GstTagList * list,
13060 const gchar * tag,
13061 guint index,
13062 GDate ** value);
13063 gboolean gst_tag_list_get_buffer (const GstTagList * list,
13064 const gchar * tag,
13065 GstBuffer ** value);
13066 gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
13067 const gchar * tag,
13068 guint index,
13069 GstBuffer ** value);
13070 typedef enum {
13071 GST_EVENT_TYPE_UPSTREAM = 1 << 0,
13072 GST_EVENT_TYPE_DOWNSTREAM = 1 << 1,
13073 GST_EVENT_TYPE_SERIALIZED = 1 << 2
13074 } GstEventTypeFlags;
13075 typedef enum {
13076 GST_EVENT_UNKNOWN = (((0) << 4) | (0)),
13077 GST_EVENT_FLUSH_START = (((1) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM))),
13078 GST_EVENT_FLUSH_STOP = (((2) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM) | GST_EVENT_TYPE_SERIALIZED)),
13079 GST_EVENT_EOS = (((5) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
13080 GST_EVENT_NEWSEGMENT = (((6) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
13081 GST_EVENT_TAG = (((7) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
13082 GST_EVENT_BUFFERSIZE = (((8) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
13083 GST_EVENT_QOS = (((15) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13084 GST_EVENT_SEEK = (((16) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13085 GST_EVENT_NAVIGATION = (((17) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13086 GST_EVENT_LATENCY = (((18) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13087 GST_EVENT_STEP = (((19) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13088 GST_EVENT_CUSTOM_UPSTREAM = (((32) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
13089 GST_EVENT_CUSTOM_DOWNSTREAM = (((32) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
13090 GST_EVENT_CUSTOM_DOWNSTREAM_OOB = (((32) << 4) | (GST_EVENT_TYPE_DOWNSTREAM)),
13091 GST_EVENT_CUSTOM_BOTH = (((32) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM) | GST_EVENT_TYPE_SERIALIZED)),
13092 GST_EVENT_CUSTOM_BOTH_OOB = (((32) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM)))
13093 } GstEventType;
13094 typedef struct _GstEvent GstEvent;
13095 typedef struct _GstEventClass GstEventClass;
13096 typedef enum {
13097 GST_SEEK_TYPE_NONE = 0,
13098 GST_SEEK_TYPE_CUR = 1,
13099 GST_SEEK_TYPE_SET = 2,
13100 GST_SEEK_TYPE_END = 3
13101 } GstSeekType;
13102 typedef enum {
13103 GST_SEEK_FLAG_NONE = 0,
13104 GST_SEEK_FLAG_FLUSH = (1 << 0),
13105 GST_SEEK_FLAG_ACCURATE = (1 << 1),
13106 GST_SEEK_FLAG_KEY_UNIT = (1 << 2),
13107 GST_SEEK_FLAG_SEGMENT = (1 << 3),
13108 GST_SEEK_FLAG_SKIP = (1 << 4)
13109 } GstSeekFlags;
13110 struct _GstEvent {
13111 GstMiniObject mini_object;
13112 GstEventType type;
13113 guint64 timestamp;
13114 GstObject *src;
13115 GstStructure *structure;
13116 union {
13117 guint32 seqnum;
13118 gpointer _gst_reserved;
13119 } abidata;
13120 };
13121 struct _GstEventClass {
13122 GstMiniObjectClass mini_object_class;
13123 gpointer _gst_reserved[4];
13124 };
13125 const gchar* gst_event_type_get_name (GstEventType type);
13126 GQuark gst_event_type_to_quark (GstEventType type);
13127 GstEventTypeFlags
13128 gst_event_type_get_flags (GstEventType type);
13129 GType gst_event_get_type (void);
13130 static inline GstEvent *
13131 gst_event_ref (GstEvent * event)
13132 {
13133 return (GstEvent *) gst_mini_object_ref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))));
13134 }
13135 static inline void
13136 gst_event_unref (GstEvent * event)
13137 {
13138 gst_mini_object_unref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))));
13139 }
13140 static inline GstEvent *
13141 gst_event_copy (const GstEvent * event)
13142 {
13143 return ((GstEvent *)(gst_mini_object_copy (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))))));
13144 }
13145 GstEvent* gst_event_new_custom (GstEventType type, GstStructure *structure);
13146 const GstStructure *
13147 gst_event_get_structure (GstEvent *event);
13148 gboolean gst_event_has_name (GstEvent *event, const gchar *name);
13149 guint32 gst_event_get_seqnum (GstEvent *event);
13150 void gst_event_set_seqnum (GstEvent *event, guint32 seqnum);
13151 GstEvent * gst_event_new_flush_start (void);
13152 GstEvent * gst_event_new_flush_stop (void);
13153 GstEvent * gst_event_new_eos (void);
13154 GstEvent* gst_event_new_new_segment (gboolean update, gdouble rate,
13155 GstFormat format,
13156 gint64 start, gint64 stop,
13157 gint64 position);
13158 GstEvent* gst_event_new_new_segment_full (gboolean update, gdouble rate,
13159 gdouble applied_rate,
13160 GstFormat format,
13161 gint64 start, gint64 stop,
13162 gint64 position);
13163 void gst_event_parse_new_segment (GstEvent *event,
13164 gboolean *update,
13165 gdouble *rate,
13166 GstFormat *format,
13167 gint64 *start, gint64 *stop,
13168 gint64 *position);
13169 void gst_event_parse_new_segment_full (GstEvent *event,
13170 gboolean *update,
13171 gdouble *rate,
13172 gdouble *applied_rate,
13173 GstFormat *format,
13174 gint64 *start, gint64 *stop,
13175 gint64 *position);
13176 GstEvent* gst_event_new_tag (GstTagList *taglist);
13177 void gst_event_parse_tag (GstEvent *event, GstTagList **taglist);
13178 GstEvent * gst_event_new_buffer_size (GstFormat format, gint64 minsize, gint64 maxsize,
13179 gboolean async);
13180 void gst_event_parse_buffer_size (GstEvent *event, GstFormat *format, gint64 *minsize,
13181 gint64 *maxsize, gboolean *async);
13182 GstEvent* gst_event_new_qos (gdouble proportion, GstClockTimeDiff diff,
13183 GstClockTime timestamp);
13184 void gst_event_parse_qos (GstEvent *event, gdouble *proportion, GstClockTimeDiff *diff,
13185 GstClockTime *timestamp);
13186 GstEvent* gst_event_new_seek (gdouble rate, GstFormat format, GstSeekFlags flags,
13187 GstSeekType start_type, gint64 start,
13188 GstSeekType stop_type, gint64 stop);
13189 void gst_event_parse_seek (GstEvent *event, gdouble *rate, GstFormat *format,
13190 GstSeekFlags *flags,
13191 GstSeekType *start_type, gint64 *start,
13192 GstSeekType *stop_type, gint64 *stop);
13193 GstEvent* gst_event_new_navigation (GstStructure *structure);
13194 GstEvent* gst_event_new_latency (GstClockTime latency);
13195 void gst_event_parse_latency (GstEvent *event, GstClockTime *latency);
13196 GstEvent* gst_event_new_step (GstFormat format, guint64 amount, gdouble rate,
13197 gboolean flush, gboolean intermediate);
13198 void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount,
13199 gdouble *rate, gboolean *flush, gboolean *intermediate);
13200 typedef enum {
13201 GST_QUERY_NONE = 0,
13202 GST_QUERY_POSITION,
13203 GST_QUERY_DURATION,
13204 GST_QUERY_LATENCY,
13205 GST_QUERY_JITTER,
13206 GST_QUERY_RATE,
13207 GST_QUERY_SEEKING,
13208 GST_QUERY_SEGMENT,
13209 GST_QUERY_CONVERT,
13210 GST_QUERY_FORMATS,
13211 GST_QUERY_BUFFERING,
13212 GST_QUERY_CUSTOM,
13213 GST_QUERY_URI
13214 } GstQueryType;
13215 typedef enum {
13216 GST_BUFFERING_STREAM,
13217 GST_BUFFERING_DOWNLOAD,
13218 GST_BUFFERING_TIMESHIFT,
13219 GST_BUFFERING_LIVE
13220 } GstBufferingMode;
13221 typedef struct _GstQueryTypeDefinition GstQueryTypeDefinition;
13222 typedef struct _GstQuery GstQuery;
13223 typedef struct _GstQueryClass GstQueryClass;
13224 struct _GstQueryTypeDefinition
13225 {
13226 GstQueryType value;
13227 gchar *nick;
13228 gchar *description;
13229 GQuark quark;
13230 };
13231 struct _GstQuery
13232 {
13233 GstMiniObject mini_object;
13234 GstQueryType type;
13235 GstStructure *structure;
13236 gpointer _gst_reserved;
13237 };
13238 struct _GstQueryClass {
13239 GstMiniObjectClass mini_object_class;
13240 gpointer _gst_reserved[4];
13241 };
13242 const gchar* gst_query_type_get_name (GstQueryType query);
13243 GQuark gst_query_type_to_quark (GstQueryType query);
13244 GType gst_query_get_type (void);
13245 GstQueryType gst_query_type_register (const gchar *nick,
13246 const gchar *description);
13247 GstQueryType gst_query_type_get_by_nick (const gchar *nick);
13248 gboolean gst_query_types_contains (const GstQueryType *types,
13249 GstQueryType type);
13250 const GstQueryTypeDefinition*
13251 gst_query_type_get_details (GstQueryType type);
13252 GstIterator* gst_query_type_iterate_definitions (void);
13253 static inline GstQuery *
13254 gst_query_ref (GstQuery * q)
13255 {
13256 return ((((GstQuery*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_ref (((GstMiniObject*)(q))))), ((gst_query_get_type()))))));
13257 }
13258 static inline void
13259 gst_query_unref (GstQuery * q)
13260 {
13261 gst_mini_object_unref (((GstMiniObject*)(q)));
13262 }
13263 static inline GstQuery *
13264 gst_query_copy (const GstQuery * q)
13265 {
13266 return ((((GstQuery*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(q))))), ((gst_query_get_type()))))));
13267 }
13268 GstQuery* gst_query_new_position (GstFormat format);
13269 void gst_query_set_position (GstQuery *query, GstFormat format, gint64 cur);
13270 void gst_query_parse_position (GstQuery *query, GstFormat *format, gint64 *cur);
13271 GstQuery* gst_query_new_duration (GstFormat format);
13272 void gst_query_set_duration (GstQuery *query, GstFormat format, gint64 duration);
13273 void gst_query_parse_duration (GstQuery *query, GstFormat *format, gint64 *duration);
13274 GstQuery* gst_query_new_latency (void);
13275 void gst_query_set_latency (GstQuery *query, gboolean live, GstClockTime min_latency,
13276 GstClockTime max_latency);
13277 void gst_query_parse_latency (GstQuery *query, gboolean *live, GstClockTime *min_latency,
13278 GstClockTime *max_latency);
13279 GstQuery* gst_query_new_convert (GstFormat src_format, gint64 value, GstFormat dest_format);
13280 void gst_query_set_convert (GstQuery *query, GstFormat src_format, gint64 src_value,
13281 GstFormat dest_format, gint64 dest_value);
13282 void gst_query_parse_convert (GstQuery *query, GstFormat *src_format, gint64 *src_value,
13283 GstFormat *dest_format, gint64 *dest_value);
13284 GstQuery* gst_query_new_segment (GstFormat format);
13285 void gst_query_set_segment (GstQuery *query, gdouble rate, GstFormat format,
13286 gint64 start_value, gint64 stop_value);
13287 void gst_query_parse_segment (GstQuery *query, gdouble *rate, GstFormat *format,
13288 gint64 *start_value, gint64 *stop_value);
13289 GstQuery * gst_query_new_application (GstQueryType type,
13290 GstStructure *structure);
13291 GstStructure * gst_query_get_structure (GstQuery *query);
13292 GstQuery* gst_query_new_seeking (GstFormat format);
13293 void gst_query_set_seeking (GstQuery *query, GstFormat format,
13294 gboolean seekable,
13295 gint64 segment_start,
13296 gint64 segment_end);
13297 void gst_query_parse_seeking (GstQuery *query, GstFormat *format,
13298 gboolean *seekable,
13299 gint64 *segment_start,
13300 gint64 *segment_end);
13301 GstQuery* gst_query_new_formats (void);
13302 void gst_query_set_formats (GstQuery *query, gint n_formats, ...);
13303 void gst_query_set_formatsv (GstQuery *query, gint n_formats, GstFormat *formats);
13304 void gst_query_parse_formats_length (GstQuery *query, guint *n_formats);
13305 void gst_query_parse_formats_nth (GstQuery *query, guint nth, GstFormat *format);
13306 GstQuery* gst_query_new_buffering (GstFormat format);
13307 void gst_query_set_buffering_percent (GstQuery *query, gboolean busy, gint percent);
13308 void gst_query_parse_buffering_percent (GstQuery *query, gboolean *busy, gint *percent);
13309 void gst_query_set_buffering_stats (GstQuery *query, GstBufferingMode mode,
13310 gint avg_in, gint avg_out,
13311 gint64 buffering_left);
13312 void gst_query_parse_buffering_stats (GstQuery *query, GstBufferingMode *mode,
13313 gint *avg_in, gint *avg_out,
13314 gint64 *buffering_left);
13315 void gst_query_set_buffering_range (GstQuery *query, GstFormat format,
13316 gint64 start, gint64 stop,
13317 gint64 estimated_total);
13318 void gst_query_parse_buffering_range (GstQuery *query, GstFormat *format,
13319 gint64 *start, gint64 *stop,
13320 gint64 *estimated_total);
13321 GstQuery * gst_query_new_uri (void);
13322 void gst_query_parse_uri (GstQuery *query, gchar **uri);
13323 void gst_query_set_uri (GstQuery *query, const gchar *uri);
13324 typedef struct _GstTaskPool GstTaskPool;
13325 typedef struct _GstTaskPoolClass GstTaskPoolClass;
13326 typedef void (*GstTaskPoolFunction) (void *data);
13327 struct _GstTaskPool {
13328 GstObject object;
13329 GThreadPool *pool;
13330 gpointer _gst_reserved[4];
13331 };
13332 struct _GstTaskPoolClass {
13333 GstObjectClass parent_class;
13334 void (*prepare) (GstTaskPool *pool, GError **error);
13335 void (*cleanup) (GstTaskPool *pool);
13336 gpointer (*push) (GstTaskPool *pool, GstTaskPoolFunction func,
13337 gpointer user_data, GError **error);
13338 void (*join) (GstTaskPool *pool, gpointer id);
13339 gpointer _gst_reserved[4];
13340 };
13341 GType gst_task_pool_get_type (void);
13342 GstTaskPool * gst_task_pool_new (void);
13343 void gst_task_pool_prepare (GstTaskPool *pool, GError **error);
13344 gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func,
13345 gpointer user_data, GError **error);
13346 void gst_task_pool_join (GstTaskPool *pool, gpointer id);
13347 void gst_task_pool_cleanup (GstTaskPool *pool);
13348 typedef void (*GstTaskFunction) (void *data);
13349 typedef struct _GstTask GstTask;
13350 typedef struct _GstTaskClass GstTaskClass;
13351 typedef struct _GstTaskPrivate GstTaskPrivate;
13352 typedef enum {
13353 GST_TASK_STARTED,
13354 GST_TASK_STOPPED,
13355 GST_TASK_PAUSED
13356 } GstTaskState;
13357 typedef struct {
13358 void (*enter_thread) (GstTask *task, GThread *thread, gpointer user_data);
13359 void (*leave_thread) (GstTask *task, GThread *thread, gpointer user_data);
13360 gpointer _gst_reserved[4];
13361 } GstTaskThreadCallbacks;
13362 struct _GstTask {
13363 GstObject object;
13364 GstTaskState state;
13365 GCond *cond;
13366 GStaticRecMutex *lock;
13367 GstTaskFunction func;
13368 gpointer data;
13369 gboolean running;
13370 union {
13371 struct {
13372 GThread *thread;
13373 } ABI;
13374 gpointer _gst_reserved[4 - 1];
13375 } abidata;
13376 GstTaskPrivate *priv;
13377 };
13378 struct _GstTaskClass {
13379 GstObjectClass parent_class;
13380 GstTaskPool *pool;
13381 gpointer _gst_reserved[4];
13382 };
13383 void gst_task_cleanup_all (void);
13384 GType gst_task_get_type (void);
13385 GstTask* gst_task_create (GstTaskFunction func, gpointer data);
13386 void gst_task_set_lock (GstTask *task, GStaticRecMutex *mutex);
13387 void gst_task_set_priority (GstTask *task, GThreadPriority priority);
13388 GstTaskPool * gst_task_get_pool (GstTask *task);
13389 void gst_task_set_pool (GstTask *task, GstTaskPool *pool);
13390 void gst_task_set_thread_callbacks (GstTask *task,
13391 GstTaskThreadCallbacks *callbacks,
13392 gpointer user_data,
13393 GDestroyNotify notify);
13394 GstTaskState gst_task_get_state (GstTask *task);
13395 gboolean gst_task_set_state (GstTask *task, GstTaskState state);
13396 gboolean gst_task_start (GstTask *task);
13397 gboolean gst_task_stop (GstTask *task);
13398 gboolean gst_task_pause (GstTask *task);
13399 gboolean gst_task_join (GstTask *task);
13400 typedef struct _GstPad GstPad;
13401 typedef struct _GstPadPrivate GstPadPrivate;
13402 typedef struct _GstPadClass GstPadClass;
13403 typedef enum {
13404 GST_PAD_LINK_OK = 0,
13405 GST_PAD_LINK_WRONG_HIERARCHY = -1,
13406 GST_PAD_LINK_WAS_LINKED = -2,
13407 GST_PAD_LINK_WRONG_DIRECTION = -3,
13408 GST_PAD_LINK_NOFORMAT = -4,
13409 GST_PAD_LINK_NOSCHED = -5,
13410 GST_PAD_LINK_REFUSED = -6
13411 } GstPadLinkReturn;
13412 typedef enum {
13413 GST_FLOW_CUSTOM_SUCCESS = 100,
13414 GST_FLOW_RESEND = 1,
13415 GST_FLOW_OK = 0,
13416 GST_FLOW_NOT_LINKED = -1,
13417 GST_FLOW_WRONG_STATE = -2,
13418 GST_FLOW_UNEXPECTED = -3,
13419 GST_FLOW_NOT_NEGOTIATED = -4,
13420 GST_FLOW_ERROR = -5,
13421 GST_FLOW_NOT_SUPPORTED = -6,
13422 GST_FLOW_CUSTOM_ERROR = -100
13423 } GstFlowReturn;
13424 const gchar* gst_flow_get_name (GstFlowReturn ret);
13425 GQuark gst_flow_to_quark (GstFlowReturn ret);
13426 typedef enum {
13427 GST_ACTIVATE_NONE,
13428 GST_ACTIVATE_PUSH,
13429 GST_ACTIVATE_PULL
13430 } GstActivateMode;
13431 typedef gboolean (*GstPadActivateFunction) (GstPad *pad);
13432 typedef gboolean (*GstPadActivateModeFunction) (GstPad *pad, gboolean active);
13433 typedef GstFlowReturn (*GstPadChainFunction) (GstPad *pad, GstBuffer *buffer);
13434 typedef GstFlowReturn (*GstPadChainListFunction) (GstPad *pad, GstBufferList *list);
13435 typedef GstFlowReturn (*GstPadGetRangeFunction) (GstPad *pad, guint64 offset,
13436 guint length, GstBuffer **buffer);
13437 typedef gboolean (*GstPadEventFunction) (GstPad *pad, GstEvent *event);
13438 typedef gboolean (*GstPadCheckGetRangeFunction) (GstPad *pad);
13439 typedef GList* (*GstPadIntLinkFunction) (GstPad *pad);
13440 typedef GstIterator* (*GstPadIterIntLinkFunction) (GstPad *pad);
13441 typedef const GstQueryType* (*GstPadQueryTypeFunction) (GstPad *pad);
13442 typedef gboolean (*GstPadQueryFunction) (GstPad *pad, GstQuery *query);
13443 typedef GstPadLinkReturn (*GstPadLinkFunction) (GstPad *pad, GstPad *peer);
13444 typedef void (*GstPadUnlinkFunction) (GstPad *pad);
13445 typedef GstCaps* (*GstPadGetCapsFunction) (GstPad *pad);
13446 typedef gboolean (*GstPadSetCapsFunction) (GstPad *pad, GstCaps *caps);
13447 typedef gboolean (*GstPadAcceptCapsFunction) (GstPad *pad, GstCaps *caps);
13448 typedef void (*GstPadFixateCapsFunction) (GstPad *pad, GstCaps *caps);
13449 typedef GstFlowReturn (*GstPadBufferAllocFunction) (GstPad *pad, guint64 offset, guint size,
13450 GstCaps *caps, GstBuffer **buf);
13451 typedef gboolean (*GstPadDispatcherFunction) (GstPad *pad, gpointer data);
13452 typedef void (*GstPadBlockCallback) (GstPad *pad, gboolean blocked, gpointer user_data);
13453 typedef enum {
13454 GST_PAD_UNKNOWN,
13455 GST_PAD_SRC,
13456 GST_PAD_SINK
13457 } GstPadDirection;
13458 typedef enum {
13459 GST_PAD_BLOCKED = (GST_OBJECT_FLAG_LAST << 0),
13460 GST_PAD_FLUSHING = (GST_OBJECT_FLAG_LAST << 1),
13461 GST_PAD_IN_GETCAPS = (GST_OBJECT_FLAG_LAST << 2),
13462 GST_PAD_IN_SETCAPS = (GST_OBJECT_FLAG_LAST << 3),
13463 GST_PAD_BLOCKING = (GST_OBJECT_FLAG_LAST << 4),
13464 GST_PAD_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
13465 } GstPadFlags;
13466 typedef struct _GstPadTemplate GstPadTemplate;
13467 struct _GstPad {
13468 GstObject object;
13469 gpointer element_private;
13470 GstPadTemplate *padtemplate;
13471 GstPadDirection direction;
13472 GStaticRecMutex *stream_rec_lock;
13473 GstTask *task;
13474 GMutex *preroll_lock;
13475 GCond *preroll_cond;
13476 GCond *block_cond;
13477 GstPadBlockCallback block_callback;
13478 gpointer block_data;
13479 GstCaps *caps;
13480 GstPadGetCapsFunction getcapsfunc;
13481 GstPadSetCapsFunction setcapsfunc;
13482 GstPadAcceptCapsFunction acceptcapsfunc;
13483 GstPadFixateCapsFunction fixatecapsfunc;
13484 GstPadActivateFunction activatefunc;
13485 GstPadActivateModeFunction activatepushfunc;
13486 GstPadActivateModeFunction activatepullfunc;
13487 GstPadLinkFunction linkfunc;
13488 GstPadUnlinkFunction unlinkfunc;
13489 GstPad *peer;
13490 gpointer sched_private;
13491 GstPadChainFunction chainfunc;
13492 GstPadCheckGetRangeFunction checkgetrangefunc;
13493 GstPadGetRangeFunction getrangefunc;
13494 GstPadEventFunction eventfunc;
13495 GstActivateMode mode;
13496 GstPadQueryTypeFunction querytypefunc;
13497 GstPadQueryFunction queryfunc;
13498 GstPadIntLinkFunction intlinkfunc;
13499 GstPadBufferAllocFunction bufferallocfunc;
13500 gint do_buffer_signals;
13501 gint do_event_signals;
13502 GstPadIterIntLinkFunction iterintlinkfunc;
13503 GDestroyNotify block_destroy_data;
13504 union {
13505 struct {
13506 gboolean block_callback_called;
13507 GstPadPrivate *priv;
13508 } ABI;
13509 gpointer _gst_reserved[4 - 2];
13510 } abidata;
13511 };
13512 struct _GstPadClass {
13513 GstObjectClass parent_class;
13514 void (*linked) (GstPad *pad, GstPad *peer);
13515 void (*unlinked) (GstPad *pad, GstPad *peer);
13516 void (*request_link) (GstPad *pad);
13517 gboolean (*have_data) (GstPad *pad, GstMiniObject *data);
13518 gpointer _gst_reserved[4];
13519 };
13520 typedef struct _GstPadTemplateClass GstPadTemplateClass;
13521 typedef struct _GstStaticPadTemplate GstStaticPadTemplate;
13522 typedef enum {
13523 GST_PAD_ALWAYS,
13524 GST_PAD_SOMETIMES,
13525 GST_PAD_REQUEST
13526 } GstPadPresence;
13527 typedef enum {
13528 GST_PAD_TEMPLATE_FIXED = (GST_OBJECT_FLAG_LAST << 0),
13529 GST_PAD_TEMPLATE_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 4)
13530 } GstPadTemplateFlags;
13531 struct _GstPadTemplate {
13532 GstObject object;
13533 gchar *name_template;
13534 GstPadDirection direction;
13535 GstPadPresence presence;
13536 GstCaps *caps;
13537 gpointer _gst_reserved[4];
13538 };
13539 struct _GstPadTemplateClass {
13540 GstObjectClass parent_class;
13541 void (*pad_created) (GstPadTemplate *templ, GstPad *pad);
13542 gpointer _gst_reserved[4];
13543 };
13544 struct _GstStaticPadTemplate {
13545 const gchar *name_template;
13546 GstPadDirection direction;
13547 GstPadPresence presence;
13548 GstStaticCaps static_caps;
13549 };
13550 GType gst_pad_template_get_type (void);
13551 GType gst_static_pad_template_get_type (void);
13552 GstPadTemplate* gst_pad_template_new (const gchar *name_template,
13553 GstPadDirection direction, GstPadPresence presence,
13554 GstCaps *caps);
13555 GstPadTemplate * gst_static_pad_template_get (GstStaticPadTemplate *pad_template);
13556 GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ);
13557 GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ);
13558 void gst_pad_template_pad_created (GstPadTemplate * templ, GstPad * pad);
13559 GType gst_pad_get_type (void);
13560 GstPad* gst_pad_new (const gchar *name, GstPadDirection direction);
13561 GstPad* gst_pad_new_from_template (GstPadTemplate *templ, const gchar *name);
13562 GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const gchar *name);
13563 GstPadDirection gst_pad_get_direction (GstPad *pad);
13564 gboolean gst_pad_set_active (GstPad *pad, gboolean active);
13565 gboolean gst_pad_is_active (GstPad *pad);
13566 gboolean gst_pad_activate_pull (GstPad *pad, gboolean active);
13567 gboolean gst_pad_activate_push (GstPad *pad, gboolean active);
13568 gboolean gst_pad_set_blocked (GstPad *pad, gboolean blocked);
13569 gboolean gst_pad_set_blocked_async (GstPad *pad, gboolean blocked,
13570 GstPadBlockCallback callback, gpointer user_data);
13571 gboolean gst_pad_set_blocked_async_full (GstPad *pad, gboolean blocked,
13572 GstPadBlockCallback callback, gpointer user_data,
13573 GDestroyNotify destroy_data);
13574 gboolean gst_pad_is_blocked (GstPad *pad);
13575 gboolean gst_pad_is_blocking (GstPad *pad);
13576 void gst_pad_set_element_private (GstPad *pad, gpointer priv);
13577 gpointer gst_pad_get_element_private (GstPad *pad);
13578 GstPadTemplate* gst_pad_get_pad_template (GstPad *pad);
13579 void gst_pad_set_bufferalloc_function (GstPad *pad, GstPadBufferAllocFunction bufalloc);
13580 GstFlowReturn gst_pad_alloc_buffer (GstPad *pad, guint64 offset, gint size,
13581 GstCaps *caps, GstBuffer **buf);
13582 GstFlowReturn gst_pad_alloc_buffer_and_set_caps (GstPad *pad, guint64 offset, gint size,
13583 GstCaps *caps, GstBuffer **buf);
13584 void gst_pad_set_activate_function (GstPad *pad, GstPadActivateFunction activate);
13585 void gst_pad_set_activatepull_function (GstPad *pad, GstPadActivateModeFunction activatepull);
13586 void gst_pad_set_activatepush_function (GstPad *pad, GstPadActivateModeFunction activatepush);
13587 void gst_pad_set_chain_function (GstPad *pad, GstPadChainFunction chain);
13588 void gst_pad_set_chain_list_function (GstPad *pad, GstPadChainListFunction chainlist);
13589 void gst_pad_set_getrange_function (GstPad *pad, GstPadGetRangeFunction get);
13590 void gst_pad_set_checkgetrange_function (GstPad *pad, GstPadCheckGetRangeFunction check);
13591 void gst_pad_set_event_function (GstPad *pad, GstPadEventFunction event);
13592 void gst_pad_set_link_function (GstPad *pad, GstPadLinkFunction link);
13593 void gst_pad_set_unlink_function (GstPad *pad, GstPadUnlinkFunction unlink);
13594 gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
13595 GstPadLinkReturn gst_pad_link (GstPad *srcpad, GstPad *sinkpad);
13596 gboolean gst_pad_unlink (GstPad *srcpad, GstPad *sinkpad);
13597 gboolean gst_pad_is_linked (GstPad *pad);
13598 GstPad* gst_pad_get_peer (GstPad *pad);
13599 void gst_pad_set_getcaps_function (GstPad *pad, GstPadGetCapsFunction getcaps);
13600 void gst_pad_set_acceptcaps_function (GstPad *pad, GstPadAcceptCapsFunction acceptcaps);
13601 void gst_pad_set_fixatecaps_function (GstPad *pad, GstPadFixateCapsFunction fixatecaps);
13602 void gst_pad_set_setcaps_function (GstPad *pad, GstPadSetCapsFunction setcaps);
13603 const GstCaps* gst_pad_get_pad_template_caps (GstPad *pad);
13604 GstCaps * gst_pad_get_caps (GstPad * pad);
13605 void gst_pad_fixate_caps (GstPad * pad, GstCaps *caps);
13606 gboolean gst_pad_accept_caps (GstPad * pad, GstCaps *caps);
13607 gboolean gst_pad_set_caps (GstPad * pad, GstCaps *caps);
13608 GstCaps * gst_pad_peer_get_caps (GstPad * pad);
13609 gboolean gst_pad_peer_accept_caps (GstPad * pad, GstCaps *caps);
13610 GstCaps * gst_pad_get_allowed_caps (GstPad * pad);
13611 GstCaps * gst_pad_get_negotiated_caps (GstPad * pad);
13612 GstFlowReturn gst_pad_push (GstPad *pad, GstBuffer *buffer);
13613 GstFlowReturn gst_pad_push_list (GstPad *pad, GstBufferList *list);
13614 gboolean gst_pad_check_pull_range (GstPad *pad);
13615 GstFlowReturn gst_pad_pull_range (GstPad *pad, guint64 offset, guint size,
13616 GstBuffer **buffer);
13617 gboolean gst_pad_push_event (GstPad *pad, GstEvent *event);
13618 gboolean gst_pad_event_default (GstPad *pad, GstEvent *event);
13619 GstFlowReturn gst_pad_chain (GstPad *pad, GstBuffer *buffer);
13620 GstFlowReturn gst_pad_chain_list (GstPad *pad, GstBufferList *list);
13621 GstFlowReturn gst_pad_get_range (GstPad *pad, guint64 offset, guint size,
13622 GstBuffer **buffer);
13623 gboolean gst_pad_send_event (GstPad *pad, GstEvent *event);
13624 gboolean gst_pad_start_task (GstPad *pad, GstTaskFunction func,
13625 gpointer data);
13626 gboolean gst_pad_pause_task (GstPad *pad);
13627 gboolean gst_pad_stop_task (GstPad *pad);
13628 void gst_pad_set_internal_link_function (GstPad *pad, GstPadIntLinkFunction intlink);
13629 GList* gst_pad_get_internal_links (GstPad *pad);
13630 GList* gst_pad_get_internal_links_default (GstPad *pad);
13631 void gst_pad_set_iterate_internal_links_function (GstPad * pad,
13632 GstPadIterIntLinkFunction iterintlink);
13633 GstIterator * gst_pad_iterate_internal_links (GstPad * pad);
13634 GstIterator * gst_pad_iterate_internal_links_default (GstPad * pad);
13635 void gst_pad_set_query_type_function (GstPad *pad, GstPadQueryTypeFunction type_func);
13636 const GstQueryType*
13637 gst_pad_get_query_types (GstPad *pad);
13638 const GstQueryType*
13639 gst_pad_get_query_types_default (GstPad *pad);
13640 gboolean gst_pad_query (GstPad *pad, GstQuery *query);
13641 gboolean gst_pad_peer_query (GstPad *pad, GstQuery *query);
13642 void gst_pad_set_query_function (GstPad *pad, GstPadQueryFunction query);
13643 gboolean gst_pad_query_default (GstPad *pad, GstQuery *query);
13644 gboolean gst_pad_dispatcher (GstPad *pad, GstPadDispatcherFunction dispatch,
13645 gpointer data);
13646 void gst_pad_load_and_link (xmlNodePtr self, GstObject *parent);
13647 typedef struct _GstBus GstBus;
13648 typedef struct _GstBusPrivate GstBusPrivate;
13649 typedef struct _GstBusClass GstBusClass;
13650 typedef struct _GstMessage GstMessage;
13651 typedef struct _GstMessageClass GstMessageClass;
13652 typedef enum
13653 {
13654 GST_MESSAGE_UNKNOWN = 0,
13655 GST_MESSAGE_EOS = (1 << 0),
13656 GST_MESSAGE_ERROR = (1 << 1),
13657 GST_MESSAGE_WARNING = (1 << 2),
13658 GST_MESSAGE_INFO = (1 << 3),
13659 GST_MESSAGE_TAG = (1 << 4),
13660 GST_MESSAGE_BUFFERING = (1 << 5),
13661 GST_MESSAGE_STATE_CHANGED = (1 << 6),
13662 GST_MESSAGE_STATE_DIRTY = (1 << 7),
13663 GST_MESSAGE_STEP_DONE = (1 << 8),
13664 GST_MESSAGE_CLOCK_PROVIDE = (1 << 9),
13665 GST_MESSAGE_CLOCK_LOST = (1 << 10),
13666 GST_MESSAGE_NEW_CLOCK = (1 << 11),
13667 GST_MESSAGE_STRUCTURE_CHANGE = (1 << 12),
13668 GST_MESSAGE_STREAM_STATUS = (1 << 13),
13669 GST_MESSAGE_APPLICATION = (1 << 14),
13670 GST_MESSAGE_ELEMENT = (1 << 15),
13671 GST_MESSAGE_SEGMENT_START = (1 << 16),
13672 GST_MESSAGE_SEGMENT_DONE = (1 << 17),
13673 GST_MESSAGE_DURATION = (1 << 18),
13674 GST_MESSAGE_LATENCY = (1 << 19),
13675 GST_MESSAGE_ASYNC_START = (1 << 20),
13676 GST_MESSAGE_ASYNC_DONE = (1 << 21),
13677 GST_MESSAGE_REQUEST_STATE = (1 << 22),
13678 GST_MESSAGE_STEP_START = (1 << 23),
13679 GST_MESSAGE_ANY = ~0
13680 } GstMessageType;
13681 typedef enum {
13682 GST_STRUCTURE_CHANGE_TYPE_PAD_LINK = 0,
13683 GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK = 1
13684 } GstStructureChangeType;
13685 typedef enum {
13686 GST_STREAM_STATUS_TYPE_CREATE = 0,
13687 GST_STREAM_STATUS_TYPE_ENTER = 1,
13688 GST_STREAM_STATUS_TYPE_LEAVE = 2,
13689 GST_STREAM_STATUS_TYPE_DESTROY = 3,
13690 GST_STREAM_STATUS_TYPE_START = 8,
13691 GST_STREAM_STATUS_TYPE_PAUSE = 9,
13692 GST_STREAM_STATUS_TYPE_STOP = 10
13693 } GstStreamStatusType;
13694 struct _GstMessage
13695 {
13696 GstMiniObject mini_object;
13697 GMutex *lock;
13698 GCond *cond;
13699 GstMessageType type;
13700 guint64 timestamp;
13701 GstObject *src;
13702 GstStructure *structure;
13703 union {
13704 struct {
13705 guint32 seqnum;
13706 } ABI;
13707 gpointer _gst_reserved[4 + 0];
13708 } abidata;
13709 };
13710 struct _GstMessageClass {
13711 GstMiniObjectClass mini_object_class;
13712 gpointer _gst_reserved[4];
13713 };
13714 GType gst_message_get_type (void);
13715 const gchar* gst_message_type_get_name (GstMessageType type);
13716 GQuark gst_message_type_to_quark (GstMessageType type);
13717 static inline GstMessage *
13718 gst_message_ref (GstMessage * msg)
13719 {
13720 return (GstMessage *) gst_mini_object_ref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((msg)), ((gst_mini_object_get_type())))))));
13721 }
13722 static inline void
13723 gst_message_unref (GstMessage * msg)
13724 {
13725 gst_mini_object_unref (((GstMiniObject*)(msg)));
13726 }
13727 static inline GstMessage *
13728 gst_message_copy (const GstMessage * msg)
13729 {
13730 return ((((GstMessage*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(msg))))), ((gst_message_get_type()))))));
13731 }
13732 guint32 gst_message_get_seqnum (GstMessage *message);
13733 void gst_message_set_seqnum (GstMessage *message, guint32 seqnum);
13734 GstMessage * gst_message_new_eos (GstObject * src);
13735 GstMessage * gst_message_new_error (GstObject * src, GError * error, const gchar * debug);
13736 void gst_message_parse_error (GstMessage *message, GError **gerror, gchar **debug);
13737 GstMessage * gst_message_new_warning (GstObject * src, GError * error, const gchar * debug);
13738 void gst_message_parse_warning (GstMessage *message, GError **gerror, gchar **debug);
13739 GstMessage * gst_message_new_info (GstObject * src, GError * error, const gchar * debug);
13740 void gst_message_parse_info (GstMessage *message, GError **gerror, gchar **debug);
13741 GstMessage * gst_message_new_tag (GstObject * src, GstTagList * tag_list);
13742 GstMessage * gst_message_new_tag_full (GstObject * src, GstPad *pad, GstTagList * tag_list);
13743 void gst_message_parse_tag (GstMessage *message, GstTagList **tag_list);
13744 void gst_message_parse_tag_full (GstMessage *message, GstPad **pad, GstTagList **tag_list);
13745 GstMessage * gst_message_new_buffering (GstObject * src, gint percent);
13746 void gst_message_parse_buffering (GstMessage *message, gint *percent);
13747 void gst_message_set_buffering_stats (GstMessage *message, GstBufferingMode mode,
13748 gint avg_in, gint avg_out,
13749 gint64 buffering_left);
13750 void gst_message_parse_buffering_stats (GstMessage *message, GstBufferingMode *mode,
13751 gint *avg_in, gint *avg_out,
13752 gint64 *buffering_left);
13753 GstMessage * gst_message_new_state_changed (GstObject * src, GstState oldstate,
13754 GstState newstate, GstState pending);
13755 void gst_message_parse_state_changed (GstMessage *message, GstState *oldstate,
13756 GstState *newstate, GstState *pending);
13757 GstMessage * gst_message_new_state_dirty (GstObject * src);
13758 GstMessage * gst_message_new_step_done (GstObject * src, GstFormat format, guint64 amount,
13759 gdouble rate, gboolean flush, gboolean intermediate,
13760 guint64 duration, gboolean eos);
13761 void gst_message_parse_step_done (GstMessage * message, GstFormat *format, guint64 *amount,
13762 gdouble *rate, gboolean *flush, gboolean *intermediate,
13763 guint64 *duration, gboolean *eos);
13764 GstMessage * gst_message_new_clock_provide (GstObject * src, GstClock *clock, gboolean ready);
13765 void gst_message_parse_clock_provide (GstMessage *message, GstClock **clock,
13766 gboolean *ready);
13767 GstMessage * gst_message_new_clock_lost (GstObject * src, GstClock *clock);
13768 void gst_message_parse_clock_lost (GstMessage *message, GstClock **clock);
13769 GstMessage * gst_message_new_new_clock (GstObject * src, GstClock *clock);
13770 void gst_message_parse_new_clock (GstMessage *message, GstClock **clock);
13771 GstMessage * gst_message_new_application (GstObject * src, GstStructure * structure);
13772 GstMessage * gst_message_new_element (GstObject * src, GstStructure * structure);
13773 GstMessage * gst_message_new_segment_start (GstObject * src, GstFormat format, gint64 position);
13774 void gst_message_parse_segment_start (GstMessage *message, GstFormat *format,
13775 gint64 *position);
13776 GstMessage * gst_message_new_segment_done (GstObject * src, GstFormat format, gint64 position);
13777 void gst_message_parse_segment_done (GstMessage *message, GstFormat *format,
13778 gint64 *position);
13779 GstMessage * gst_message_new_duration (GstObject * src, GstFormat format, gint64 duration);
13780 void gst_message_parse_duration (GstMessage *message, GstFormat *format,
13781 gint64 *duration);
13782 GstMessage * gst_message_new_latency (GstObject * src);
13783 GstMessage * gst_message_new_async_start (GstObject * src, gboolean new_base_time);
13784 void gst_message_parse_async_start (GstMessage *message, gboolean *new_base_time);
13785 GstMessage * gst_message_new_async_done (GstObject * src);
13786 GstMessage * gst_message_new_structure_change (GstObject * src, GstStructureChangeType type,
13787 GstElement *owner, gboolean busy);
13788 void gst_message_parse_structure_change (GstMessage *message, GstStructureChangeType *type,
13789 GstElement **owner, gboolean *busy);
13790 GstMessage * gst_message_new_stream_status (GstObject * src, GstStreamStatusType type,
13791 GstElement *owner);
13792 void gst_message_parse_stream_status (GstMessage *message, GstStreamStatusType *type,
13793 GstElement **owner);
13794 void gst_message_set_stream_status_object (GstMessage *message, const GValue *object);
13795 const GValue * gst_message_get_stream_status_object (GstMessage *message);
13796 GstMessage * gst_message_new_request_state (GstObject * src, GstState state);
13797 void gst_message_parse_request_state (GstMessage * message, GstState *state);
13798 GstMessage * gst_message_new_step_start (GstObject * src, gboolean active, GstFormat format,
13799 guint64 amount, gdouble rate, gboolean flush,
13800 gboolean intermediate);
13801 void gst_message_parse_step_start (GstMessage * message, gboolean *active, GstFormat *format,
13802 guint64 *amount, gdouble *rate, gboolean *flush,
13803 gboolean *intermediate);
13804 GstMessage * gst_message_new_custom (GstMessageType type,
13805 GstObject * src,
13806 GstStructure * structure);
13807 const GstStructure * gst_message_get_structure (GstMessage *message);
13808 typedef enum {
13809 GST_BUS_FLUSHING = (GST_OBJECT_FLAG_LAST << 0),
13810 GST_BUS_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 1)
13811 } GstBusFlags;
13812 typedef enum
13813 {
13814 GST_BUS_DROP = 0,
13815 GST_BUS_PASS = 1,
13816 GST_BUS_ASYNC = 2
13817 } GstBusSyncReply;
13818 typedef GstBusSyncReply (*GstBusSyncHandler) (GstBus * bus, GstMessage * message, gpointer data);
13819 typedef gboolean (*GstBusFunc) (GstBus * bus, GstMessage * message, gpointer data);
13820 struct _GstBus
13821 {
13822 GstObject object;
13823 GQueue *queue;
13824 GMutex *queue_lock;
13825 GstBusSyncHandler sync_handler;
13826 gpointer sync_handler_data;
13827 guint signal_watch_id;
13828 guint num_signal_watchers;
13829 GstBusPrivate *priv;
13830 gpointer _gst_reserved[4 - 1];
13831 };
13832 struct _GstBusClass
13833 {
13834 GstObjectClass parent_class;
13835 void (*message) (GstBus *bus, GstMessage *message);
13836 void (*sync_message) (GstBus *bus, GstMessage *message);
13837 gpointer _gst_reserved[4];
13838 };
13839 GType gst_bus_get_type (void);
13840 GstBus* gst_bus_new (void);
13841 gboolean gst_bus_post (GstBus * bus, GstMessage * message);
13842 gboolean gst_bus_have_pending (GstBus * bus);
13843 GstMessage * gst_bus_peek (GstBus * bus);
13844 GstMessage * gst_bus_pop (GstBus * bus);
13845 GstMessage * gst_bus_pop_filtered (GstBus * bus, GstMessageType types);
13846 GstMessage * gst_bus_timed_pop (GstBus * bus, GstClockTime timeout);
13847 GstMessage * gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, GstMessageType types);
13848 void gst_bus_set_flushing (GstBus * bus, gboolean flushing);
13849 void gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func,
13850 gpointer data);
13851 GSource * gst_bus_create_watch (GstBus * bus);
13852 guint gst_bus_add_watch_full (GstBus * bus,
13853 gint priority,
13854 GstBusFunc func,
13855 gpointer user_data,
13856 GDestroyNotify notify);
13857 guint gst_bus_add_watch (GstBus * bus,
13858 GstBusFunc func,
13859 gpointer user_data);
13860 GstMessage* gst_bus_poll (GstBus *bus, GstMessageType events,
13861 GstClockTimeDiff timeout);
13862 gboolean gst_bus_async_signal_func (GstBus *bus, GstMessage *message,
13863 gpointer data);
13864 GstBusSyncReply gst_bus_sync_signal_handler (GstBus *bus, GstMessage *message,
13865 gpointer data);
13866 void gst_bus_add_signal_watch (GstBus * bus);
13867 void gst_bus_add_signal_watch_full (GstBus * bus, gint priority);
13868 void gst_bus_remove_signal_watch (GstBus * bus);
13869 void gst_bus_enable_sync_message_emission (GstBus * bus);
13870 void gst_bus_disable_sync_message_emission (GstBus * bus);
13871 typedef struct _GstElementFactory GstElementFactory;
13872 typedef struct _GstElementFactoryClass GstElementFactoryClass;
13873 typedef enum
13874 {
13875 G_MODULE_BIND_LAZY = 1 << 0,
13876 G_MODULE_BIND_LOCAL = 1 << 1,
13877 G_MODULE_BIND_MASK = 0x03
13878 } GModuleFlags;
13879 typedef struct _GModule GModule;
13880 typedef const gchar* (*GModuleCheckInit) (GModule *module);
13881 typedef void (*GModuleUnload) (GModule *module);
13882 gboolean g_module_supported (void) __attribute__((__const__));
13883 GModule* g_module_open (const gchar *file_name,
13884 GModuleFlags flags);
13885 gboolean g_module_close (GModule *module);
13886 void g_module_make_resident (GModule *module);
13887 const gchar* g_module_error (void);
13888 gboolean g_module_symbol (GModule *module,
13889 const gchar *symbol_name,
13890 gpointer *symbol);
13891 const gchar* g_module_name (GModule *module);
13892 gchar* g_module_build_path (const gchar *directory,
13893 const gchar *module_name);
13894 typedef struct _GstPlugin GstPlugin;
13895 typedef struct _GstPluginClass GstPluginClass;
13896 typedef struct _GstPluginPrivate GstPluginPrivate;
13897 typedef struct _GstPluginDesc GstPluginDesc;
13898 GQuark gst_plugin_error_quark (void);
13899 typedef enum
13900 {
13901 GST_PLUGIN_ERROR_MODULE,
13902 GST_PLUGIN_ERROR_DEPENDENCIES,
13903 GST_PLUGIN_ERROR_NAME_MISMATCH
13904 } GstPluginError;
13905 typedef enum
13906 {
13907 GST_PLUGIN_FLAG_CACHED = (1<<0)
13908 } GstPluginFlags;
13909 typedef enum {
13910 GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0,
13911 GST_PLUGIN_DEPENDENCY_FLAG_RECURSE = (1 << 0),
13912 GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY = (1 << 1),
13913 GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX = (1 << 2)
13914 } GstPluginDependencyFlags;
13915 typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin);
13916 typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user_data);
13917 struct _GstPluginDesc {
13918 gint major_version;
13919 gint minor_version;
13920 const gchar *name;
13921 gchar *description;
13922 GstPluginInitFunc plugin_init;
13923 const gchar *version;
13924 const gchar *license;
13925 const gchar *source;
13926 const gchar *package;
13927 const gchar *origin;
13928 gpointer _gst_reserved[4];
13929 };
13930 struct _GstPlugin {
13931 GstObject object;
13932 GstPluginDesc desc;
13933 GstPluginDesc *orig_desc;
13934 unsigned int flags;
13935 gchar * filename;
13936 gchar * basename;
13937 GModule * module;
13938 off_t file_size;
13939 time_t file_mtime;
13940 gboolean registered;
13941 GstPluginPrivate *priv;
13942 gpointer _gst_reserved[4 - 1];
13943 };
13944 struct _GstPluginClass {
13945 GstObjectClass object_class;
13946 gpointer _gst_reserved[4];
13947 };
13948 typedef gboolean (*GstPluginFilter) (GstPlugin *plugin,
13949 gpointer user_data);
13950 GType gst_plugin_get_type (void);
13951 void _gst_plugin_register_static (GstPluginDesc *desc);
13952 gboolean gst_plugin_register_static (gint major_version,
13953 gint minor_version,
13954 const gchar *name,
13955 gchar *description,
13956 GstPluginInitFunc init_func,
13957 const gchar *version,
13958 const gchar *license,
13959 const gchar *source,
13960 const gchar *package,
13961 const gchar *origin);
13962 gboolean gst_plugin_register_static_full (gint major_version,
13963 gint minor_version,
13964 const gchar *name,
13965 gchar *description,
13966 GstPluginInitFullFunc init_full_func,
13967 const gchar *version,
13968 const gchar *license,
13969 const gchar *source,
13970 const gchar *package,
13971 const gchar *origin,
13972 gpointer user_data);
13973 const gchar* gst_plugin_get_name (GstPlugin *plugin);
13974 const gchar* gst_plugin_get_description (GstPlugin *plugin);
13975 const gchar* gst_plugin_get_filename (GstPlugin *plugin);
13976 const gchar* gst_plugin_get_version (GstPlugin *plugin);
13977 const gchar* gst_plugin_get_license (GstPlugin *plugin);
13978 const gchar* gst_plugin_get_source (GstPlugin *plugin);
13979 const gchar* gst_plugin_get_package (GstPlugin *plugin);
13980 const gchar* gst_plugin_get_origin (GstPlugin *plugin);
13981 const GstStructure* gst_plugin_get_cache_data (GstPlugin * plugin);
13982 void gst_plugin_set_cache_data (GstPlugin * plugin, GstStructure *cache_data);
13983 GModule * gst_plugin_get_module (GstPlugin *plugin);
13984 gboolean gst_plugin_is_loaded (GstPlugin *plugin);
13985 gboolean gst_plugin_name_filter (GstPlugin *plugin, const gchar *name);
13986 GstPlugin * gst_plugin_load_file (const gchar *filename, GError** error);
13987 GstPlugin * gst_plugin_load (GstPlugin *plugin);
13988 GstPlugin * gst_plugin_load_by_name (const gchar *name);
13989 void gst_plugin_add_dependency (GstPlugin * plugin,
13990 const gchar ** env_vars,
13991 const gchar ** paths,
13992 const gchar ** names,
13993 GstPluginDependencyFlags flags);
13994 void gst_plugin_add_dependency_simple (GstPlugin * plugin,
13995 const gchar * env_vars,
13996 const gchar * paths,
13997 const gchar * names,
13998 GstPluginDependencyFlags flags);
13999 void gst_plugin_list_free (GList *list);
14000 typedef struct _GstPluginFeature GstPluginFeature;
14001 typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
14002 typedef enum {
14003 GST_RANK_NONE = 0,
14004 GST_RANK_MARGINAL = 64,
14005 GST_RANK_SECONDARY = 128,
14006 GST_RANK_PRIMARY = 256
14007 } GstRank;
14008 struct _GstPluginFeature {
14009 GstObject object;
14010 gboolean loaded;
14011 gchar *name;
14012 guint rank;
14013 const gchar *plugin_name;
14014 gpointer _gst_reserved[4];
14015 };
14016 struct _GstPluginFeatureClass {
14017 GstObjectClass parent_class;
14018 gpointer _gst_reserved[4];
14019 };
14020 typedef struct {
14021 const gchar *name;
14022 GType type;
14023 } GstTypeNameData;
14024 typedef gboolean (*GstPluginFeatureFilter) (GstPluginFeature *feature,
14025 gpointer user_data);
14026 GType gst_plugin_feature_get_type (void);
14027 GstPluginFeature *
14028 gst_plugin_feature_load (GstPluginFeature *feature);
14029 gboolean gst_plugin_feature_type_name_filter (GstPluginFeature *feature,
14030 GstTypeNameData *data);
14031 void gst_plugin_feature_set_rank (GstPluginFeature *feature, guint rank);
14032 void gst_plugin_feature_set_name (GstPluginFeature *feature, const gchar *name);
14033 guint gst_plugin_feature_get_rank (GstPluginFeature *feature);
14034 const gchar *gst_plugin_feature_get_name (GstPluginFeature *feature);
14035 void gst_plugin_feature_list_free (GList *list);
14036 gboolean gst_plugin_feature_check_version (GstPluginFeature *feature,
14037 guint min_major,
14038 guint min_minor,
14039 guint min_micro);
14040 typedef struct _GstElementDetails GstElementDetails;
14041 struct _GstElementDetails
14042 {
14043 gchar *longname;
14044 gchar *klass;
14045 gchar *description;
14046 gchar *author;
14047 gpointer _gst_reserved[4];
14048 };
14049 struct _GstElementFactory {
14050 GstPluginFeature parent;
14051 GType type;
14052 GstElementDetails details;
14053 GList * staticpadtemplates;
14054 guint numpadtemplates;
14055 guint uri_type;
14056 gchar ** uri_protocols;
14057 GList * interfaces;
14058 gpointer _gst_reserved[4];
14059 };
14060 struct _GstElementFactoryClass {
14061 GstPluginFeatureClass parent_class;
14062 gpointer _gst_reserved[4];
14063 };
14064 GType gst_element_factory_get_type (void);
14065 GstElementFactory * gst_element_factory_find (const gchar *name);
14066 GType gst_element_factory_get_element_type (GstElementFactory *factory);
14067 const gchar * gst_element_factory_get_longname (GstElementFactory *factory);
14068 const gchar * gst_element_factory_get_klass (GstElementFactory *factory);
14069 const gchar * gst_element_factory_get_description (GstElementFactory *factory);
14070 const gchar * gst_element_factory_get_author (GstElementFactory *factory);
14071 guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
14072 const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
14073 gint gst_element_factory_get_uri_type (GstElementFactory *factory);
14074 gchar ** gst_element_factory_get_uri_protocols (GstElementFactory *factory);
14075 gboolean gst_element_factory_has_interface (GstElementFactory *factory,
14076 const gchar *interfacename);
14077 GstElement* gst_element_factory_create (GstElementFactory *factory,
14078 const gchar *name);
14079 GstElement* gst_element_factory_make (const gchar *factoryname, const gchar *name);
14080 void __gst_element_factory_add_static_pad_template (GstElementFactory *elementfactory,
14081 GstStaticPadTemplate *templ);
14082 void __gst_element_factory_add_interface (GstElementFactory *elementfactory,
14083 const gchar *interfacename);
14084 gboolean gst_element_register (GstPlugin *plugin, const gchar *name,
14085 guint rank, GType type);
14086 typedef struct _GstIndexEntry GstIndexEntry;
14087 typedef struct _GstIndexGroup GstIndexGroup;
14088 typedef struct _GstIndex GstIndex;
14089 typedef struct _GstIndexClass GstIndexClass;
14090 typedef enum {
14091 GST_INDEX_UNKNOWN,
14092 GST_INDEX_CERTAIN,
14093 GST_INDEX_FUZZY
14094 } GstIndexCertainty;
14095 typedef enum {
14096 GST_INDEX_ENTRY_ID,
14097 GST_INDEX_ENTRY_ASSOCIATION,
14098 GST_INDEX_ENTRY_OBJECT,
14099 GST_INDEX_ENTRY_FORMAT
14100 } GstIndexEntryType;
14101 typedef enum {
14102 GST_INDEX_LOOKUP_EXACT,
14103 GST_INDEX_LOOKUP_BEFORE,
14104 GST_INDEX_LOOKUP_AFTER
14105 } GstIndexLookupMethod;
14106 typedef struct _GstIndexAssociation GstIndexAssociation;
14107 struct _GstIndexAssociation {
14108 GstFormat format;
14109 gint64 value;
14110 };
14111 typedef enum {
14112 GST_ASSOCIATION_FLAG_NONE = 0,
14113 GST_ASSOCIATION_FLAG_KEY_UNIT = (1 << 0),
14114 GST_ASSOCIATION_FLAG_DELTA_UNIT = (1 << 1),
14115 GST_ASSOCIATION_FLAG_LAST = (1 << 8)
14116 } GstAssocFlags;
14117 struct _GstIndexEntry {
14118 GstIndexEntryType type;
14119 gint id;
14120 union {
14121 struct {
14122 gchar *description;
14123 } id;
14124 struct {
14125 gint nassocs;
14126 GstIndexAssociation
14127 *assocs;
14128 GstAssocFlags flags;
14129 } assoc;
14130 struct {
14131 gchar *key;
14132 GType type;
14133 gpointer object;
14134 } object;
14135 struct {
14136 GstFormat format;
14137 const gchar *key;
14138 } format;
14139 } data;
14140 };
14141 struct _GstIndexGroup {
14142 gint groupnum;
14143 GList *entries;
14144 GstIndexCertainty certainty;
14145 gint peergroup;
14146 };
14147 typedef gboolean (*GstIndexFilter) (GstIndex *index,
14148 GstIndexEntry *entry,
14149 gpointer user_data);
14150 typedef enum {
14151 GST_INDEX_RESOLVER_CUSTOM,
14152 GST_INDEX_RESOLVER_GTYPE,
14153 GST_INDEX_RESOLVER_PATH
14154 } GstIndexResolverMethod;
14155 typedef gboolean (*GstIndexResolver) (GstIndex *index,
14156 GstObject *writer,
14157 gchar **writer_string,
14158 gpointer user_data);
14159 typedef enum {
14160 GST_INDEX_WRITABLE = (GST_OBJECT_FLAG_LAST << 0),
14161 GST_INDEX_READABLE = (GST_OBJECT_FLAG_LAST << 1),
14162 GST_INDEX_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
14163 } GstIndexFlags;
14164 struct _GstIndex {
14165 GstObject object;
14166 GList *groups;
14167 GstIndexGroup *curgroup;
14168 gint maxgroup;
14169 GstIndexResolverMethod method;
14170 GstIndexResolver resolver;
14171 gpointer resolver_user_data;
14172 GstIndexFilter filter;
14173 gpointer filter_user_data;
14174 GDestroyNotify filter_user_data_destroy;
14175 GHashTable *writers;
14176 gint last_id;
14177 GDestroyNotify resolver_user_data_destroy;
14178 gpointer _gst_reserved[4 - 1];
14179 };
14180 struct _GstIndexClass {
14181 GstObjectClass parent_class;
14182 gboolean (*get_writer_id) (GstIndex *index, gint *writer_id, gchar *writer_string);
14183 void (*commit) (GstIndex *index, gint id);
14184 void (*add_entry) (GstIndex *index, GstIndexEntry *entry);
14185 GstIndexEntry* (*get_assoc_entry) (GstIndex *index, gint id,
14186 GstIndexLookupMethod method, GstAssocFlags flags,
14187 GstFormat format, gint64 value,
14188 GCompareDataFunc func,
14189 gpointer user_data);
14190 void (*entry_added) (GstIndex *index, GstIndexEntry *entry);
14191 gpointer _gst_reserved[4];
14192 };
14193 GType gst_index_get_type (void);
14194 GstIndex* gst_index_new (void);
14195 void gst_index_commit (GstIndex *index, gint id);
14196 gint gst_index_get_group (GstIndex *index);
14197 gint gst_index_new_group (GstIndex *index);
14198 gboolean gst_index_set_group (GstIndex *index, gint groupnum);
14199 void gst_index_set_certainty (GstIndex *index,
14200 GstIndexCertainty certainty);
14201 GstIndexCertainty gst_index_get_certainty (GstIndex *index);
14202 void gst_index_set_filter (GstIndex *index,
14203 GstIndexFilter filter, gpointer user_data);
14204 void gst_index_set_filter_full (GstIndex *index,
14205 GstIndexFilter filter, gpointer user_data,
14206 GDestroyNotify user_data_destroy);
14207 void gst_index_set_resolver (GstIndex *index,
14208 GstIndexResolver resolver, gpointer user_data);
14209 void gst_index_set_resolver_full (GstIndex *index, GstIndexResolver resolver,
14210 gpointer user_data,
14211 GDestroyNotify user_data_destroy);
14212 gboolean gst_index_get_writer_id (GstIndex *index, GstObject *writer, gint *id);
14213 GstIndexEntry* gst_index_add_format (GstIndex *index, gint id, GstFormat format);
14214 GstIndexEntry* gst_index_add_associationv (GstIndex * index, gint id, GstAssocFlags flags,
14215 gint n, const GstIndexAssociation * list);
14216 GstIndexEntry* gst_index_add_association (GstIndex *index, gint id, GstAssocFlags flags,
14217 GstFormat format, gint64 value, ...);
14218 GstIndexEntry* gst_index_add_object (GstIndex *index, gint id, gchar *key,
14219 GType type, gpointer object);
14220 GstIndexEntry* gst_index_add_id (GstIndex *index, gint id,
14221 gchar *description);
14222 GstIndexEntry* gst_index_get_assoc_entry (GstIndex *index, gint id,
14223 GstIndexLookupMethod method, GstAssocFlags flags,
14224 GstFormat format, gint64 value);
14225 GstIndexEntry* gst_index_get_assoc_entry_full (GstIndex *index, gint id,
14226 GstIndexLookupMethod method, GstAssocFlags flags,
14227 GstFormat format, gint64 value,
14228 GCompareDataFunc func,
14229 gpointer user_data);
14230 GType gst_index_entry_get_type (void);
14231 GstIndexEntry * gst_index_entry_copy (GstIndexEntry *entry);
14232 void gst_index_entry_free (GstIndexEntry *entry);
14233 gboolean gst_index_entry_assoc_map (GstIndexEntry *entry,
14234 GstFormat format, gint64 *value);
14235 typedef struct _GstIndexFactory GstIndexFactory;
14236 typedef struct _GstIndexFactoryClass GstIndexFactoryClass;
14237 struct _GstIndexFactory {
14238 GstPluginFeature feature;
14239 gchar *longdesc;
14240 GType type;
14241 gpointer _gst_reserved[4];
14242 };
14243 struct _GstIndexFactoryClass {
14244 GstPluginFeatureClass parent;
14245 gpointer _gst_reserved[4];
14246 };
14247 GType gst_index_factory_get_type (void);
14248 GstIndexFactory* gst_index_factory_new (const gchar *name,
14249 const gchar *longdesc, GType type);
14250 void gst_index_factory_destroy (GstIndexFactory *factory);
14251 GstIndexFactory* gst_index_factory_find (const gchar *name);
14252 GstIndex* gst_index_factory_create (GstIndexFactory *factory);
14253 GstIndex* gst_index_factory_make (const gchar *name);
14254 typedef enum {
14255 GST_STATE_CHANGE_FAILURE = 0,
14256 GST_STATE_CHANGE_SUCCESS = 1,
14257 GST_STATE_CHANGE_ASYNC = 2,
14258 GST_STATE_CHANGE_NO_PREROLL = 3
14259 } GstStateChangeReturn;
14260 typedef enum
14261 {
14262 GST_STATE_CHANGE_NULL_TO_READY = (GST_STATE_NULL<<3) | GST_STATE_READY,
14263 GST_STATE_CHANGE_READY_TO_PAUSED = (GST_STATE_READY<<3) | GST_STATE_PAUSED,
14264 GST_STATE_CHANGE_PAUSED_TO_PLAYING = (GST_STATE_PAUSED<<3) | GST_STATE_PLAYING,
14265 GST_STATE_CHANGE_PLAYING_TO_PAUSED = (GST_STATE_PLAYING<<3) | GST_STATE_PAUSED,
14266 GST_STATE_CHANGE_PAUSED_TO_READY = (GST_STATE_PAUSED<<3) | GST_STATE_READY,
14267 GST_STATE_CHANGE_READY_TO_NULL = (GST_STATE_READY<<3) | GST_STATE_NULL
14268 } GstStateChange;
14269 typedef enum
14270 {
14271 GST_ELEMENT_LOCKED_STATE = (GST_OBJECT_FLAG_LAST << 0),
14272 GST_ELEMENT_IS_SINK = (GST_OBJECT_FLAG_LAST << 1),
14273 GST_ELEMENT_UNPARENTING = (GST_OBJECT_FLAG_LAST << 2),
14274 GST_ELEMENT_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 16)
14275 } GstElementFlags;
14276 struct _GstElement
14277 {
14278 GstObject object;
14279 GStaticRecMutex *state_lock;
14280 GCond *state_cond;
14281 guint32 state_cookie;
14282 GstState current_state;
14283 GstState next_state;
14284 GstState pending_state;
14285 GstStateChangeReturn last_return;
14286 GstBus *bus;
14287 GstClock *clock;
14288 GstClockTimeDiff base_time;
14289 guint16 numpads;
14290 GList *pads;
14291 guint16 numsrcpads;
14292 GList *srcpads;
14293 guint16 numsinkpads;
14294 GList *sinkpads;
14295 guint32 pads_cookie;
14296 union {
14297 struct {
14298 GstState target_state;
14299 GstClockTime start_time;
14300 } ABI;
14301 gpointer _gst_reserved[4 + 0];
14302 } abidata;
14303 };
14304 struct _GstElementClass
14305 {
14306 GstObjectClass parent_class;
14307 GstElementDetails details;
14308 GstElementFactory *elementfactory;
14309 GList *padtemplates;
14310 gint numpadtemplates;
14311 guint32 pad_templ_cookie;
14312 void (*pad_added) (GstElement *element, GstPad *pad);
14313 void (*pad_removed) (GstElement *element, GstPad *pad);
14314 void (*no_more_pads) (GstElement *element);
14315 GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name);
14316 void (*release_pad) (GstElement *element, GstPad *pad);
14317 GstStateChangeReturn (*get_state) (GstElement * element, GstState * state,
14318 GstState * pending, GstClockTime timeout);
14319 GstStateChangeReturn (*set_state) (GstElement *element, GstState state);
14320 GstStateChangeReturn (*change_state) (GstElement *element, GstStateChange transition);
14321 void (*set_bus) (GstElement * element, GstBus * bus);
14322 GstClock* (*provide_clock) (GstElement *element);
14323 gboolean (*set_clock) (GstElement *element, GstClock *clock);
14324 GstIndex* (*get_index) (GstElement *element);
14325 void (*set_index) (GstElement *element, GstIndex *index);
14326 gboolean (*send_event) (GstElement *element, GstEvent *event);
14327 const GstQueryType* (*get_query_types) (GstElement *element);
14328 gboolean (*query) (GstElement *element, GstQuery *query);
14329 gpointer _gst_reserved[4];
14330 };
14331 void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ);
14332 GstPadTemplate* gst_element_class_get_pad_template (GstElementClass *element_class, const gchar *name);
14333 GList* gst_element_class_get_pad_template_list (GstElementClass *element_class);
14334 void gst_element_class_set_details (GstElementClass *klass, const GstElementDetails *details);
14335 void gst_element_class_set_details_simple (GstElementClass *klass,
14336 const gchar *longname,
14337 const gchar *classification,
14338 const gchar *description,
14339 const gchar *author);
14340 GType gst_element_get_type (void);
14341 gboolean gst_element_requires_clock (GstElement *element);
14342 gboolean gst_element_provides_clock (GstElement *element);
14343 GstClock* gst_element_provide_clock (GstElement *element);
14344 GstClock* gst_element_get_clock (GstElement *element);
14345 gboolean gst_element_set_clock (GstElement *element, GstClock *clock);
14346 void gst_element_set_base_time (GstElement *element, GstClockTime time);
14347 GstClockTime gst_element_get_base_time (GstElement *element);
14348 void gst_element_set_start_time (GstElement *element, GstClockTime time);
14349 GstClockTime gst_element_get_start_time (GstElement *element);
14350 gboolean gst_element_is_indexable (GstElement *element);
14351 void gst_element_set_index (GstElement *element, GstIndex *index);
14352 GstIndex* gst_element_get_index (GstElement *element);
14353 void gst_element_set_bus (GstElement * element, GstBus * bus);
14354 GstBus * gst_element_get_bus (GstElement * element);
14355 gboolean gst_element_add_pad (GstElement *element, GstPad *pad);
14356 gboolean gst_element_remove_pad (GstElement *element, GstPad *pad);
14357 void gst_element_no_more_pads (GstElement *element);
14358 GstPad* gst_element_get_pad (GstElement *element, const gchar *name);
14359 GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name);
14360 GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name);
14361 void gst_element_release_request_pad (GstElement *element, GstPad *pad);
14362 GstIterator * gst_element_iterate_pads (GstElement * element);
14363 GstIterator * gst_element_iterate_src_pads (GstElement * element);
14364 GstIterator * gst_element_iterate_sink_pads (GstElement * element);
14365 gboolean gst_element_send_event (GstElement *element, GstEvent *event);
14366 gboolean gst_element_seek (GstElement *element, gdouble rate,
14367 GstFormat format, GstSeekFlags flags,
14368 GstSeekType cur_type, gint64 cur,
14369 GstSeekType stop_type, gint64 stop);
14370 const GstQueryType*
14371 gst_element_get_query_types (GstElement *element);
14372 gboolean gst_element_query (GstElement *element, GstQuery *query);
14373 gboolean gst_element_post_message (GstElement * element, GstMessage * message);
14374 gchar * _gst_element_error_printf (const gchar *format, ...);
14375 void gst_element_message_full (GstElement * element, GstMessageType type,
14376 GQuark domain, gint code, gchar * text,
14377 gchar * debug, const gchar * file,
14378 const gchar * function, gint line);
14379 gboolean gst_element_is_locked_state (GstElement *element);
14380 gboolean gst_element_set_locked_state (GstElement *element, gboolean locked_state);
14381 gboolean gst_element_sync_state_with_parent (GstElement *element);
14382 GstStateChangeReturn gst_element_get_state (GstElement * element,
14383 GstState * state,
14384 GstState * pending,
14385 GstClockTime timeout);
14386 GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state);
14387 void gst_element_abort_state (GstElement * element);
14388 GstStateChangeReturn gst_element_change_state (GstElement * element,
14389 GstStateChange transition);
14390 GstStateChangeReturn gst_element_continue_state (GstElement * element,
14391 GstStateChangeReturn ret);
14392 void gst_element_lost_state (GstElement * element);
14393 void gst_element_lost_state_full (GstElement * element, gboolean new_base_time);
14394 GstElementFactory* gst_element_get_factory (GstElement *element);
14395 typedef enum {
14396 GST_BIN_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 5)
14397 } GstBinFlags;
14398 typedef struct _GstBin GstBin;
14399 typedef struct _GstBinClass GstBinClass;
14400 typedef struct _GstBinPrivate GstBinPrivate;
14401 struct _GstBin {
14402 GstElement element;
14403 gint numchildren;
14404 GList *children;
14405 guint32 children_cookie;
14406 GstBus *child_bus;
14407 GList *messages;
14408 gboolean polling;
14409 gboolean state_dirty;
14410 gboolean clock_dirty;
14411 GstClock *provided_clock;
14412 GstElement *clock_provider;
14413 GstBinPrivate *priv;
14414 gpointer _gst_reserved[4 - 1];
14415 };
14416 struct _GstBinClass {
14417 GstElementClass parent_class;
14418 GThreadPool *pool;
14419 void (*element_added) (GstBin *bin, GstElement *child);
14420 void (*element_removed) (GstBin *bin, GstElement *child);
14421 gboolean (*add_element) (GstBin *bin, GstElement *element);
14422 gboolean (*remove_element) (GstBin *bin, GstElement *element);
14423 void (*handle_message) (GstBin *bin, GstMessage *message);
14424 gboolean (*do_latency) (GstBin *bin);
14425 gpointer _gst_reserved[4 -1];
14426 };
14427 GType gst_bin_get_type (void);
14428 GstElement* gst_bin_new (const gchar *name);
14429 gboolean gst_bin_add (GstBin *bin, GstElement *element);
14430 gboolean gst_bin_remove (GstBin *bin, GstElement *element);
14431 GstElement* gst_bin_get_by_name (GstBin *bin, const gchar *name);
14432 GstElement* gst_bin_get_by_name_recurse_up (GstBin *bin, const gchar *name);
14433 GstElement* gst_bin_get_by_interface (GstBin *bin, GType iface);
14434 GstIterator* gst_bin_iterate_elements (GstBin *bin);
14435 GstIterator* gst_bin_iterate_sorted (GstBin *bin);
14436 GstIterator* gst_bin_iterate_recurse (GstBin *bin);
14437 GstIterator* gst_bin_iterate_sinks (GstBin *bin);
14438 GstIterator* gst_bin_iterate_sources (GstBin *bin);
14439 GstIterator* gst_bin_iterate_all_by_interface (GstBin *bin, GType iface);
14440 gboolean gst_bin_recalculate_latency (GstBin * bin);
14441 typedef struct _GstChildProxy GstChildProxy;
14442 typedef struct _GstChildProxyInterface GstChildProxyInterface;
14443 struct _GstChildProxyInterface
14444 {
14445 GTypeInterface parent;
14446 GstObject *(*get_child_by_index) (GstChildProxy * parent, guint index);
14447 guint (*get_children_count) (GstChildProxy * parent);
14448 void (*child_added) (GstChildProxy * parent, GstObject * child);
14449 void (*child_removed) (GstChildProxy * parent, GstObject * child);
14450 gpointer _gst_reserved[4];
14451 };
14452 GType gst_child_proxy_get_type (void);
14453 GstObject *gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name);
14454 GstObject *gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index);
14455 guint gst_child_proxy_get_children_count (GstChildProxy * parent);
14456 gboolean gst_child_proxy_lookup (GstObject *object, const gchar *name,
14457 GstObject **target, GParamSpec **pspec);
14458 void gst_child_proxy_get_property (GstObject * object, const gchar *name, GValue *value);
14459 void gst_child_proxy_get_valist (GstObject * object,
14460 const gchar * first_property_name, va_list var_args);
14461 void gst_child_proxy_get (GstObject * object, const gchar * first_property_name,
14462 ...) __attribute__((__sentinel__));
14463 void gst_child_proxy_set_property (GstObject * object, const gchar *name, const GValue *value);
14464 void gst_child_proxy_set_valist (GstObject* object,
14465 const gchar * first_property_name, va_list var_args);
14466 void gst_child_proxy_set (GstObject * object, const gchar * first_property_name,
14467 ...) __attribute__((__sentinel__));
14468 void gst_child_proxy_child_added (GstObject * object, GstObject * child);
14469 void gst_child_proxy_child_removed (GstObject * object, GstObject * child);
14470 typedef enum {
14471 GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE = (1<<0),
14472 GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS = (1<<1),
14473 GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS = (1<<2),
14474 GST_DEBUG_GRAPH_SHOW_STATES = (1<<3),
14475 GST_DEBUG_GRAPH_SHOW_ALL = ((1<<4)-1)
14476 } GstDebugGraphDetails;
14477 void _gst_debug_bin_to_dot_file (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
14478 void _gst_debug_bin_to_dot_file_with_ts (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
14479 typedef enum
14480 {
14481 GST_CORE_ERROR_FAILED = 1,
14482 GST_CORE_ERROR_TOO_LAZY,
14483 GST_CORE_ERROR_NOT_IMPLEMENTED,
14484 GST_CORE_ERROR_STATE_CHANGE,
14485 GST_CORE_ERROR_PAD,
14486 GST_CORE_ERROR_THREAD,
14487 GST_CORE_ERROR_NEGOTIATION,
14488 GST_CORE_ERROR_EVENT,
14489 GST_CORE_ERROR_SEEK,
14490 GST_CORE_ERROR_CAPS,
14491 GST_CORE_ERROR_TAG,
14492 GST_CORE_ERROR_MISSING_PLUGIN,
14493 GST_CORE_ERROR_CLOCK,
14494 GST_CORE_ERROR_DISABLED,
14495 GST_CORE_ERROR_NUM_ERRORS
14496 } GstCoreError;
14497 typedef enum
14498 {
14499 GST_LIBRARY_ERROR_FAILED = 1,
14500 GST_LIBRARY_ERROR_TOO_LAZY,
14501 GST_LIBRARY_ERROR_INIT,
14502 GST_LIBRARY_ERROR_SHUTDOWN,
14503 GST_LIBRARY_ERROR_SETTINGS,
14504 GST_LIBRARY_ERROR_ENCODE,
14505 GST_LIBRARY_ERROR_NUM_ERRORS
14506 } GstLibraryError;
14507 typedef enum
14508 {
14509 GST_RESOURCE_ERROR_FAILED = 1,
14510 GST_RESOURCE_ERROR_TOO_LAZY,
14511 GST_RESOURCE_ERROR_NOT_FOUND,
14512 GST_RESOURCE_ERROR_BUSY,
14513 GST_RESOURCE_ERROR_OPEN_READ,
14514 GST_RESOURCE_ERROR_OPEN_WRITE,
14515 GST_RESOURCE_ERROR_OPEN_READ_WRITE,
14516 GST_RESOURCE_ERROR_CLOSE,
14517 GST_RESOURCE_ERROR_READ,
14518 GST_RESOURCE_ERROR_WRITE,
14519 GST_RESOURCE_ERROR_SEEK,
14520 GST_RESOURCE_ERROR_SYNC,
14521 GST_RESOURCE_ERROR_SETTINGS,
14522 GST_RESOURCE_ERROR_NO_SPACE_LEFT,
14523 GST_RESOURCE_ERROR_NUM_ERRORS
14524 } GstResourceError;
14525 typedef enum
14526 {
14527 GST_STREAM_ERROR_FAILED = 1,
14528 GST_STREAM_ERROR_TOO_LAZY,
14529 GST_STREAM_ERROR_NOT_IMPLEMENTED,
14530 GST_STREAM_ERROR_TYPE_NOT_FOUND,
14531 GST_STREAM_ERROR_WRONG_TYPE,
14532 GST_STREAM_ERROR_CODEC_NOT_FOUND,
14533 GST_STREAM_ERROR_DECODE,
14534 GST_STREAM_ERROR_ENCODE,
14535 GST_STREAM_ERROR_DEMUX,
14536 GST_STREAM_ERROR_MUX,
14537 GST_STREAM_ERROR_FORMAT,
14538 GST_STREAM_ERROR_DECRYPT,
14539 GST_STREAM_ERROR_DECRYPT_NOKEY,
14540 GST_STREAM_ERROR_NUM_ERRORS
14541 } GstStreamError;
14542 GType gst_g_error_get_type (void);
14543 gchar *gst_error_get_message (GQuark domain, gint code);
14544 GQuark gst_stream_error_quark (void);
14545 GQuark gst_core_error_quark (void);
14546 GQuark gst_resource_error_quark (void);
14547 GQuark gst_library_error_quark (void);
14548 typedef struct _GstProxyPad GstProxyPad;
14549 typedef struct _GstProxyPadPrivate GstProxyPadPrivate;
14550 typedef struct _GstProxyPadClass GstProxyPadClass;
14551 struct _GstProxyPad
14552 {
14553 GstPad pad;
14554 GstProxyPadPrivate *priv;
14555 };
14556 struct _GstProxyPadClass
14557 {
14558 GstPadClass parent_class;
14559 gpointer _gst_reserved[1];
14560 };
14561 GType gst_proxy_pad_get_type (void);
14562 typedef struct _GstGhostPad GstGhostPad;
14563 typedef struct _GstGhostPadPrivate GstGhostPadPrivate;
14564 typedef struct _GstGhostPadClass GstGhostPadClass;
14565 struct _GstGhostPad
14566 {
14567 GstProxyPad pad;
14568 GstGhostPadPrivate *priv;
14569 };
14570 struct _GstGhostPadClass
14571 {
14572 GstProxyPadClass parent_class;
14573 gpointer _gst_reserved[4];
14574 };
14575 GType gst_ghost_pad_get_type (void);
14576 GstPad* gst_ghost_pad_new (const gchar *name, GstPad *target);
14577 GstPad* gst_ghost_pad_new_no_target (const gchar *name, GstPadDirection dir);
14578 GstPad* gst_ghost_pad_new_from_template (const gchar *name, GstPad * target, GstPadTemplate * templ);
14579 GstPad* gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate * templ);
14580 GstPad* gst_ghost_pad_get_target (GstGhostPad *gpad);
14581 gboolean gst_ghost_pad_set_target (GstGhostPad *gpad, GstPad *newtarget);
14582 gboolean gst_ghost_pad_construct (GstGhostPad *gpad);
14583 typedef enum {
14584 GST_LEVEL_NONE = 0,
14585 GST_LEVEL_ERROR,
14586 GST_LEVEL_WARNING,
14587 GST_LEVEL_INFO,
14588 GST_LEVEL_DEBUG,
14589 GST_LEVEL_LOG,
14590 GST_LEVEL_FIXME = 6,
14591 GST_LEVEL_MEMDUMP = 9,
14592 GST_LEVEL_COUNT
14593 } GstDebugLevel;
14594 typedef enum {
14595 GST_DEBUG_FG_BLACK = 0x0000,
14596 GST_DEBUG_FG_RED = 0x0001,
14597 GST_DEBUG_FG_GREEN = 0x0002,
14598 GST_DEBUG_FG_YELLOW = 0x0003,
14599 GST_DEBUG_FG_BLUE = 0x0004,
14600 GST_DEBUG_FG_MAGENTA = 0x0005,
14601 GST_DEBUG_FG_CYAN = 0x0006,
14602 GST_DEBUG_FG_WHITE = 0x0007,
14603 GST_DEBUG_BG_BLACK = 0x0000,
14604 GST_DEBUG_BG_RED = 0x0010,
14605 GST_DEBUG_BG_GREEN = 0x0020,
14606 GST_DEBUG_BG_YELLOW = 0x0030,
14607 GST_DEBUG_BG_BLUE = 0x0040,
14608 GST_DEBUG_BG_MAGENTA = 0x0050,
14609 GST_DEBUG_BG_CYAN = 0x0060,
14610 GST_DEBUG_BG_WHITE = 0x0070,
14611 GST_DEBUG_BOLD = 0x0100,
14612 GST_DEBUG_UNDERLINE = 0x0200
14613 } GstDebugColorFlags;
14614 typedef struct _GstDebugCategory GstDebugCategory;
14615 struct _GstDebugCategory {
14616 gint threshold;
14617 guint color;
14618 const gchar * name;
14619 const gchar * description;
14620 };
14621 typedef struct _GstDebugMessage GstDebugMessage;
14622 typedef void (*GstLogFunction) (GstDebugCategory * category,
14623 GstDebugLevel level,
14624 const gchar * file,
14625 const gchar * function,
14626 gint line,
14627 GObject * object,
14628 GstDebugMessage * message,
14629 gpointer data);
14630 void _gst_debug_init (void);
14631 void gst_debug_log (GstDebugCategory * category,
14632 GstDebugLevel level,
14633 const gchar * file,
14634 const gchar * function,
14635 gint line,
14636 GObject * object,
14637 const gchar * format,
14638 ...) __attribute__((__no_instrument_function__));
14639 void gst_debug_log_valist (GstDebugCategory * category,
14640 GstDebugLevel level,
14641 const gchar * file,
14642 const gchar * function,
14643 gint line,
14644 GObject * object,
14645 const gchar * format,
14646 va_list args) __attribute__((__no_instrument_function__));
14647 const gchar * gst_debug_message_get (GstDebugMessage * message);
14648 void gst_debug_log_default (GstDebugCategory * category,
14649 GstDebugLevel level,
14650 const gchar * file,
14651 const gchar * function,
14652 gint line,
14653 GObject * object,
14654 GstDebugMessage * message,
14655 gpointer unused) __attribute__((__no_instrument_function__));
14656 const gchar *
14657 gst_debug_level_get_name (GstDebugLevel level);
14658 void gst_debug_add_log_function (GstLogFunction func,
14659 gpointer data);
14660 guint gst_debug_remove_log_function (GstLogFunction func);
14661 guint gst_debug_remove_log_function_by_data (gpointer data);
14662 void gst_debug_set_active (gboolean active);
14663 gboolean gst_debug_is_active (void);
14664 void gst_debug_set_colored (gboolean colored);
14665 gboolean gst_debug_is_colored (void);
14666 void gst_debug_set_default_threshold (GstDebugLevel level);
14667 GstDebugLevel gst_debug_get_default_threshold (void);
14668 void gst_debug_set_threshold_for_name (const gchar * name,
14669 GstDebugLevel level);
14670 void gst_debug_unset_threshold_for_name (const gchar * name);
14671 GstDebugCategory *_gst_debug_category_new (const gchar * name,
14672 guint color,
14673 const gchar * description);
14674 void gst_debug_category_free (GstDebugCategory * category);
14675 void gst_debug_category_set_threshold (GstDebugCategory * category,
14676 GstDebugLevel level);
14677 void gst_debug_category_reset_threshold(GstDebugCategory * category);
14678 GstDebugLevel
14679 gst_debug_category_get_threshold (GstDebugCategory * category);
14680 const gchar *
14681 gst_debug_category_get_name (GstDebugCategory * category);
14682 guint gst_debug_category_get_color (GstDebugCategory * category);
14683 const gchar *
14684 gst_debug_category_get_description (GstDebugCategory * category);
14685 GSList *
14686 gst_debug_get_all_categories (void);
14687 GstDebugCategory *_gst_debug_get_category (const gchar *name);
14688 gchar * gst_debug_construct_term_color (guint colorinfo);
14689 gint gst_debug_construct_win_color (guint colorinfo);
14690 extern GstDebugCategory * GST_CAT_DEFAULT;
14691 extern gboolean __gst_debug_enabled;
14692 extern GstDebugLevel __gst_debug_min;
14693 void _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
14694 const gchar * func, gint line, GObject * obj, const gchar * msg,
14695 const guint8 * data, guint length);
14696 typedef void (* GstDebugFuncPtr) (void);
14697 void _gst_debug_register_funcptr (GstDebugFuncPtr func,
14698 const gchar * ptrname);
14699 const gchar *
14700 _gst_debug_nameof_funcptr (GstDebugFuncPtr func);
14701 void gst_debug_print_stack_trace (void);
14702 typedef struct _GstImplementsInterface GstImplementsInterface;
14703 typedef struct _GstImplementsInterfaceClass GstImplementsInterfaceClass;
14704 struct _GstImplementsInterfaceClass {
14705 GTypeInterface parent;
14706 gboolean (* supported) (GstImplementsInterface *iface,
14707 GType iface_type);
14708 gpointer _gst_reserved[4];
14709 };
14710 GType gst_implements_interface_get_type (void);
14711 gboolean gst_element_implements_interface (GstElement *element,
14712 GType iface_type);
14713 gpointer gst_implements_interface_cast (gpointer from,
14714 GType type);
14715 gboolean gst_implements_interface_check (gpointer from,
14716 GType type);
14717 extern void gst_marshal_VOID__BOXED_OBJECT (GClosure *closure,
14718 GValue *return_value,
14719 guint n_param_values,
14720 const GValue *param_values,
14721 gpointer invocation_hint,
14722 gpointer marshal_data);
14723 extern void gst_marshal_VOID__POINTER_OBJECT (GClosure *closure,
14724 GValue *return_value,
14725 guint n_param_values,
14726 const GValue *param_values,
14727 gpointer invocation_hint,
14728 gpointer marshal_data);
14729 extern void gst_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
14730 GValue *return_value,
14731 guint n_param_values,
14732 const GValue *param_values,
14733 gpointer invocation_hint,
14734 gpointer marshal_data);
14735 extern void gst_marshal_VOID__OBJECT_PARAM (GClosure *closure,
14736 GValue *return_value,
14737 guint n_param_values,
14738 const GValue *param_values,
14739 gpointer invocation_hint,
14740 gpointer marshal_data);
14741 extern void gst_marshal_VOID__OBJECT_POINTER (GClosure *closure,
14742 GValue *return_value,
14743 guint n_param_values,
14744 const GValue *param_values,
14745 gpointer invocation_hint,
14746 gpointer marshal_data);
14747 extern void gst_marshal_VOID__OBJECT_BOXED (GClosure *closure,
14748 GValue *return_value,
14749 guint n_param_values,
14750 const GValue *param_values,
14751 gpointer invocation_hint,
14752 gpointer marshal_data);
14753 extern void gst_marshal_VOID__OBJECT_BOXED_STRING (GClosure *closure,
14754 GValue *return_value,
14755 guint n_param_values,
14756 const GValue *param_values,
14757 gpointer invocation_hint,
14758 gpointer marshal_data);
14759 extern void gst_marshal_VOID__OBJECT_OBJECT_STRING (GClosure *closure,
14760 GValue *return_value,
14761 guint n_param_values,
14762 const GValue *param_values,
14763 gpointer invocation_hint,
14764 gpointer marshal_data);
14765 extern void gst_marshal_VOID__OBJECT_STRING (GClosure *closure,
14766 GValue *return_value,
14767 guint n_param_values,
14768 const GValue *param_values,
14769 gpointer invocation_hint,
14770 gpointer marshal_data);
14771 extern void gst_marshal_VOID__INT_INT (GClosure *closure,
14772 GValue *return_value,
14773 guint n_param_values,
14774 const GValue *param_values,
14775 gpointer invocation_hint,
14776 gpointer marshal_data);
14777 extern void gst_marshal_VOID__INT64 (GClosure *closure,
14778 GValue *return_value,
14779 guint n_param_values,
14780 const GValue *param_values,
14781 gpointer invocation_hint,
14782 gpointer marshal_data);
14783 extern void gst_marshal_VOID__UINT_BOXED (GClosure *closure,
14784 GValue *return_value,
14785 guint n_param_values,
14786 const GValue *param_values,
14787 gpointer invocation_hint,
14788 gpointer marshal_data);
14789 extern void gst_marshal_BOOLEAN__VOID (GClosure *closure,
14790 GValue *return_value,
14791 guint n_param_values,
14792 const GValue *param_values,
14793 gpointer invocation_hint,
14794 gpointer marshal_data);
14795 extern void gst_marshal_BOOLEAN__POINTER (GClosure *closure,
14796 GValue *return_value,
14797 guint n_param_values,
14798 const GValue *param_values,
14799 gpointer invocation_hint,
14800 gpointer marshal_data);
14801 extern void gst_marshal_POINTER__POINTER (GClosure *closure,
14802 GValue *return_value,
14803 guint n_param_values,
14804 const GValue *param_values,
14805 gpointer invocation_hint,
14806 gpointer marshal_data);
14807 extern void gst_marshal_BOXED__BOXED (GClosure *closure,
14808 GValue *return_value,
14809 guint n_param_values,
14810 const GValue *param_values,
14811 gpointer invocation_hint,
14812 gpointer marshal_data);
14813 typedef gint (* GstValueCompareFunc) (const GValue *value1,
14814 const GValue *value2);
14815 typedef gchar * (* GstValueSerializeFunc) (const GValue *value1);
14816 typedef gboolean (* GstValueDeserializeFunc) (GValue *dest,
14817 const gchar *s);
14818 typedef gboolean (* GstValueUnionFunc) (GValue *dest,
14819 const GValue *value1,
14820 const GValue *value2);
14821 typedef gboolean (* GstValueIntersectFunc) (GValue *dest,
14822 const GValue *value1,
14823 const GValue *value2);
14824 typedef gboolean (* GstValueSubtractFunc) (GValue *dest,
14825 const GValue *minuend,
14826 const GValue *subtrahend);
14827 typedef struct _GstValueTable GstValueTable;
14828 struct _GstValueTable {
14829 GType type;
14830 GstValueCompareFunc compare;
14831 GstValueSerializeFunc serialize;
14832 GstValueDeserializeFunc deserialize;
14833 void *_gst_reserved [4];
14834 };
14835 GType gst_int_range_get_type (void);
14836 GType gst_double_range_get_type (void);
14837 GType gst_fraction_range_get_type (void);
14838 GType gst_fourcc_get_type (void);
14839 GType gst_fraction_get_type (void);
14840 GType gst_value_list_get_type (void);
14841 GType gst_value_array_get_type (void);
14842 GType gst_date_get_type (void);
14843 void gst_value_register (const GstValueTable *table);
14844 void gst_value_init_and_copy (GValue *dest,
14845 const GValue *src);
14846 gchar * gst_value_serialize (const GValue *value);
14847 gboolean gst_value_deserialize (GValue *dest,
14848 const gchar *src);
14849 void gst_value_list_append_value (GValue *value,
14850 const GValue *append_value);
14851 void gst_value_list_prepend_value (GValue *value,
14852 const GValue *prepend_value);
14853 void gst_value_list_concat (GValue *dest,
14854 const GValue *value1,
14855 const GValue *value2);
14856 guint gst_value_list_get_size (const GValue *value);
14857 const GValue *
14858 gst_value_list_get_value (const GValue *value,
14859 guint index);
14860 void gst_value_array_append_value (GValue *value,
14861 const GValue *append_value);
14862 void gst_value_array_prepend_value (GValue *value,
14863 const GValue *prepend_value);
14864 guint gst_value_array_get_size (const GValue *value);
14865 const GValue *
14866 gst_value_array_get_value (const GValue *value,
14867 guint index);
14868 void gst_value_set_fourcc (GValue *value,
14869 guint32 fourcc);
14870 guint32 gst_value_get_fourcc (const GValue *value);
14871 void gst_value_set_int_range (GValue *value,
14872 gint start,
14873 gint end);
14874 gint gst_value_get_int_range_min (const GValue *value);
14875 gint gst_value_get_int_range_max (const GValue *value);
14876 void gst_value_set_double_range (GValue *value,
14877 gdouble start,
14878 gdouble end);
14879 gdouble gst_value_get_double_range_min (const GValue *value);
14880 gdouble gst_value_get_double_range_max (const GValue *value);
14881 const GstCaps *
14882 gst_value_get_caps (const GValue *value);
14883 void gst_value_set_caps (GValue *value,
14884 const GstCaps *caps);
14885 const GstStructure *
14886 gst_value_get_structure (const GValue *value);
14887 void gst_value_set_structure (GValue *value,
14888 const GstStructure *structure);
14889 void gst_value_set_fraction (GValue *value,
14890 gint numerator,
14891 gint denominator);
14892 gint gst_value_get_fraction_numerator (const GValue *value);
14893 gint gst_value_get_fraction_denominator(const GValue *value);
14894 gboolean gst_value_fraction_multiply (GValue *product,
14895 const GValue *factor1,
14896 const GValue *factor2);
14897 gboolean gst_value_fraction_subtract (GValue * dest,
14898 const GValue * minuend,
14899 const GValue * subtrahend);
14900 void gst_value_set_fraction_range (GValue *value,
14901 const GValue *start,
14902 const GValue *end);
14903 void gst_value_set_fraction_range_full (GValue *value,
14904 gint numerator_start,
14905 gint denominator_start,
14906 gint numerator_end,
14907 gint denominator_end);
14908 const GValue *gst_value_get_fraction_range_min (const GValue *value);
14909 const GValue *gst_value_get_fraction_range_max (const GValue *value);
14910 const GDate *
14911 gst_value_get_date (const GValue *value);
14912 void gst_value_set_date (GValue *value,
14913 const GDate *date);
14914 gint gst_value_compare (const GValue *value1,
14915 const GValue *value2);
14916 gboolean gst_value_can_compare (const GValue *value1,
14917 const GValue *value2);
14918 gboolean gst_value_union (GValue *dest,
14919 const GValue *value1,
14920 const GValue *value2);
14921 gboolean gst_value_can_union (const GValue *value1,
14922 const GValue *value2);
14923 void gst_value_register_union_func (GType type1,
14924 GType type2,
14925 GstValueUnionFunc func);
14926 gboolean gst_value_intersect (GValue *dest,
14927 const GValue *value1,
14928 const GValue *value2);
14929 gboolean gst_value_can_intersect (const GValue *value1,
14930 const GValue *value2);
14931 void gst_value_register_intersect_func (GType type1,
14932 GType type2,
14933 GstValueIntersectFunc func);
14934 gboolean gst_value_subtract (GValue *dest,
14935 const GValue *minuend,
14936 const GValue *subtrahend);
14937 gboolean gst_value_can_subtract (const GValue *minuend,
14938 const GValue *subtrahend);
14939 void gst_value_register_subtract_func (GType minuend_type,
14940 GType subtrahend_type,
14941 GstValueSubtractFunc func);
14942 gboolean gst_value_is_fixed (const GValue *value);
14943 GType gst_param_spec_fraction_get_type (void);
14944 typedef struct _GstParamSpecFraction GstParamSpecFraction;
14945 struct _GstParamSpecFraction {
14946 GParamSpec parent_instance;
14947 gint min_num, min_den;
14948 gint max_num, max_den;
14949 gint def_num, def_den;
14950 };
14951 GParamSpec * gst_param_spec_fraction (const gchar * name,
14952 const gchar * nick,
14953 const gchar * blurb,
14954 gint min_num, gint min_denom,
14955 gint max_num, gint max_denom,
14956 gint default_num, gint default_denom,
14957 GParamFlags flags);
14958 typedef struct _GstPipeline GstPipeline;
14959 typedef struct _GstPipelineClass GstPipelineClass;
14960 typedef struct _GstPipelinePrivate GstPipelinePrivate;
14961 typedef enum {
14962 GST_PIPELINE_FLAG_FIXED_CLOCK = (GST_BIN_FLAG_LAST << 0),
14963 GST_PIPELINE_FLAG_LAST = (GST_BIN_FLAG_LAST << 4)
14964 } GstPipelineFlags;
14965 struct _GstPipeline {
14966 GstBin bin;
14967 GstClock *fixed_clock;
14968 GstClockTime stream_time;
14969 GstClockTime delay;
14970 GstPipelinePrivate *priv;
14971 gpointer _gst_reserved[4 -1];
14972 };
14973 struct _GstPipelineClass {
14974 GstBinClass parent_class;
14975 gpointer _gst_reserved[4];
14976 };
14977 GType gst_pipeline_get_type (void);
14978 GstElement* gst_pipeline_new (const gchar *name);
14979 GstBus* gst_pipeline_get_bus (GstPipeline *pipeline);
14980 void gst_pipeline_set_new_stream_time (GstPipeline *pipeline, GstClockTime time);
14981 GstClockTime gst_pipeline_get_last_stream_time (GstPipeline *pipeline);
14982 void gst_pipeline_use_clock (GstPipeline *pipeline, GstClock *clock);
14983 gboolean gst_pipeline_set_clock (GstPipeline *pipeline, GstClock *clock);
14984 GstClock* gst_pipeline_get_clock (GstPipeline *pipeline);
14985 void gst_pipeline_auto_clock (GstPipeline *pipeline);
14986 void gst_pipeline_set_delay (GstPipeline *pipeline, GstClockTime delay);
14987 GstClockTime gst_pipeline_get_delay (GstPipeline *pipeline);
14988 void gst_pipeline_set_auto_flush_bus (GstPipeline *pipeline, gboolean auto_flush);
14989 gboolean gst_pipeline_get_auto_flush_bus (GstPipeline *pipeline);
14990 typedef struct _GstPoll GstPoll;
14991 typedef struct {
14992 int fd;
14993 gint idx;
14994 } GstPollFD;
14995 GstPoll* gst_poll_new (gboolean controllable);
14996 GstPoll* gst_poll_new_timer (void);
14997 void gst_poll_free (GstPoll *set);
14998 void gst_poll_fd_init (GstPollFD *fd);
14999 gboolean gst_poll_add_fd (GstPoll *set, GstPollFD *fd);
15000 gboolean gst_poll_remove_fd (GstPoll *set, GstPollFD *fd);
15001 gboolean gst_poll_fd_ctl_write (GstPoll *set, GstPollFD *fd, gboolean active);
15002 gboolean gst_poll_fd_ctl_read (GstPoll *set, GstPollFD *fd, gboolean active);
15003 void gst_poll_fd_ignored (GstPoll *set, GstPollFD *fd);
15004 gboolean gst_poll_fd_has_closed (const GstPoll *set, GstPollFD *fd);
15005 gboolean gst_poll_fd_has_error (const GstPoll *set, GstPollFD *fd);
15006 gboolean gst_poll_fd_can_read (const GstPoll *set, GstPollFD *fd);
15007 gboolean gst_poll_fd_can_write (const GstPoll *set, GstPollFD *fd);
15008 gint gst_poll_wait (GstPoll *set, GstClockTime timeout);
15009 gboolean gst_poll_set_controllable (GstPoll *set, gboolean controllable);
15010 void gst_poll_restart (GstPoll *set);
15011 void gst_poll_set_flushing (GstPoll *set, gboolean flushing);
15012 gboolean gst_poll_write_control (GstPoll *set);
15013 gboolean gst_poll_read_control (GstPoll *set);
15014 typedef struct _GstPreset GstPreset;
15015 typedef struct _GstPresetInterface GstPresetInterface;
15016 struct _GstPresetInterface
15017 {
15018 GTypeInterface parent;
15019 gchar** (*get_preset_names) (GstPreset *preset);
15020 gchar** (*get_property_names) (GstPreset *preset);
15021 gboolean (*load_preset) (GstPreset *preset, const gchar *name);
15022 gboolean (*save_preset) (GstPreset *preset, const gchar *name);
15023 gboolean (*rename_preset) (GstPreset *preset, const gchar *old_name,
15024 const gchar *new_name);
15025 gboolean (*delete_preset) (GstPreset *preset, const gchar *name);
15026 gboolean (*set_meta) (GstPreset *preset, const gchar *name,
15027 const gchar *tag, const gchar *value);
15028 gboolean (*get_meta) (GstPreset *preset, const gchar *name,
15029 const gchar *tag, gchar **value);
15030 gpointer _gst_reserved[4];
15031 };
15032 GType gst_preset_get_type(void);
15033 gchar** gst_preset_get_preset_names (GstPreset *preset);
15034 gchar** gst_preset_get_property_names (GstPreset *preset);
15035 gboolean gst_preset_load_preset (GstPreset *preset, const gchar *name);
15036 gboolean gst_preset_save_preset (GstPreset *preset, const gchar *name);
15037 gboolean gst_preset_rename_preset (GstPreset *preset, const gchar *old_name,
15038 const gchar *new_name);
15039 gboolean gst_preset_delete_preset (GstPreset *preset, const gchar *name);
15040 gboolean gst_preset_set_meta (GstPreset *preset, const gchar *name,
15041 const gchar *tag, const gchar *value);
15042 gboolean gst_preset_get_meta (GstPreset *preset, const gchar *name,
15043 const gchar *tag, gchar **value);
15044 typedef struct _GstRegistry GstRegistry;
15045 typedef struct _GstRegistryClass GstRegistryClass;
15046 struct _GstRegistry {
15047 GstObject object;
15048 GList *plugins;
15049 GList *features;
15050 GList *paths;
15051 int cache_file;
15052 GHashTable *feature_hash;
15053 gpointer _gst_reserved[4 -1];
15054 };
15055 struct _GstRegistryClass {
15056 GstObjectClass parent_class;
15057 void (*plugin_added) (GstRegistry *registry, GstPlugin *plugin);
15058 void (*feature_added) (GstRegistry *registry, GstPluginFeature *feature);
15059 gpointer _gst_reserved[4];
15060 };
15061 GType gst_registry_get_type (void);
15062 GstRegistry * gst_registry_get_default (void);
15063 gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path);
15064 void gst_registry_add_path (GstRegistry * registry, const gchar * path);
15065 GList* gst_registry_get_path_list (GstRegistry *registry);
15066 gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin);
15067 void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin);
15068 gboolean gst_registry_add_feature (GstRegistry * registry, GstPluginFeature * feature);
15069 void gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature);
15070 GList* gst_registry_get_plugin_list (GstRegistry *registry);
15071 GList* gst_registry_plugin_filter (GstRegistry *registry,
15072 GstPluginFilter filter,
15073 gboolean first,
15074 gpointer user_data);
15075 GList* gst_registry_feature_filter (GstRegistry *registry,
15076 GstPluginFeatureFilter filter,
15077 gboolean first,
15078 gpointer user_data);
15079 GList * gst_registry_get_feature_list (GstRegistry *registry,
15080 GType type);
15081 GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name);
15082 GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name);
15083 GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type);
15084 GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename);
15085 GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name);
15086 gboolean gst_registry_xml_read_cache (GstRegistry * registry, const char *location);
15087 gboolean gst_registry_xml_write_cache (GstRegistry * registry, const char *location);
15088 gboolean gst_default_registry_check_feature_version (const gchar *feature_name,
15089 guint min_major,
15090 guint min_minor,
15091 guint min_micro);
15092 typedef struct _GstSegment GstSegment;
15093 struct _GstSegment {
15094 gdouble rate;
15095 gdouble abs_rate;
15096 GstFormat format;
15097 GstSeekFlags flags;
15098 gint64 start;
15099 gint64 stop;
15100 gint64 time;
15101 gint64 accum;
15102 gint64 last_stop;
15103 gint64 duration;
15104 gdouble applied_rate;
15105 guint8 _gst_reserved[(sizeof (gpointer) * 4) - sizeof (gdouble)];
15106 };
15107 GType gst_segment_get_type (void);
15108 GstSegment * gst_segment_new (void);
15109 GstSegment * gst_segment_copy (GstSegment *segment);
15110 void gst_segment_free (GstSegment *segment);
15111 void gst_segment_init (GstSegment *segment, GstFormat format);
15112 void gst_segment_set_duration (GstSegment *segment, GstFormat format, gint64 duration);
15113 void gst_segment_set_last_stop (GstSegment *segment, GstFormat format, gint64 position);
15114 void gst_segment_set_seek (GstSegment *segment, gdouble rate,
15115 GstFormat format, GstSeekFlags flags,
15116 GstSeekType start_type, gint64 start,
15117 GstSeekType stop_type, gint64 stop,
15118 gboolean *update);
15119 void gst_segment_set_newsegment (GstSegment *segment, gboolean update, gdouble rate,
15120 GstFormat format, gint64 start, gint64 stop, gint64 time);
15121 void gst_segment_set_newsegment_full (GstSegment *segment, gboolean update, gdouble rate,
15122 gdouble applied_rate, GstFormat format, gint64 start,
15123 gint64 stop, gint64 time);
15124 gint64 gst_segment_to_stream_time (GstSegment *segment, GstFormat format, gint64 position);
15125 gint64 gst_segment_to_running_time (GstSegment *segment, GstFormat format, gint64 position);
15126 gint64 gst_segment_to_position (GstSegment *segment, GstFormat format, gint64 running_time);
15127 gboolean gst_segment_clip (GstSegment *segment, GstFormat format, gint64 start,
15128 gint64 stop, gint64 *clip_start, gint64 *clip_stop);
15129 gboolean gst_segment_set_running_time (GstSegment *segment, GstFormat format, gint64 running_time);
15130 typedef struct _GstSystemClock GstSystemClock;
15131 typedef struct _GstSystemClockClass GstSystemClockClass;
15132 typedef struct _GstSystemClockPrivate GstSystemClockPrivate;
15133 typedef enum {
15134 GST_CLOCK_TYPE_REALTIME = 0,
15135 GST_CLOCK_TYPE_MONOTONIC = 1
15136 } GstClockType;
15137 struct _GstSystemClock {
15138 GstClock clock;
15139 GThread *thread;
15140 gboolean stopping;
15141 GstSystemClockPrivate *priv;
15142 gpointer _gst_reserved[4 - 1];
15143 };
15144 struct _GstSystemClockClass {
15145 GstClockClass parent_class;
15146 gpointer _gst_reserved[4];
15147 };
15148 GType gst_system_clock_get_type (void);
15149 GstClock* gst_system_clock_obtain (void);
15150 typedef struct _GstTagSetter GstTagSetter;
15151 typedef struct _GstTagSetterIFace GstTagSetterIFace;
15152 struct _GstTagSetterIFace
15153 {
15154 GTypeInterface g_iface;
15155 };
15156 GType gst_tag_setter_get_type (void);
15157 void gst_tag_setter_reset_tags (GstTagSetter * setter);
15158 void gst_tag_setter_merge_tags (GstTagSetter * setter,
15159 const GstTagList * list,
15160 GstTagMergeMode mode);
15161 void gst_tag_setter_add_tags (GstTagSetter * setter,
15162 GstTagMergeMode mode,
15163 const gchar * tag,
15164 ...) __attribute__((__sentinel__));
15165 void gst_tag_setter_add_tag_values (GstTagSetter * setter,
15166 GstTagMergeMode mode,
15167 const gchar * tag,
15168 ...) __attribute__((__sentinel__));
15169 void gst_tag_setter_add_tag_valist (GstTagSetter * setter,
15170 GstTagMergeMode mode,
15171 const gchar * tag,
15172 va_list var_args);
15173 void gst_tag_setter_add_tag_valist_values(GstTagSetter * setter,
15174 GstTagMergeMode mode,
15175 const gchar * tag,
15176 va_list var_args);
15177 void gst_tag_setter_add_tag_value (GstTagSetter * setter,
15178 GstTagMergeMode mode,
15179 const gchar * tag,
15180 const GValue * value);
15181 const GstTagList *
15182 gst_tag_setter_get_tag_list (GstTagSetter * setter);
15183 void gst_tag_setter_set_tag_merge_mode (GstTagSetter * setter,
15184 GstTagMergeMode mode);
15185 GstTagMergeMode gst_tag_setter_get_tag_merge_mode (GstTagSetter * setter);
15186 typedef enum {
15187 GST_ALLOC_TRACE_LIVE = (1 << 0),
15188 GST_ALLOC_TRACE_MEM_LIVE = (1 << 1)
15189 } GstAllocTraceFlags;
15190 typedef struct _GstAllocTrace GstAllocTrace;
15191 struct _GstAllocTrace {
15192 gchar *name;
15193 gint flags;
15194 gint live;
15195 GSList *mem_live;
15196 };
15197 typedef struct _GstTrace GstTrace;
15198 typedef struct _GstTraceEntry GstTraceEntry;
15199 struct _GstTrace {
15200 gchar *filename;
15201 int fd;
15202 GstTraceEntry *buf;
15203 gint bufsize;
15204 gint bufoffset;
15205 };
15206 struct _GstTraceEntry {
15207 gint64 timestamp;
15208 guint32 sequence;
15209 guint32 data;
15210 gchar message[112];
15211 };
15212 GstTrace* gst_trace_new (gchar *filename, gint size);
15213 void gst_trace_destroy (GstTrace *trace);
15214 void gst_trace_flush (GstTrace *trace);
15215 void gst_trace_text_flush (GstTrace *trace);
15216 void gst_trace_set_default (GstTrace *trace);
15217 void _gst_trace_add_entry (GstTrace *trace, guint32 seq,
15218 guint32 data, gchar *msg);
15219 void gst_trace_read_tsc (gint64 *dst);
15220 extern GStaticMutex _gst_trace_mutex;
15221 gboolean gst_alloc_trace_available (void);
15222 const GList* gst_alloc_trace_list (void);
15223 GstAllocTrace* _gst_alloc_trace_register (const gchar *name);
15224 int gst_alloc_trace_live_all (void);
15225 void gst_alloc_trace_print_all (void);
15226 void gst_alloc_trace_print_live (void);
15227 void gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags);
15228 GstAllocTrace* gst_alloc_trace_get (const gchar *name);
15229 void gst_alloc_trace_print (const GstAllocTrace *trace);
15230 void gst_alloc_trace_set_flags (GstAllocTrace *trace, GstAllocTraceFlags flags);
15231 extern gint _gst_trace_on;
15232 typedef struct _GstTypeFind GstTypeFind;
15233 typedef void (* GstTypeFindFunction) (GstTypeFind *find, gpointer data);
15234 typedef enum {
15235 GST_TYPE_FIND_MINIMUM = 1,
15236 GST_TYPE_FIND_POSSIBLE = 50,
15237 GST_TYPE_FIND_LIKELY = 80,
15238 GST_TYPE_FIND_NEARLY_CERTAIN = 99,
15239 GST_TYPE_FIND_MAXIMUM = 100
15240 } GstTypeFindProbability;
15241 struct _GstTypeFind {
15242 guint8 * (* peek) (gpointer data,
15243 gint64 offset,
15244 guint size);
15245 void (* suggest) (gpointer data,
15246 guint probability,
15247 const GstCaps * caps);
15248 gpointer data;
15249 guint64 (* get_length) (gpointer data);
15250 gpointer _gst_reserved[4];
15251 };
15252 GType gst_type_find_get_type (void);
15253 guint8 * gst_type_find_peek (GstTypeFind * find,
15254 gint64 offset,
15255 guint size);
15256 void gst_type_find_suggest (GstTypeFind * find,
15257 guint probability,
15258 const GstCaps * caps);
15259 void gst_type_find_suggest_simple (GstTypeFind * find,
15260 guint probability,
15261 const char * media_type,
15262 const char * fieldname, ...);
15263 guint64 gst_type_find_get_length (GstTypeFind * find);
15264 gboolean gst_type_find_register (GstPlugin * plugin,
15265 const gchar * name,
15266 guint rank,
15267 GstTypeFindFunction func,
15268 gchar ** extensions,
15269 const GstCaps * possible_caps,
15270 gpointer data,
15271 GDestroyNotify data_notify);
15272 typedef struct _GstTypeFindFactory GstTypeFindFactory;
15273 typedef struct _GstTypeFindFactoryClass GstTypeFindFactoryClass;
15274 struct _GstTypeFindFactory {
15275 GstPluginFeature feature;
15276 GstTypeFindFunction function;
15277 gchar ** extensions;
15278 GstCaps * caps;
15279 gpointer user_data;
15280 GDestroyNotify user_data_notify;
15281 gpointer _gst_reserved[4];
15282 };
15283 struct _GstTypeFindFactoryClass {
15284 GstPluginFeatureClass parent;
15285 gpointer _gst_reserved[4];
15286 };
15287 GType gst_type_find_factory_get_type (void);
15288 GList * gst_type_find_factory_get_list (void);
15289 gchar ** gst_type_find_factory_get_extensions (GstTypeFindFactory *factory);
15290 GstCaps * gst_type_find_factory_get_caps (GstTypeFindFactory *factory);
15291 void gst_type_find_factory_call_function (GstTypeFindFactory *factory,
15292 GstTypeFind *find);
15293 typedef enum {
15294 GST_URI_UNKNOWN,
15295 GST_URI_SINK,
15296 GST_URI_SRC
15297 } GstURIType;
15298 typedef struct _GstURIHandler GstURIHandler;
15299 typedef struct _GstURIHandlerInterface GstURIHandlerInterface;
15300 struct _GstURIHandlerInterface {
15301 GTypeInterface parent;
15302 void (* new_uri) (GstURIHandler * handler,
15303 const gchar * uri);
15304 GstURIType (* get_type) (void);
15305 gchar ** (* get_protocols) (void);
15306 const gchar *(* get_uri) (GstURIHandler * handler);
15307 gboolean (* set_uri) (GstURIHandler * handler,
15308 const gchar * uri);
15309 GstURIType (* get_type_full) (GType type);
15310 gchar ** (* get_protocols_full) (GType type);
15311 gpointer _gst_reserved[4 - 2];
15312 };
15313 gboolean gst_uri_protocol_is_valid (const gchar * protocol);
15314 gboolean gst_uri_protocol_is_supported (const GstURIType type,
15315 const gchar *protocol);
15316 gboolean gst_uri_is_valid (const gchar * uri);
15317 gchar * gst_uri_get_protocol (const gchar * uri);
15318 gboolean gst_uri_has_protocol (const gchar * uri,
15319 const gchar * protocol);
15320 gchar * gst_uri_get_location (const gchar * uri);
15321 gchar * gst_uri_construct (const gchar * protocol,
15322 const gchar * location);
15323 GstElement * gst_element_make_from_uri (const GstURIType type,
15324 const gchar * uri,
15325 const gchar * elementname);
15326 GType gst_uri_handler_get_type (void);
15327 guint gst_uri_handler_get_uri_type (GstURIHandler * handler);
15328 gchar ** gst_uri_handler_get_protocols (GstURIHandler * handler);
15329 const
15330 gchar * gst_uri_handler_get_uri (GstURIHandler * handler);
15331 gboolean gst_uri_handler_set_uri (GstURIHandler * handler,
15332 const gchar * uri);
15333 void gst_uri_handler_new_uri (GstURIHandler * handler,
15334 const gchar * uri);
15335 GQuark gst_parse_error_quark (void);
15336 typedef enum
15337 {
15338 GST_PARSE_ERROR_SYNTAX,
15339 GST_PARSE_ERROR_NO_SUCH_ELEMENT,
15340 GST_PARSE_ERROR_NO_SUCH_PROPERTY,
15341 GST_PARSE_ERROR_LINK,
15342 GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY,
15343 GST_PARSE_ERROR_EMPTY_BIN,
15344 GST_PARSE_ERROR_EMPTY
15345 } GstParseError;
15346 typedef enum
15347 {
15348 GST_PARSE_FLAG_NONE = 0,
15349 GST_PARSE_FLAG_FATAL_ERRORS = (1 << 0)
15350 } GstParseFlags;
15351 typedef struct _GstParseContext GstParseContext;
15352 GstParseContext * gst_parse_context_new (void);
15353 gchar ** gst_parse_context_get_missing_elements (GstParseContext * context);
15354 void gst_parse_context_free (GstParseContext * context);
15355 GstElement * gst_parse_launch (const gchar * pipeline_description,
15356 GError ** error);
15357 GstElement * gst_parse_launchv (const gchar ** argv,
15358 GError ** error);
15359 GstElement * gst_parse_launch_full (const gchar * pipeline_description,
15360 GstParseContext * context,
15361 GstParseFlags flags,
15362 GError ** error);
15363 GstElement * gst_parse_launchv_full (const gchar ** argv,
15364 GstParseContext * context,
15365 GstParseFlags flags,
15366 GError ** error);
15367 void gst_util_set_value_from_string (GValue *value, const gchar *value_str);
15368 void gst_util_set_object_arg (GObject *object, const gchar *name, const gchar *value);
15369 void gst_util_dump_mem (const guchar *mem, guint size);
15370 guint64 gst_util_gdouble_to_guint64 (gdouble value) __attribute__((__pure__));
15371 gdouble gst_util_guint64_to_gdouble (guint64 value) __attribute__((__pure__));
15372 guint64 gst_util_uint64_scale (guint64 val, guint64 num, guint64 denom) __attribute__((__pure__));
15373 guint64 gst_util_uint64_scale_int (guint64 val, gint num, gint denom) __attribute__((__pure__));
15374 guint32 gst_util_seqnum_next (void);
15375 gint32 gst_util_seqnum_compare (guint32 s1, guint32 s2);
15376 void gst_print_pad_caps (GString *buf, gint indent, GstPad *pad);
15377 void gst_print_element_args (GString *buf, gint indent, GstElement *element);
15378 GType gst_type_register_static_full (GType parent_type,
15379 const gchar *type_name,
15380 guint class_size,
15381 GBaseInitFunc base_init,
15382 GBaseFinalizeFunc base_finalize,
15383 GClassInitFunc class_init,
15384 GClassFinalizeFunc class_finalize,
15385 gconstpointer class_data,
15386 guint instance_size,
15387 guint16 n_preallocs,
15388 GInstanceInitFunc instance_init,
15389 const GTypeValueTable *value_table,
15390 GTypeFlags flags);
15391 inline static gfloat
15392 GFLOAT_SWAP_LE_BE(gfloat in)
15393 {
15394 union
15395 {
15396 guint32 i;
15397 gfloat f;
15398 } u;
15399 u.f = in;
15400 u.i = (((guint32) ( (((guint32) (u.i) & (guint32) 0x000000ffU) << 24) | (((guint32) (u.i) & (guint32) 0x0000ff00U) << 8) | (((guint32) (u.i) & (guint32) 0x00ff0000U) >> 8) | (((guint32) (u.i) & (guint32) 0xff000000U) >> 24))));
15401 return u.f;
15402 }
15403 inline static gdouble
15404 GDOUBLE_SWAP_LE_BE(gdouble in)
15405 {
15406 union
15407 {
15408 guint64 i;
15409 gdouble d;
15410 } u;
15411 u.d = in;
15412 u.i = (((guint64) ( (((guint64) (u.i) & (guint64) (0x00000000000000ffUL)) << 56) | (((guint64) (u.i) & (guint64) (0x000000000000ff00UL)) << 40) | (((guint64) (u.i) & (guint64) (0x0000000000ff0000UL)) << 24) | (((guint64) (u.i) & (guint64) (0x00000000ff000000UL)) << 8) | (((guint64) (u.i) & (guint64) (0x000000ff00000000UL)) >> 8) | (((guint64) (u.i) & (guint64) (0x0000ff0000000000UL)) >> 24) | (((guint64) (u.i) & (guint64) (0x00ff000000000000UL)) >> 40) | (((guint64) (u.i) & (guint64) (0xff00000000000000UL)) >> 56))));
15413 return u.d;
15414 }
15415 inline static gfloat
15416 GST_READ_FLOAT_LE(const guint8 *data)
15417 {
15418 union
15419 {
15420 guint32 i;
15421 gfloat f;
15422 } u;
15423 u.i = ((((guint32) (((guint8 *) (data))[3])) << (24)) | (((guint32) (((guint8 *) (data))[2])) << (16)) | (((guint32) (((guint8 *) (data))[1])) << (8)) | (((guint32) (((guint8 *) (data))[0])) << (0)));
15424 return u.f;
15425 }
15426 inline static gfloat
15427 GST_READ_FLOAT_BE(const guint8 *data)
15428 {
15429 union
15430 {
15431 guint32 i;
15432 gfloat f;
15433 } u;
15434 u.i = ((((guint32) (((guint8 *) (data))[0])) << (24)) | (((guint32) (((guint8 *) (data))[1])) << (16)) | (((guint32) (((guint8 *) (data))[2])) << (8)) | (((guint32) (((guint8 *) (data))[3])) << (0)));
15435 return u.f;
15436 }
15437 inline static gdouble
15438 GST_READ_DOUBLE_LE(const guint8 *data)
15439 {
15440 union
15441 {
15442 guint64 i;
15443 gdouble d;
15444 } u;
15445 u.i = ((((guint64) (((guint8 *) (data))[7])) << (56)) | (((guint64) (((guint8 *) (data))[6])) << (48)) | (((guint64) (((guint8 *) (data))[5])) << (40)) | (((guint64) (((guint8 *) (data))[4])) << (32)) | (((guint64) (((guint8 *) (data))[3])) << (24)) | (((guint64) (((guint8 *) (data))[2])) << (16)) | (((guint64) (((guint8 *) (data))[1])) << (8)) | (((guint64) (((guint8 *) (data))[0])) << (0)));
15446 return u.d;
15447 }
15448 inline static gdouble
15449 GST_READ_DOUBLE_BE(const guint8 *data)
15450 {
15451 union
15452 {
15453 guint64 i;
15454 gdouble d;
15455 } u;
15456 u.i = ((((guint64) (((guint8 *) (data))[0])) << (56)) | (((guint64) (((guint8 *) (data))[1])) << (48)) | (((guint64) (((guint8 *) (data))[2])) << (40)) | (((guint64) (((guint8 *) (data))[3])) << (32)) | (((guint64) (((guint8 *) (data))[4])) << (24)) | (((guint64) (((guint8 *) (data))[5])) << (16)) | (((guint64) (((guint8 *) (data))[6])) << (8)) | (((guint64) (((guint8 *) (data))[7])) << (0)));
15457 return u.d;
15458 }
15459 inline static void
15460 GST_WRITE_FLOAT_LE(guint8 *data, gfloat num)
15461 {
15462 union
15463 {
15464 guint32 i;
15465 gfloat f;
15466 } u;
15467 u.f = num;
15468 do { (((guint8 *) (data))[0] = (((guint32) (u.i)) >> (0)) & 0xff); (((guint8 *) (data))[1] = (((guint32) (u.i)) >> (8)) & 0xff); (((guint8 *) (data))[2] = (((guint32) (u.i)) >> (16)) & 0xff); (((guint8 *) (data))[3] = (((guint32) (u.i)) >> (24)) & 0xff); } while (0);
15469 }
15470 inline static void
15471 GST_WRITE_FLOAT_BE(guint8 *data, gfloat num)
15472 {
15473 union
15474 {
15475 guint32 i;
15476 gfloat f;
15477 } u;
15478 u.f = num;
15479 do { (((guint8 *) (data))[0] = (((guint32) (u.i)) >> (24)) & 0xff); (((guint8 *) (data))[1] = (((guint32) (u.i)) >> (16)) & 0xff); (((guint8 *) (data))[2] = (((guint32) (u.i)) >> (8)) & 0xff); (((guint8 *) (data))[3] = (((guint32) (u.i)) >> (0)) & 0xff); } while (0);
15480 }
15481 inline static void
15482 GST_WRITE_DOUBLE_LE(guint8 *data, gdouble num)
15483 {
15484 union
15485 {
15486 guint64 i;
15487 gdouble d;
15488 } u;
15489 u.d = num;
15490 do { (((guint8 *) (data))[0] = (((guint64) (u.i)) >> (0)) & 0xff); (((guint8 *) (data))[1] = (((guint64) (u.i)) >> (8)) & 0xff); (((guint8 *) (data))[2] = (((guint64) (u.i)) >> (16)) & 0xff); (((guint8 *) (data))[3] = (((guint64) (u.i)) >> (24)) & 0xff); (((guint8 *) (data))[4] = (((guint64) (u.i)) >> (32)) & 0xff); (((guint8 *) (data))[5] = (((guint64) (u.i)) >> (40)) & 0xff); (((guint8 *) (data))[6] = (((guint64) (u.i)) >> (48)) & 0xff); (((guint8 *) (data))[7] = (((guint64) (u.i)) >> (56)) & 0xff); } while (0);
15491 }
15492 inline static void
15493 GST_WRITE_DOUBLE_BE(guint8 *data, gdouble num)
15494 {
15495 union
15496 {
15497 guint64 i;
15498 gdouble d;
15499 } u;
15500 u.d = num;
15501 do { (((guint8 *) (data))[0] = (((guint64) (u.i)) >> (56)) & 0xff); (((guint8 *) (data))[1] = (((guint64) (u.i)) >> (48)) & 0xff); (((guint8 *) (data))[2] = (((guint64) (u.i)) >> (40)) & 0xff); (((guint8 *) (data))[3] = (((guint64) (u.i)) >> (32)) & 0xff); (((guint8 *) (data))[4] = (((guint64) (u.i)) >> (24)) & 0xff); (((guint8 *) (data))[5] = (((guint64) (u.i)) >> (16)) & 0xff); (((guint8 *) (data))[6] = (((guint64) (u.i)) >> (8)) & 0xff); (((guint8 *) (data))[7] = (((guint64) (u.i)) >> (0)) & 0xff); } while (0);
15502 }
15503 void gst_object_default_error (GstObject * source,
15504 GError * error, gchar * debug);
15505 void gst_element_create_all_pads (GstElement *element);
15506 GstPad* gst_element_get_compatible_pad (GstElement *element, GstPad *pad,
15507 const GstCaps *caps);
15508 GstPadTemplate* gst_element_get_compatible_pad_template (GstElement *element, GstPadTemplate *compattempl);
15509 const gchar* gst_element_state_get_name (GstState state);
15510 const gchar * gst_element_state_change_return_get_name (GstStateChangeReturn state_ret);
15511 gboolean gst_element_link (GstElement *src, GstElement *dest);
15512 gboolean gst_element_link_many (GstElement *element_1,
15513 GstElement *element_2, ...) __attribute__((__sentinel__));
15514 gboolean gst_element_link_filtered (GstElement * src,
15515 GstElement * dest,
15516 GstCaps *filter);
15517 void gst_element_unlink (GstElement *src, GstElement *dest);
15518 void gst_element_unlink_many (GstElement *element_1,
15519 GstElement *element_2, ...) __attribute__((__sentinel__));
15520 gboolean gst_element_link_pads (GstElement *src, const gchar *srcpadname,
15521 GstElement *dest, const gchar *destpadname);
15522 void gst_element_unlink_pads (GstElement *src, const gchar *srcpadname,
15523 GstElement *dest, const gchar *destpadname);
15524 gboolean gst_element_link_pads_filtered (GstElement * src, const gchar * srcpadname,
15525 GstElement * dest, const gchar * destpadname,
15526 GstCaps *filter);
15527 gboolean gst_element_seek_simple (GstElement *element,
15528 GstFormat format,
15529 GstSeekFlags seek_flags,
15530 gint64 seek_pos);
15531 gboolean gst_element_factory_can_src_caps(GstElementFactory *factory, const GstCaps *caps);
15532 gboolean gst_element_factory_can_sink_caps(GstElementFactory *factory, const GstCaps *caps);
15533 gboolean gst_element_query_position (GstElement *element, GstFormat *format,
15534 gint64 *cur);
15535 gboolean gst_element_query_duration (GstElement *element, GstFormat *format,
15536 gint64 *duration);
15537 gboolean gst_element_query_convert (GstElement *element, GstFormat src_format, gint64 src_val,
15538 GstFormat *dest_format, gint64 *dest_val);
15539 void gst_element_class_install_std_props (GstElementClass * klass,
15540 const gchar * first_name, ...) __attribute__((__sentinel__));
15541 void gst_pad_use_fixed_caps (GstPad *pad);
15542 GstCaps* gst_pad_get_fixed_caps_func (GstPad *pad);
15543 GstCaps* gst_pad_proxy_getcaps (GstPad * pad);
15544 gboolean gst_pad_proxy_setcaps (GstPad * pad, GstCaps * caps);
15545 GstElement* gst_pad_get_parent_element (GstPad *pad);
15546 gboolean gst_pad_query_position (GstPad *pad, GstFormat *format,
15547 gint64 *cur);
15548 gboolean gst_pad_query_duration (GstPad *pad, GstFormat *format,
15549 gint64 *duration);
15550 gboolean gst_pad_query_convert (GstPad *pad, GstFormat src_format, gint64 src_val,
15551 GstFormat *dest_format, gint64 *dest_val);
15552 gboolean gst_pad_query_peer_position (GstPad *pad, GstFormat *format,
15553 gint64 *cur);
15554 gboolean gst_pad_query_peer_duration (GstPad *pad, GstFormat *format,
15555 gint64 *duration);
15556 gboolean gst_pad_query_peer_convert (GstPad *pad, GstFormat src_format, gint64 src_val,
15557 GstFormat *dest_format, gint64 *dest_val);
15558 void gst_bin_add_many (GstBin *bin, GstElement *element_1, ...) __attribute__((__sentinel__));
15559 void gst_bin_remove_many (GstBin *bin, GstElement *element_1, ...) __attribute__((__sentinel__));
15560 GstPad * gst_bin_find_unlinked_pad (GstBin *bin, GstPadDirection direction);
15561 GstPad * gst_bin_find_unconnected_pad (GstBin *bin, GstPadDirection direction);
15562 GstBuffer * gst_buffer_merge (GstBuffer * buf1, GstBuffer * buf2);
15563 GstBuffer * gst_buffer_join (GstBuffer * buf1, GstBuffer * buf2);
15564 void gst_buffer_stamp (GstBuffer * dest, const GstBuffer * src);
15565 void gst_atomic_int_set (gint * atomic_int, gint value);
15566 gulong gst_pad_add_data_probe (GstPad * pad,
15567 GCallback handler,
15568 gpointer data);
15569 gulong gst_pad_add_data_probe_full (GstPad * pad,
15570 GCallback handler,
15571 gpointer data,
15572 GDestroyNotify notify);
15573 void gst_pad_remove_data_probe (GstPad * pad, guint handler_id);
15574 gulong gst_pad_add_event_probe (GstPad * pad,
15575 GCallback handler,
15576 gpointer data);
15577 gulong gst_pad_add_event_probe_full (GstPad * pad,
15578 GCallback handler,
15579 gpointer data,
15580 GDestroyNotify notify);
15581 void gst_pad_remove_event_probe (GstPad * pad, guint handler_id);
15582 gulong gst_pad_add_buffer_probe (GstPad * pad,
15583 GCallback handler,
15584 gpointer data);
15585 gulong gst_pad_add_buffer_probe_full (GstPad * pad,
15586 GCallback handler,
15587 gpointer data,
15588 GDestroyNotify notify);
15589 void gst_pad_remove_buffer_probe (GstPad * pad, guint handler_id);
15590 void gst_element_found_tags_for_pad (GstElement * element,
15591 GstPad * pad,
15592 GstTagList * list);
15593 void gst_element_found_tags (GstElement * element,
15594 GstTagList * list);
15595 GstElement * gst_parse_bin_from_description (const gchar * bin_description,
15596 gboolean ghost_unlinked_pads,
15597 GError ** err);
15598 GstElement * gst_parse_bin_from_description_full (const gchar * bin_description,
15599 gboolean ghost_unlinked_pads,
15600 GstParseContext * context,
15601 GstParseFlags flags,
15602 GError ** err);
15603 GstClockTime gst_util_get_timestamp (void);
15604 typedef enum {
15605 GST_SEARCH_MODE_EXACT = 0,
15606 GST_SEARCH_MODE_BEFORE,
15607 GST_SEARCH_MODE_AFTER
15608 } GstSearchMode;
15609 gpointer gst_util_array_binary_search (gpointer array, guint num_elements,
15610 gsize element_size, GCompareDataFunc search_func,
15611 GstSearchMode mode, gconstpointer search_data,
15612 gpointer user_data);
15613 typedef struct _GstXML GstXML;
15614 typedef struct _GstXMLClass GstXMLClass;
15615 struct _GstXML {
15616 GstObject object;
15617 GList *topelements;
15618 xmlNsPtr ns;
15619 gpointer _gst_reserved[4];
15620 };
15621 struct _GstXMLClass {
15622 GstObjectClass parent_class;
15623 void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self);
15624 void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self);
15625 gpointer _gst_reserved[4];
15626 };
15627 GType gst_xml_get_type (void);
15628 xmlDocPtr gst_xml_write (GstElement *element);
15629 gint gst_xml_write_file (GstElement *element, FILE *out);
15630 GstXML* gst_xml_new (void);
15631 gboolean gst_xml_parse_doc (GstXML *xml, xmlDocPtr doc, const guchar *root);
15632 gboolean gst_xml_parse_file (GstXML *xml, const guchar *fname, const guchar *root);
15633 gboolean gst_xml_parse_memory (GstXML *xml, guchar *buffer, guint size, const gchar *root);
15634 GstElement* gst_xml_get_element (GstXML *xml, const guchar *name);
15635 GList* gst_xml_get_topelements (GstXML *xml);
15636 GstElement* gst_xml_make_element (xmlNodePtr cur, GstObject *parent);
15637 void gst_init (int *argc, char **argv[]);
15638 gboolean gst_init_check (int *argc, char **argv[],
15639 GError ** err);
15640 GOptionGroup * gst_init_get_option_group (void);
15641 void gst_deinit (void);
15642 void gst_version (guint *major, guint *minor,
15643 guint *micro, guint *nano);
15644 gchar * gst_version_string (void);
15645 gboolean gst_segtrap_is_enabled (void);
15646 void gst_segtrap_set_enabled (gboolean enabled);
15647 gboolean gst_registry_fork_is_enabled (void);
15648 void gst_registry_fork_set_enabled (gboolean enabled);
15649 gboolean gst_update_registry (void);
15650 extern obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
15651 extern obj_t BGl_mainz00zzrecettez00(obj_t);
15652 static obj_t BGl_cnstzd2initzd2zzrecettez00();
15653 extern obj_t BGl_exitz00zz__errorz00(obj_t);
15654 extern obj_t BGl_modulezd2initializa7ationz75zzrecettez00(long, char *);
15655 extern obj_t BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(long, char *);
15656 extern obj_t BGl_modulezd2initializa7ationz75zz__pth_threadz00(long, char *);
15657 extern obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
15658 extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
15659 static obj_t BGl_toplevelzd2initzd2zzrecettez00();
15660 extern obj_t BGl_modulezd2initzd2errorz00zz__errorz00(char *, char *);
15661 extern obj_t bigloo_main(obj_t);
15662 static obj_t BGl_methodzd2initzd2zzrecettez00();
15663 static obj_t BGl__mainz00zzrecettez00(obj_t, obj_t);
15664 extern obj_t BGl_bigloozd2typezd2errorz00zz__errorz00(obj_t, obj_t, obj_t);
15665 static obj_t BGl_requirezd2initializa7ationz75zzrecettez00 = ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));
15666 static obj_t BGl_genericzd2initzd2zzrecettez00();
15667 extern obj_t BGl_bigloozd2initializa7edz12z67zz__paramz00();
15668 extern long BGl_bitzd2andzd2zz__bitz00(long, long);
15669 extern obj_t bgl_open_input_string(obj_t, int);
15670 extern bool_t BGl_zd3fxzd3zz__r4_numbers_6_5_fixnumz00(long, long);
15671 static obj_t BGl_libraryzd2moduleszd2initz00zzrecettez00();
15672 static obj_t __cnst[ 1 ] ;
15673 static struct { double _; int length; char string[11 +1]; } BgL_bgl_string2166za700za7za7r2189za7 = { 0.0, 11, "recette.scm" }; static obj_t BGl_string2166z00zzrecettez00 = ((obj_t)((long)&(BgL_bgl_string2166za700za7za7r2189za7.length) + 7));
15674 static struct { double _; int length; char string[4 +1]; } BgL_bgl_string2167za700za7za7r2190za7 = { 0.0, 4, "pair" }; static obj_t BGl_string2167z00zzrecettez00 = ((obj_t)((long)&(BgL_bgl_string2167za700za7za7r2190za7.length) + 7));
15675 static struct { double _; int length; char string[6 +1]; } BgL_bgl_string2168za700za7za7r2191za7 = { 0.0, 6, "_main " }; static obj_t BGl_string2168z00zzrecettez00 = ((obj_t)((long)&(BgL_bgl_string2168za700za7za7r2191za7.length) + 7));
15676 static struct { double _; header_t header; obj_t (*entry)(); obj_t (*va_entry)(); obj_t attr; int arity; } const BgL_bgl__mainza700za7za7recett2192za7 = { 0.0, ((header_t)((long)(((long)(3) << (3 + 16)) | 0<<3))), (obj_t (*)())BGl__mainz00zzrecettez00, (obj_t (*)())0L, ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2))), 1 }; const obj_t BGl_mainzd2envzd2zzrecettez00 = ((obj_t)(&(BgL_bgl__mainza700za7za7recett2192za7.header)));
15677 extern void bglpth_setup(int, char *[], char *[]);
15678 long bigloo_abort(long n) { return n; }
15679 int main(int argc, char *argv[], char *env[])
15680 {
15681 bglpth_setup(argc, argv, env);
15682 return _bigloo_main(argc, argv, env, &bigloo_main);}
15683 obj_t BGl_modulezd2initializa7ationz75zzrecettez00(long BgL_checksumz00_509, char * BgL_fromz00_510)
15684 { ;
15685 {
15686 {
15687 bool_t BgL_test2176z00_511;
15688 {
15689 obj_t BgL_arg2181z00_513;
15690 BgL_arg2181z00_513 =
15691 (obj_t)((long)(((long)(BGl_bitzd2andzd2zz__bitz00(BgL_checksumz00_509, ((long)67281932))) << 3) | 1));
15692 BgL_test2176z00_511 =
15693 BGl_zd3fxzd3zz__r4_numbers_6_5_fixnumz00(
15694 (long)(long)((long)((long)(BgL_arg2181z00_513) >> 3)), BgL_checksumz00_509); }
15695 if(BgL_test2176z00_511)
15696 {
15697 if(
15698 (BGl_requirezd2initializa7ationz75zzrecettez00 != ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2)))))
15699 {
15700 BGl_requirezd2initializa7ationz75zzrecettez00 =
15701 (((bool_t)0) ? ((obj_t)(obj_t)((long)(((long)(2) << 3) | 2))) : ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2))));
15702 BGl_libraryzd2moduleszd2initz00zzrecettez00();
15703 BGl_cnstzd2initzd2zzrecettez00();
15704 BGl_genericzd2initzd2zzrecettez00();
15705 BGl_methodzd2initzd2zzrecettez00();
15706 BGl_toplevelzd2initzd2zzrecettez00();
15707 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} else
15708 {
15709 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} } else
15710 {
15711 char * BgL_sz00_512;
15712 BgL_sz00_512 =
15713 "recette";
15714 return
15715 BGl_modulezd2initzd2errorz00zz__errorz00(BgL_sz00_512, BgL_fromz00_510);} } }
15716 }
15717 obj_t bigloo_main(obj_t BgL_argvz00_514)
15718 { ;
15719 {
15720 BGl_modulezd2initializa7ationz75zzrecettez00(((long)0), "recette");
15721 BGl_bigloozd2initializa7edz12z67zz__paramz00();
15722 {
15723 obj_t BgL_arg2188z00_515;
15724 BgL_arg2188z00_515 =
15725 BGl_mainz00zzrecettez00(BgL_argvz00_514);
15726 return
15727 bigloo_exit(BgL_arg2188z00_515);} }
15728 }
15729 obj_t BGl_libraryzd2moduleszd2initz00zzrecettez00()
15730 { ;
15731 {
15732 BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "recette");
15733 BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "recette");
15734 BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(((long)0), "recette");
15735 BGl_modulezd2initializa7ationz75zz__pth_threadz00(((long)0), "recette");
15736 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
15737 }
15738 obj_t BGl_cnstzd2initzd2zzrecettez00()
15739 { ;
15740 {
15741 {
15742 obj_t BgL_cportz00_501;
15743 BgL_cportz00_501 =
15744 bgl_open_input_string(BGl_string2168z00zzrecettez00,
15745 (int)(((long)0)));
15746 {
15747 long BgL_iz00_502;
15748 BgL_iz00_502 = ((long)0);
15749 BgL_loopz00_503:
15750 {
15751 bool_t BgL_test2169z00_504;
15752 BgL_test2169z00_504 =
15753 (BgL_iz00_502==((long)-1));
15754 if(BgL_test2169z00_504)
15755 {
15756 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} else
15757 {
15758 {
15759 obj_t BgL_arg2175z00_505;
15760 {
15761 {
15762 obj_t BgL_iportz00_506;
15763 BgL_iportz00_506 = BgL_cportz00_501;
15764 {
15765 obj_t BgL_locationz00_507;
15766 BgL_locationz00_507 =
15767 (((bool_t)0) ? ((obj_t)(obj_t)((long)(((long)(2) << 3) | 2))) : ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2))));
15768 {
15769 BgL_arg2175z00_505 =
15770 BGl_readz00zz__readerz00(BgL_iportz00_506, BgL_locationz00_507); } } } }
15771 {
15772 int BgL_auxz00_545;
15773 BgL_auxz00_545 =
15774 (int)(BgL_iz00_502);
15775 ( __cnst[ BgL_auxz00_545 ] = BgL_arg2175z00_505, ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2))) ); } }
15776 {
15777 int BgL_auxz00_508;
15778 BgL_auxz00_508 =
15779 (int)(
15780 (BgL_iz00_502-((long)1)));
15781 {
15782 long BgL_iz00_550;
15783 BgL_iz00_550 =
15784 (long)(BgL_auxz00_508);
15785 BgL_iz00_502 = BgL_iz00_550;
15786 goto BgL_loopz00_503;} } } } } } }
15787 }
15788 obj_t BGl_toplevelzd2initzd2zzrecettez00()
15789 { ;
15790 {
15791 BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(((long)0),
15792 ((char *)(&((((obj_t)((long)BGl_string2166z00zzrecettez00 - 7))->string_t).char0))));
15793 BGl_modulezd2initializa7ationz75zz__pth_threadz00(((long)0),
15794 ((char *)(&((((obj_t)((long)BGl_string2166z00zzrecettez00 - 7))->string_t).char0))));
15795 return ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2)));}
15796 }
15797 obj_t BGl_mainz00zzrecettez00(obj_t BgL_argvz00_1)
15798 { ;
15799 {
15800 {
15801 obj_t BgL_list2163z00_496;
15802 BgL_list2163z00_496 =
15803 ({ obj_t an_object; an_object = (obj_t)GC_malloc( (sizeof( struct pair )) ); an_object->pair_t.car = (obj_t)((long)(((long)(((long)0)) << 3) | 1)); an_object->pair_t.cdr = ((obj_t)(obj_t)((long)(((long)(0) << 3) | 2))); ( ((obj_t)((long)an_object | 3)) ); });
15804 return
15805 BGl_exitz00zz__errorz00(BgL_list2163z00_496);} }
15806 }
15807 obj_t BGl__mainz00zzrecettez00(obj_t BgL_envz00_497, obj_t BgL_argvz00_498)
15808 { ;
15809 {
15810 {
15811 obj_t BgL_auxz00_559;
15812 {
15813 obj_t BgL_aux2164z00_499;
15814 BgL_aux2164z00_499 = BgL_argvz00_498;
15815 {
15816 bool_t BgL_test2165z00_500;
15817 BgL_test2165z00_500 =
15818 ((((long)BgL_aux2164z00_499) & ((1 << 3) - 1)) == 3);
15819 if(BgL_test2165z00_500)
15820 {
15821 BgL_auxz00_559 = BgL_aux2164z00_499
15822 ; } else
15823 {
15824 BGl_bigloozd2typezd2errorz00zz__errorz00(
15825 __cnst[ ((long)0) ], BGl_string2167z00zzrecettez00, BgL_aux2164z00_499);
15826 exit( -1 );} } }
15827 return
15828 BGl_mainz00zzrecettez00(BgL_auxz00_559);} }
15829 }
15830 obj_t BGl_genericzd2initzd2zzrecettez00()
15831 { ;
15832 {
15833 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
15834 }
15835 obj_t BGl_methodzd2initzd2zzrecettez00()
15836 { ;
15837 {
15838 return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
15839 }